2016-05-08 11 views
0
.model small  

.data    ;data section 
    message db " Enter a number $" 
    message2 db " Enter another number $" 
    message3 db " + $" 
    message4 db " = $" 
.code 
    main proc 

     mov ax, seg message ;3shan minf3sh nn2l el seg msg direct 
     mov ds, ax   ;el ds first part mn l string 
     mov dx, offset message ; 
     mov ah, 9h 
     int 21h  ;3shan y-do it , le print l strings on the screen 

     mov ah, 1h ;read character wl input stored in al 
     int 21h            

     mov bl, al 


     mov ah, 0Eh  ;print new line sequence 
     mov al, 0Dh 
     int 10h 
     mov al, 0Ah 
     int 10h 

     mov ax, seg message2  ;print msg 2 
     mov ds, ax 
     mov dx, offset message2 
     mov ah,9h 
     int 21h 

     mov ah, 1h 
     int 21h 

     mov cl, al 

     mov ah, 0Eh  ;print new line sequence 
     mov al, 0Dh 
     int 10h 
     mov al, 0Ah 
     int 10h 

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


     mov ax, seg message3 
     mov ds, ax 
     mov dx, offset message3 
     mov ah,9h 
     int 21h 

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

     mov ax, seg message4 
     mov ds, ax 
     mov dx, offset message4 
     mov ah,9h 
     int 21h 

     sub bl, 30h  ;3shan byd5al l 7aga int fa 3yzen n7wlo le 
     sub cl, 30h  ;decimal b3den nrg3o int tani 


     sub bl, cl  

     add bl, 30h  ;rg3nah int xD 

     mov dl, bl  ;bl 3shan hya ely fiha el sum 
     mov ah, 2h 
     int 21h 
    endp  ;end main 


end main  ;end the program 

これは、ユーザーから2つの数値を減算するコードです。私は、乗算を追加しようとしているし、それのためのループを作成するが、毎回失敗する、私は何をすべきか?私はこの言語を自習しています。アセンブリ言語で2つの数値を減算する方法

+0

私は 'mul'や 'imul'命令を見ていません。これは**あなたが持っている問題の**最小**または完全な例ではありません。 –

答えて

1

プログラムに異常がある場合を除き、プログラムは正常に見えます。 メッセージ3は、の符号を表示します。ここで、プログラムは実際に減算を行います。あまり論理的ではない、あなたは同意しない?それは次のようにsub bl, clを変更する乗算行って


はすぐにこのプログラムを変更するには:

mov al, bl ;BL is 1st number 
mul cl  ;Multiply with 2nd number, product is in AX 
mov bl, al ;Only use the low byte in AL 

製品は、この非常に基本的なプログラムで1桁の結果を得なければならないことに注意してください!

  • 有効な選択肢が含まれる:X 7 0、X 2 3、9×1、...
  • 無効な選択肢は、以下が挙げられる:5×4、×7 2、8、X 9、...
関連する問題