是否可以添加getchar(); 相当于.o文件?

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()代码,添加并重新组装.但是,重写程序可能会耗费更少的时间,具体取决于程序的复杂程度或仅创建包装程序批处理脚本.