;一个两位十进制数加法程序,从键盘上输入:n1n2+n3n4 ;则在CRT上显示: =n5n6 data segment org 1000h buf db 5 dup(?) data ends stack segment stack db 100 dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov ax,stack mov ss,ax lea si,buf mov cx,5 p1: mov ah,1 int 21h mov [si],al inc si loop p1 call q1 ;等号 ;*************************** lea si,buf mov al,[si] cmp al,'0' jb x1 cmp al,'9' ja x1 and al,0fh mov cl,4 shl al,cl mov ah,al inc si mov al,[si] cmp al,'0' jb x1 cmp al,'9' ja x1 and al,0fh or al,ah inc si inc si mov bl,[si] cmp bl,'0' jb x1 cmp bl,'9' ja x1 and bl,0fh mov cl,4 shl bl,cl mov bh,bl inc si mov bl,[si] cmp bl,'0' jb x1 cmp bl,'9' ja x1 and bl,0fh or bl,bh adc al,bl daa ;** jnc t1 push ax mov al,'1' call z1 pop ax t1: mov ah,al mov cl,4 shr al,cl add al,30h call z1 mov al,ah and al,0fh add al,30h call z1 x1: mov ah,4ch int 21h q1 proc push ax push bx push cx push dx mov dl,3dh mov ah,2 int 21h pop dx pop cx pop bx pop ax ret q1 endp z1 proc push ax push bx push cx push dx mov dl,al mov ah,2 int 21h pop dx pop cx pop bx pop ax ret z1 endp code ends end start