我正在使用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位地址。
如何通过我的代码?
答案 0 :(得分:3)
我做了一些研究,这是我学到的东西
.MODEL
指令
- 允许使用简化的细分
- 控制代码段的名称
- 控制程序的默认距离。
语法为:
.MODEL memorymodel, options-optional
和memorymodel可以是
TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE,or FLAT
平面模型类似于微小模型,因为所有代码和数据都在 单个32位可寻址的内存块。
要编写平面模型程序,请指定.386或.486指令 之前。
所以如果我不想使用平面模型(看here)
,指令.386
是可选的
这里有一些参考文献