code segment
assume cs:code
start:
mov ax,1234H ;被加数
push ax ;入栈
move ax,5678H
push ax
move BP,SP
call print_hex ;将下一条指令(也就是MOV ax,4cooH指令)的偏移地址IP压入堆栈
mov ax,4C00H
int 21h
print_hex:
mov dx,[bp]
add dx,[bp+2]
;dx中含有和
print_digit:
rol dx,1 ;循环左旋
rol dx,1
rol dx,1
rol dx,1
mov al,dl ;xxxx abcd
and al,ofH ;0000 1111
;0000 abcd
add al,30H ;39H='9'
cmp al,39H
jbe good_digit
add al,41H-30H-0AH
good_digit:
mov ah,0eH
int 10H ;显示一个字符,字符的AScii码存放在AL中
loop print_digit
ret
code ends
end start