汇编:编译COM程序

时间:2010-04-21 17:09:08

标签: assembly tasm

COM程序可以是32位吗?

如何编译COM程序? 我有TLINK32和TASM32。

tasm32 \t alex_7.asm
pause
tlink32 alex_7.obj 
pause
td32 main.exe

我有以下错误:

Fatal: 16 bit segments not supported in module alex_7.asm

我有DOSBOX而且我正在运行Windows 7 x64

当我尝试在DOSBOX中编译我的程序时,我得到了同样的东西

2 个答案:

答案 0 :(得分:3)

不,.com files是小型(最大64kb)DOS / 16位时代的可执行文件,带有分段内存模型。在MASM中,您使用.MODEL TINYORG 100h并将所有内容都放入代码段。据我所知,没有32位.com文件。

答案 1 :(得分:0)

COM对象绝对可以是32位,你遇到的问题是你在64位系统上使用16位代码。您只能在64位系统下运行32位和64位程序(但在大多数情况下,您无法将它们混合在一起)。