我正在学习一些 8080 程序集,它使用较旧的后缀H
来表示十六进制常量(与现代前缀0x
或相比$
)。我还在用玩具汇编器闲逛,并考虑如何标记源代码。
可以编写一个有效的十六进制常量 (say) BEEFH
,它只包含字母字符。也可以定义一个名为BEEFH
. 所以当我写:
ORG 0800H
START: ...
JMP BEEFH ; <--- how is this resolved?
....
BEEFH: ...
...
根据旧的英特尔文档,这在语法上应该是有效的:BEEFH
符合标签的命名规则,当然也是一个有效的 16 位地址。这里的操作数是地址常量还是标识符的歧义JMP
似乎是个问题。
我无法访问原始的 8080 汇编器来查看它对这个示例的作用。这是一个在线 8080 汇编器,它似乎JMP
在所有情况下都将操作数解析为标签引用,但显然一个合适的汇编器应该能够使用 JMP 指令定位绝对地址。
谁能阐明围绕此的约定实际上是/应该是什么?我错过了一些明显的东西吗?谢谢。