Я пытаюсь написать ассемблерный код, который определяет, является ли 28 совершенным числом или нет. Но у меня есть проблема. Когда я запускаю код, emu8086 не распознает мои метки.
Например, в этом коде:
mov dl,1ch
mov bl,00h ;sum
mov cl,1ch ;counter
dec cl
HERE : mov ax,00h
mov al,dl
div cl ;ax/dl ah=remainder
cmp ah,00h
je SUM ; if ah=0 jump the label SUM
loop HERE
mov dh,00h
cmp dl,bl
je PERFECT
hlt
SUM :
add bl,cl
jmp HERE
PERFECT :
mov dh,01
hlt
Когда должна выполняться инструкция loop HERE
, emu8086 запускает первую инструкцию (mov dl,1ch
) моего кода. Что я могу сделать? В чем проблема?
Заранее спасибо...
loop HERE
зависит от значения вCX
, но вы никогда не инициализировали верхнюю половину этого регистра! Вы написали толькоmov cl,1Ch
(нижняя половинаCX
) - person Sep Roland   schedule 08.01.2017