28이 완벽한 숫자인지 확인하는 어셈블리 코드를 작성하려고합니다. 그러나 나는 문제가있다. 코드를 실행하면 emu8086이 내 레이블을 인식하지 못합니다. 이 코드에서 예를 들어
는 : loop HERE
명령을 실행할 때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
, 내 코드의 첫 번째 명령 (mov dl,1ch
)를 EMU8086 실행합니다. 내가 무엇을 할 수 있을지? 문제가 무엇입니까? 사전에
감사합니다 ...
이 오류주의 HERE'는'CX'의 값에 따라 다르지만이 레지스터의 상반부를 초기화하지 않았습니다! 당신은'mov cl, 1Ch' ('CX'의 하반부)를 작성했습니다. –