2011-11-25 3 views
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이 (가) 포함되어 있습니다.

왜?

+0

어떻게 eax 값을 확인하고 있습니까? 나는 어떤 출력 코드도 보지 못했다 .... – SoapBox

+0

어쩌면 그는 디버거 –

+0

을 체크인했는지 또는 23 형을 입력했을 수도있다. –

답변

관련 문제