两个字节数据的加法、乘法
data segment
ad1 db 10h
ad2 db 10h
sum db ?
data ends
code segment
assume cs:code,ds:data
main:
mov ax,data
mov ds,ax
mov al,ad1
add al,ad2
mov sum,al
mov bl,al
mov cl,4
shr al,cl ;take upper 4 bits
and al,0fh
add al,30h
mov dl, al
mov ah, 2
int 21h
mov al, bl
and al, 0fh;take lower 4 bits
add al,30h; Asicii code need to add 48d
mov dl, al
mov ah, 2
int 21h
mov ah,4Ch;终止当前程序并返回调用程序
int 21h
code ends
end main
若用乘法则:
data segment
ad1 dw 10h
ad2 dw 40h
sum dw ?
data ends
code segment
assume cs:code,ds:data
main:
mov ax,data
mov ds,ax
mov ax,ad1
mul ad2
mov sum,ax
mov bx,ax
mov cl,8
shr ax,cl ;take upper 4 bits
and ax,000fh
add ax,30h
mov dl, al
mov ah, 2
int 21h
mov ax,sum
mov cl,4
shr ax,cl ;take middle 4 bits
and ax,000fh
add ax,30h
mov dl, al
mov ah, 2
int 21h
mov ax,sum
and ax,000fh ;take upper 4 bits
add ax,30h
mov dl, al
mov ah, 2
int 21h
mov ah,4Ch;终止当前程序并返回调用程序
int 21h
code ends
end main
此计算结果为400