1
입력을 통해 변수를 지정하고 해당 변수 값을 EAX로 이동하려고합니다.데이터를 EAX로 옮기는 데 문제가 있습니다
작동하지 않으며 이상한 결과가 나타납니다.
.386
.model flat, c
.stack 100h
printf PROTO arg1:Ptr Byte, printlist:VARARG
scanf PROTO arg2:Ptr Byte, printlist:VARARG
.data
in1fmt byte "%d",0
msg1fmt byte 0Ah,"%s",0
msg1 byte "Enter an integer: ",0
number sdword ?
.code
main proc
INVOKE printf, ADDR msg1fmt, ADDR msg1
INVOKE scanf, ADDR in1fmt, ADDR number
mov eax, number
ret
main endp
end
30을 입력하면 EAX에 17이 (가) 포함되어 있습니다.
왜?
어떻게 eax 값을 확인하고 있습니까? 나는 어떤 출력 코드도 보지 못했다 .... – SoapBox
어쩌면 그는 디버거 –
을 체크인했는지 또는 23 형을 입력했을 수도있다. –