Я изучаю сборку 8086.
У меня есть этот код:
.model small
.stack 100h
.data
num db 10111111b
itr db 7 ;iterations
.code
mov ax, @data
mov ds, ax
mov cl,0 ;rolls counter
mov ch,0 ;zero counter
next:
rol num, 1
jnc isZero
inc cl
cmp cl, itr
je stop
jmp next
isZero:
inc ch
jmp next
stop:
mov cl,0
add cx, 48
mov ah, 9
mov dx, cx
int 21h
.exit
end
Приведенный выше код считает ноль цифр в переменной num , когда обнаружен ноль ch
регистр увеличен на единицу.Код работает нормально.
У меня проблема при попытке напечатать результат на экране.
В этой строке:
int 21h
Я получаю эту ошибку:
INT 21h, AH=09h -
address: 07330
byte 24h not found after 2000 bytes.
; correct example of INT 21h/9h:
mov dx, offset msg
mov ah, 9
int 21h
ret
msg db "Hello$"
Есть идеи, почему я получаю вышеуказанную ошибку?И как это исправить?