Assembly 汇编:编译一个COM程序

Assembly 汇编:编译一个COM程序,assembly,tasm,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,我正在运行Windows7x64 当我试图在DOSBOX中编译我的程序时,我得到了同样的结果。COM对象可以肯定是32位的,问题是

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,我正在运行Windows7x64


当我试图在DOSBOX中编译我的程序时,我得到了同样的结果。COM对象可以肯定是32位的,问题是在64位系统上使用16位代码。您只能在64位系统下运行32位和64位程序(但在大多数情况下,您不能将它们混合在一起)。

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

哦。哎呀。我认为COM文件只能是16位的。我尝试使用tasm和tlink(16位)编译我的程序。tlink说没有堆栈@Fantomas:那么你要寻找的术语就是PE可执行文件。