标签: a86

A86 - 定义与前向引用冲突

我正在尝试使用 A86 为 8086 汇编一些代码。我将问题缩小到 4 行代码。

MOV BX, testz
ADD AL, [testz]

INT 20h
testz:
~     ^
#ERROR 16: Definition Conflicts With Forward Reference                    @@@@#
db ?
Run Code Online (Sandbox Code Playgroud)

你认为这段代码有什么问题?我将地址本身移动到 BX 寄存器并将 testz 地址中的字节值添加到 AL。

在一个更大的程序中,我也得到了#ERROR 13: Byte/Word Combination Not Allowed.

但是label是一个字 where[label]是一个字节。为什么我的编译器不能区分这些?

ADD BL, [second]
MOV BX, second
~             ^
#ERROR 13: Byte/Word Combination Not Allowed   
second:
~      ^
#ERROR 16: Definition Conflicts With Forward Reference                    @@@@#
db ?
Run Code Online (Sandbox Code Playgroud)

因为我看不到任何字节/字冲突。


我的编译器同等地解释 offset testz 和 …

assembly forward-reference x86-16 a86

3
推荐指数
1
解决办法
982
查看次数

标签 统计

a86 ×1

assembly ×1

forward-reference ×1

x86-16 ×1