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


班級:  計算機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指令還不會,應該在這方面補補課。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM