天天看點

彙編語言作業(三)計算這三個數的平均值

班級:  計算機14-1   姓名: 許恺   學号: 2014011329  日期: 2016.4.1          

一、編寫程式

1.設有三個無符号的個位數,計算這三個數的平均值(截尾取整),并将這個平均值顯示在螢幕上。

最低要求:三個個位數在資料段中定義,最後結果能顯示在螢幕上。

自由發揮:三個個位數從鍵盤輸入,輸入時有提示(可用9号功能調用輸出字元串),輸出結果也有提示,結果顯示在螢幕上,格式要美觀。

(1)程式清單:

data segment
data ends
code segment
  assume cs:code,ds:data
    main proc far
 start:
  mov ah,01h
  int 21h
  mov dl,al

  mov ah,01h
  int 21h
  mov dh,al

  mov ah,01h
  int 21h

  add al,dl
  add al,dh

  mov ah,00h
  mov bl,3
  div bl
  mov bl,al

  mov dl,0ah
  mov ah,02h
  int 21h
  mov dl,0dh
  mov ah,02h
  int 21h

  mov dl,bl
  mov ah,02h
  int 21h

  mov ah,4ch
  int 21h
    main endp
 code ends
 end start      

(2)運作結果(截圖):

彙編語言作業(三)計算這三個數的平均值

2.程式設計實作對一個無符号32位數的乘4操作,假定該數乘以4之後仍為一個32位數。

說明:兩個變量X、Y分别定義為DD型資料,其中X代表32位無符号數:12345678H的首位址,Y代表以上資料乘以4以後結果的首位址。乘法要用移位來實作。

請參見課件中的例題。最後結果存儲在記憶體單元中(無需輸出)。

(1)程式清單

data segment
  x dd 12345678h
  y dd ?
data ends
code segment
  assume cs:code,ds:data
    main proc far
 start:
  mov ax,data
  mov ds,ax

  mov ax,word ptr x
  mov dx,word ptr x+2

  shl ax,1
  rcl dx,1

  shl ax,1
  rcl dx,1

  mov word ptr y,ax
  mov word ptr y+2,dx
  mov ah,4ch
  int 21h
    main endp
 code ends
 end start      

二、程式設計體會

感覺基本的掌握了,但是關于移位等指令和運算還不熟,還有一些基本的dos指令還不會,應該在這方面補補課。

繼續閱讀