0

在代码下方添加两个偶数,输出也将低于 10,但我的挑战是知道并显示输出将增加 10 那么这个概念是什么?我如何添加两个数字,但输出显示数字扩大到 10。你能给出一些想法吗?.model small .stack 100h .data msg1 db "$" msg2 db "和$" msg3 db "is:$" .code main proc 的总和

mov ax,@data
mov ds,ax

mov ah,9
lea dx,msg1
int 21h
         
mov ah, 2
mov dl,20h
int 21h

mov ah,1
int 21h
mov bl,al 
    
mov ah,9
lea dx,msg2
int 21h  

mov ah, 2
mov dl,20h
int 21h

mov ah,1
int 21h
mov cl,al

mov ah,9
lea dx,msg3
int 21h

mov ah, 2
mov dl,20h
int 21h

mov ah,2
mov dl,20h
int 21h    

add bl,cl
sub bl,30h

mov ah,2
mov dl,bl
int 21h

main endp
end main
4

1 回答 1

1

由于您仍在处理从“0”到“9”的单个字符输入,因此总和可以是 18 (9 + 9)。对大于 9 的值进行简单检查即可:

    mov  ah, 2    ;DOS display function
    add  bl, cl   ;Sum of 2 characters
    sub  bl, 30h  ;Remove the extra 30h
    cmp  bl, "9"
    jbe  PrintDigit
    mov  dl, "1"
    int  21h
    sub  bl, 10
PrintDigit:
    mov  dl, bl
    int  21h

为什么在字符串输出后直接输出空格字符?您知道您可以轻松地将这个单个空格字符放入消息中!

msg1 db "The sum of $"   <--- See the extra space before the $
msg2 db "and $"          <--- See the extra space before the $
msg3 db "is:  $"         <--- See the 2 extra spaces before the $
于 2016-06-19T21:25:37.030 回答