我是汇编语言的新手,我正在尝试创建一个简单的程序,用汇编语言添加数字。 当.MODEL是Tiny时,我确实成功启动了该程序,但该程序返回" Duplicate Declaration" .MODEL变为小时出错。
我理解这两种模式的定义,但我没有弄清楚会发生什么变化。
我做了什么尝试:
我错过了什么概念?
提前谢谢
.MODEL TINY
.DATA
data DB 10D, 11D, 12D, 13D, 14D, 15, 16D, 17D, 18D, 19D
.CODE
.STARTUP
XOR AX, AX
MOV BX, OFFSET data
MOV CX, 5
ulang:
ADD AX, [BX]
INC BX
LOOP ulang
.EXIT
END
答案 0 :(得分:1)
问题是数据段还有一个符号名称 - 令人惊讶的是 - DATA
。
换句话说:
汇编程序在段开始后隐式放置符号。你写道:
.DATA
...
.CODE
...
...汇编程序隐含地执行以下操作:
.DATA
DATA:
...
.CODE
CODE:
...
...因此,如果您在代码中使用标签DATA:
,则定义两次!
请注意,你不能只是"只是" juse隐式生成这些标签,因此您必须使用其他名称,如DATA1
。
当.MODEL是Tiny
时,我确实成功启动了该程序
不是绝对确定,但在"微小"记忆模型"隐含"我不需要谈论的标签。也许汇编程序在使用" tiny"时不会创建这样的标签。记忆模型。