2016-10-31 5 views
2

A0Hより小さい(numで初期化された)数値を追加するアセンブリプログラムを作成しようとしています。しかし、私はこのプログラムを実行すると、数字のいずれかを追加することができません。どんな助けもありがとう。Emu8086アセンブリ加算器

 PAGE 60,132 
TITLE COOLADDER 

    .MODEL SMALL 
    .STACK 64  


    .DATA 
NUMS DB 01H,01H,01H,01H,0A1H,0A1H 
SUM DB ? 
CC DB ? 

    .CODE 
MAIN PROC FAR 
MOV AX,@DATA 
MOV DS,AX 
MOV CX,6 
MOV BX,OFFSET NUMS  
MOV AL,0 

AGAIN: 
MOV DI,0A0H  
CMP DI,[BX] 
JNA RES 

ADD AL,[BX] 
MOV CC,AL 
RES: 
INC BX 
DEC CX 
JNZ AGAIN 
MOV SUM,AL 
MOV AH,4CH 
INT 21H 


MAIN ENDP 
    END MAIN 
+0

あなたは何の助けが必要なのですか?何が問題ですか? – Reinard

+0

"num"で宣言されたすべての数値を "0A0H"よりも小さいものとみなしますが、代わりに "num"で宣言されたすべての数値を加算します。 デバッグでは、 "CMP DI、[BX]"という行が正しく動作していないことがわかりました。 –

答えて

1

データは、バイトと定義したが、あなたは言葉として比較しています!

変更この:

MOV DL,0A0H  
CMP DL,[BX] 
関連する問題