所以我一直在尝试在x86汇编中从python中做类似input()
的东西。这就像,当你在控制台中运行编译后的可执行文件时,它会打印一个提示(例如“给予一些输入:'),并等待,直到你写的东西在控制台和按回车键,然后它存储你键入到一个变量或东西.我试过很多方法,但都不管用。Pls建议。
当前代码:
_main:
mov ebp, esp
sub esp, 4
push -11
call _GetStdHandle@4
mov ebx, eax
push 0
lea eax, [ebp-4]
push eax
push (prompt_len - prompt)
push prompt
push ebx
call _WriteFile@20
lea eax, [format]
push eax
lea eax, [x_str]
push eax
; Call scanf
call _scanf
push 0
call _ExitProcess@4
它打印出提示符,但很快就退出了,我该怎么办?prompt
是提示符。format db "%d",0
.和x_str
是变量,我想存储输入。
谢谢
1条答案
按热度按时间carvr3hs1#
你用错了
scanf
的参数,格式字符串是第一个参数,最接近函数入口的堆栈指针。