繁体   English   中英

[MASM]另一个'不能使用带有32位地址的16位寄存器'错误

[英][MASM]Another 'cannot use 16-bit register with a 32-bit address' error

我正在使用MASM汇编程序学习汇编语言,当我尝试使用此命令组装一个简单文件时,我遇到了问题: ml /c test.asmtest.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是可选的(看这里

这里有一些参考

1 .MODEL

2逻辑段和存储模型指令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM