我正在使用 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
和内存模型可以是TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE,or FLAT
扁平模型与微型模型类似,所有代码和数据都放在一个
单个 32 位可寻址内存块。
要编写平面模型程序,请指定 .386 或 .486 指令
前。
所以指令.386
如果我不想使用平面模型,则它是可选的(看here)
这是一些参考资料
1.型号
2 逻辑段和内存模型指令
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)