Я назначаю переменную через ввод и затем пытаюсь переместить значение этой переменной в 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.
Почему?