;計算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 多出來的數字向更高位產生乙個進製。如下圖所示,兩...