网上的说明都是复制代码然后在debug下运行,而本文是可以直接编译运行的asm源文件,但是仍然看不懂,呵呵,只有反汇编了。
首先说明编译连接选项
本文用的是ml编译 编译器版本 6.14.8444
编译选项 "D:\Program Files\RadASM\Masm32\Bin\ML.EXE" /c /Cp /nologo "G:\a.asm"
连接器版本 5.60.339
连接选项 path="D:\Program Files\RadASM\Masm32\Bin"
DOSLNK.EXE /TINY G:\a.obj;
把上面的编译选项复制到一个bat文件中,保存执行bat即可,生成的文件大小为4096字节,正好4K
注意事项 不要把连接选项写成 "D:\Program Files\RadASM\Masm32\Bin\DOSLNK.EXE" G:\a.obj; /TINY 会连接错误
如果把连接选项写成 path="D:\Program Files\RadASM\Masm32\Bin"
DOSLNK.EXE G:\a.obj; /TINY
则生成的com文件大小为4608字节,这个就不知道什么原因了
本程序无法运行在win7中,因为win7不支持dos下的图形界面
------解决方案--------------------------------------------------------
你这个,和 debug 版的也没什么区别,将所有的代码数据全作为数据写在源程序里了。
你生成了的文件是 4608 字节?这是 4096+512 啊,说明你实际创建的还是 exe 格式,不是 com 格式。
Win7 的命令行下不行,就在虚拟机的纯 dos 里运行试试吧。Windows 的命令行窗口的 dos 毕竟是虚拟出来的,有太多的限制和兼容问题。