二進位製雙精度加法匯程式設計序

2021-05-25 01:50:42 字數 1290 閱讀 4785

;計算x+y=z

;x=001565a0h,y=0021b79eh,運算的結果z=00371d3eh。

data segment

mes db  'the result is:$'

xl  dw 65a0h

xh  dw 0015h

yl  dw 0b79eh

yh  dw 0021h

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov  dx,offset mes  ;顯示資訊

mov  ah,09h

int   21h

mov   ax,xl   

add   ax,yl  ;y低位數值與x低位數值相加  

mov   bx,ax   ;bx中存放結果的低16位

mov   ax,xh

adc   ax,yh   ;y高位數值與x高位數值相加

mov  cx,ax    ;cx中存放結果的高16位

;顯示結果

mov dh,ch

call show

mov dh,cl

call show

mov dh,bh

call show

mov dh,bl

call show 

mov ax,4c00h

int  21h 

show proc near

push dx

push ax

mov al,dh

and al,0f0h

;取高4位

shr al,4

cmp al,0ah ;是否是a以上的數

jb c2

add al,07h

c2:   add al,30h

mov dl,al ;show character 

mov ah,02h

int 21h

mov al,dh

and al,0fh ;取低4位

cmp al,0ah

jb c3

add al,07h

c3:   add al,30h

mov dl,al ;show character 

mov ah,02h

int 21h

pop ax

pop dx

retshow   endp

code ends

end   start

二進位製雙精度加法運算

本實驗要求計算 x y z,將結果 z 輸出到螢幕,其中 x 001565a0h,y 0021b79eh。z 00371d3e 實驗利用累加器 ax,先求低十六位和,並存入低址儲存單元,後求高 16位和,再存入高址儲存單元。由於低位和可能向高位有進製,因而高位字相加語句需用 adc 指令,則低位相加...

二進位制加法運算

兩個二進位制整數相加時,是位對位處理的,從最低的一對位 右邊 開始,依序將每一對位進行加法運算。兩個二進位制數字相加,有四種結果,如下所示 0 0 0 0 1 1 1 0 1 1 1 10 1 與 1 相加的結果是二進位制的 10 等於十進位制的 2 多出來的數字向更高位產生乙個進製。如下圖所示,兩...

二進位制加法運算

兩個二進位制整數相加時,是位對位處理的,從最低的一對位 右邊 開始,依序將每一對位進行加法運算。兩個二進位制數字相加,有四種結果,如下所示 0 0 0 0 1 1 1 0 1 1 1 10 1 與 1 相加的結果是二進位制的 10 等於十進位制的 2 多出來的數字向更高位產生乙個進製。如下圖所示,兩...