2016-10-31 2 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] 
Смежные вопросы