Assembly: compile a COM program

Can a COM program be 32-bit?

How can I compile a COM program? I have TLINK32 and TASM32.

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

      

I got the following error:

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

      

I have DOSBOX and I am running Windows 7 x64

I got the same when I try to compile my program inside DOSBOX

+2


a source to share


2 answers


No, .com files are small (maximum 64KB) executable files of the DOS / 16-bit era, with a segmented memory model. In MASM you have to use .MODEL TINY

, ORG 100h

and insert everything into a code segment. As far as I know, there are no 32 bit .com files.



+2


a source


COM objects can definitely be 32 bit, the problem is you are using 16 bit code on a 64 bit system. You can only run 32-bit and 64-bit programs under a 64-bit system (but you cannot mix them together in most scenarios).



+1


a source







All Articles