Я использую эмулятор x86 и пытаюсь написать короткую программу, которая получает целое число и преобразует его в двоичный файл. Тем не менее, я запускаю его шаг за шагом и проверяю память (и регистр топора по мере его обновления). Я вижу, что регистр топора развивается следующим образом: 14 -> 7 -> 3 -> 32769 (вместо 1). Почему это происходит? Я попытался использовать EAX и ECX вместо ax и cx, но это все равно не даст мне правильный результат. Я что-то упускаю действительно очевидное?
value: dw 14
binary: dw 0
mov ax,0
mov cx,0
mov dx,0
;CONVERTING 14 TO BINARY
CONVERSION:
mov ax,[valor]
mov cx,2
div cx
push dx
mov [valor],ax
cmp ax,0
jne CONVERSION
pop [binary]