Nei*_*ein -1 c assembly x86-64 getchar pause
我刚才创建了一个简单的C程序.它是一个简单的命令行生成器,可以获取一些数字,打印结果并停止.我总是在编辑器的命令行环境中运行它,在程序运行后自动暂停,所以我省略了getchar()在最后添加一个.
我现在后悔这一点,因为我设法失去了源头.我现在所拥有的只是编译的.o和.exe文件,后者 - 当然 - 在打印输出后立即退出,因此它无法使用.它不是那么长,大约100行,但我想避免重写它.(另外,我甚至可能通过这种方式学到新东西.)
现在我对C语言有了非常基本的了解,并且在计算机程度x86汇编方面几乎为零(虽然我学会了8086组装微控制器的基础知识,但现在我认为它不会有用),所以我有点卡在这里.我可以添加getchar()像暂停函数到编译代码,或者有什么方法可以使.exe在退出之前停止,同时仍保持独立?
该程序将在Windows 10系统上运行.
小智 7
我会写一些批处理脚本,你可以在其中调用你的程序,然后运行pause,等待你在继续之前点击一个键.
wrapper.bat:
yourprogram.exe
pause
Run Code Online (Sandbox Code Playgroud)
当然,您可以将可执行文件反汇编为原始x86汇编代码,然后在Windows上查找简单的getchar()代码,添加并重新组装.但是,重写程序可能会耗费更少的时间,具体取决于程序的复杂程度或仅创建包装程序批处理脚本.