assembly 如何在Windows上的x86汇编中进行输入?

xoshrz7s  于 2023-10-19  发布在  Windows
关注(0)|答案(1)|浏览(153)

所以我一直在尝试在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是变量,我想存储输入。
谢谢

carvr3hs

carvr3hs1#

你用错了scanf的参数,格式字符串是第一个参数,最接近函数入口的堆栈指针。

相关问题