addition proc near start3:sub ax,ax sub dx,dx mov bx,offset op1 mov al,[bx+1] mov si,ax mov bx,offset op2 cmp byte ptr[bx],al jbe calc mov di,ax mov al,[bx+1] mov si,ax mov ax,0 push ax popf ;------------------------------------------------------初始化运算 calc: mov al,[bx+si+2] mov dl,[bx+di+2] adc al,dl ;--------------------------------------------------------调整BCD cmp al,10 jb input1 add al,6 ;------------------------------------------------------------把结果存入内存 input1:push bx mov bx,offset pro1 add al,30h mov [bx+si+2+1],al pop bx ;----------------------------------------------------------------继续判断 dec si dec di cmp di,0 jnz calc cmsi: cmp si,0 jz exit3 mov al,[bx+si+2] adc al,0 input2:push bx mov bx,offset pro1 mov al,30h mov [bx+si+2+1],al pop bx dec si cmp si,0 jz exit3 mov al,[bx+si+2] jmp input2 exit3: mov ax,0900h mov dx,offset pro1 int 21h ret addition endp init proc near sub ax,ax sub dx,dx mov bx,offset op1 mov al,[bx+1] mov si,ax mov bx,offset op2 cmp byte ptr[bx],al jbe re mov di,ax mov al,[bx+1] mov si,ax re: ret init endp end main

评论