停止程序集程序退出和关闭控制台窗口

时间:2018-03-27 14:50:07

标签: windows shell assembly nasm

org 100h
mov dx,msg
mov ah,9
int 21h
mov ah,4Ch
int 21h
msg db 'Hello, World!',0Dh,0Ah,'$'

所以,我有这个简单的“Hello,World!”带有.com扩展名的程序集程序。每当我运行它时,Hello World!会显示,但它会立即关闭窗口,甚至不会在半秒后关闭窗口!有没有办法阻止程序退出,直到您单击命令提示符窗口的X按钮?

1 个答案:

答案 0 :(得分:3)

窗口关闭的事实并不取决于您的程序,而是取决于您用来启动它的环境(例如IDE)。应该修改IDE的设置,以便在用户明确关闭它之前保持已完成程序的窗口打开。

为了保持窗口打开,在最后挂起无限循环程序是一种不好的做法。这样的" hack"制造坏习惯。实际上,它打破了非交互式控制台程序的常见约定。例如,挂起的程序不能用于自动化测试,其输出不能重定向等。

更好的替代方法是打开一个单独的shell窗口(我怀疑你在MS Windows中运行它的CMD.EXE或Powershell),将当前工作目录更改为程序的二进制文件所在的位置。如果您的文件名为prg.com,则可以通过简单地说明其名称在该窗口中执行该文件:

c:\dir\> prg.com
Hello, World!
c:\dir\> 

执行后,输出将保留在窗口中。在任何情况下,使用命令shell绕过任何IDE都是任何汇编程序的基本技能,所以我建议尽早搞清楚。