如何编写汇编程序?

时间:2015-04-12 11:31:37

标签: assembly

(写一个程序到(a)显示?,(b)读取两个十进制数字,其总和小于10,(c)在下一行显示它们和它们的总和,并带有适当的消息。);这里是代码

.code
               ;(a)                        

       mov dl, '?' 
       mov ah, 2
       int 21h


                ;(b)


       mov ah, 1  
       int 21h 
       mov dh, al

       mov num1, dh
       sub dh, 30h

       mov ah, 1
       int 21h 
       mov ch, al

       mov num2, ch
       sub ch, 30h

       ;mov al, num1
       mov al, num1
       add al, num2
       sub al, 30h
       mov sum, al 


                 mov ah, 9   
                 lea dx, msg    
                 int 21h 

ret

1 个答案:

答案 0 :(得分:0)

您已将所有转化步骤放在错误的位置。

mov ah, 1  
int 21h 
sub al, 30h
mov num1, al
mov ah, 1
int 21h 
sub al, 30h
mov num2, al

在您进行最终添加时,您不希望再次减去30h,而是将总和添加30h以将其转换为准备显示的角色。

mov al, num1
add al, num2
add al, 30h
mov sum, al  ;sum contains a displayable character.