2013-12-11 45 views
-1

我找不到代碼,我可以把編輯,這樣我可以加兩位數字,而不是1位數字,下面的代碼:如何在彙編語言中添加兩位數字?

.model small 
.stack 100h 
.data 

first db 13,10, 'Enter 1st Number: $' 
second db 13,10, 'Enter 2nd Number: $' 
result db 13,10, 'Result: $' 
invalid db 13,10, 'Invalid Number!!! $' 

.code 

start: 
     mov ax,03 
     int 10h 

     mov ax,@data 
     mov ds,ax 

mn: 
     mov dx, offset first 
     mov ah,9 
     int 21h 

     mov ah,1 
     int 21h 

     mov cl,al 

     cmp al,30h 
     jl nvalid 
     cmp al,39h 
     jg nvalid 
     jmp proceed 

nvalid: 
     mov dx,offset invalid 
     mov ah,9 
     int 21h 
     jmp mn 

proceed: 
     sub cl,30h 

     mov dx,offset second 
     mov ah,9 
     int 21h 
     mov ah,1 
     int 21h 

     cmp al,30h 
     jl nvalid 
     cmp al,39h 
     jg nvalid 
     sub al,30h 

     xor ah,ah 
     add al,cl 
     aaa 

     mov cx,ax 
     add cx,3030h 
     mov dx, offset result 
     mov ah,9 
     int 21h 

     mov ah,2 
     mov dl,ch 
     int 21h 

     mov dl,cl 
     int 21h 

exit: 
     mov ah,4ch 
     int 21h 

end start 
+0

根據各自的體系應該有所謂的'add'的指令,在文檔中尋找它。 – randomusername

+2

由於某種原因,這讓我想起[this](http://i.stack.imgur.com/ssRUr.gif)。 :D:D:D你應該使用jQuery。這真的很棒,可以做所有事情。 – Mysticial

+0

你有什麼錯誤? – rhughes

回答

2

看你的代碼後,你真正的問題是不「我如何將兩位數字加在一起」(很明顯,使用add指令)。

真正的問題是「?我怎麼顯示使用int 21h, ah=09h兩位數

答案是:你需要單獨顯示每個號碼,通過增加將原來的號碼10的權力,直到你得到零。每個結果添加30h('0'),並顯示那個字符

相關: