[英][MASM]Another 'cannot use 16-bit register with a 32-bit address' error
我正在使用MASM汇编程序学习汇编语言,当我尝试使用此命令组装一个简单文件时,我遇到了问题: ml /c test.asm
和test.asm
文件如下所示:
.386
.model flat
.code
MOV BP,WORD PTR[BP+4]
END
然后问题来了:
Microsoft(R)宏汇编程序版本6.14.8444
版权所有(C)Microsoft Corp 1981-1997。 版权所有。
组装:test.asm
test.asm(4):错误A2155:不能使用带有32位地址的16位寄存器
问题是 ,
32位地址?我没告诉汇编器使用32位地址。
以及如何通过我的代码?
我做了一些研究,这是我学到的
.MODEL
指令
- 允许使用简化的细分
- 控制代码段的名称
- 控制过程的默认距离。
语法是:
.MODEL memorymodel, options-optional
和memorymodel可以是
TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE,or FLAT
平面模型类似于微小模型,因为所有代码和数据都在一个32位可寻址的内存块中。
要编写平面模型程序,请在之前指定.386或.486指令。
所以如果我不想使用平面模型,那么指令.386
是可选的(看这里 )
这里有一些参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.