nasm 打印字符
在调用了DOS 09H号命令之后,再来看下DOS的02H号命令,代码如下:
1 org 0100H
2 jmp start
3 start:
4 mov dl, 'A'
5 mov ah, 02h
6 int 21h
7 ret
但是这个程序编译之后,在运行的时候并没有任何字符显示出来,这是为什么呢?
在DOS命令下,cd到程序.com所在的目录,然后debug 程序名.com,然后输入命令g,
发现可以正常输出想要打印的字符’A‘,如下图所示:

那为什么直接运行的时候,不能输出呢?
如果在DOS下使用debug命令运行.com程序之后,然后再在命令行直接运行,就可以正确输出字符了。目前我不太明白这是为什么,可能是debug命令开启了DOS程序运行的相应空间之类的东西。
目前比较好的方式,是使用DOSBOX,安装非常简单,这里就不说明了。安装之后,将DOSBOX的虚拟目录映射到我们自己com的所在目录,命令是如下图。映射的目录改成自己所在的就可以了。

这样就可以正常运行.com程序了。

浙公网安备 33010602011771号