2016-10-31 1 views
2

A0H보다 작은 숫자 (숫자로 초기화 됨)를 추가하는 어셈블리 프로그램을 작성하려고합니다. 그러나이 프로그램을 실행하면 숫자 중 아무 것도 추가하지 못합니다. 어떤 도움을 주시면 감사하겠습니다.Emu8086 assembly adder

 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]