Assembly 不支持TASM 16位段

Assembly 不支持TASM 16位段,assembly,x86,cpu-registers,16-bit,tasm,Assembly,X86,Cpu Registers,16 Bit,Tasm,我试图用汇编打开一个bmp文件,但当我用tasm打开我的asm文件时会发生这种情况 你能告诉我为什么会发生这个错误吗? 我可以对asm进行tasm,但当我运行它或t链接它时,会显示此消息致命:模块exor中不支持16位段。asm此处完全忽略错误。你会遇到什么错误?我不相信你能做到。model small,然后也能做到。data-small意味着没有明确的段。看起来你试图在64位机器上运行16位DOS模块。当CPU切换到64位时,使用16位寄存器(如[bp+4])的寻址模式不再可用。注意:指令“m

我试图用汇编打开一个bmp文件,但当我用tasm打开我的asm文件时会发生这种情况 你能告诉我为什么会发生这个错误吗?
我可以对asm进行tasm,但当我运行它或t链接它时,会显示此消息
致命:模块exor中不支持16位段。asm

此处完全忽略错误。你会遇到什么错误?我不相信你能做到
。model small
,然后也能做到
。data
-small意味着没有明确的段。看起来你试图在64位机器上运行16位DOS模块。当CPU切换到64位时,使用16位寄存器(如[bp+4])的寻址模式不再可用。注意:指令“mov dx,[bp+4]”从SS:[bp+4]获取一个字,因为默认段寄存器是SS,用于将bp用作地址寄存器。要获取“iamge”的偏移地址,只需使用“lea-dx,iamge”或“mov-dx,offset-iamge”。对于64位Windows,请使用DOSBOX。@500:在小型模型程序中定义.code和.data是完全合法的。编译后的代码和链接器将把代码和数据放在同一段中。代码将首先出现,数据将随后出现。
TITLE EXOR
.model small
.stack 100h
.data 

iamge db 'exor.bmp',0

.code

mov dx,[bp+4]
MOV AX,3d00h
int 21h

end