我有一个关于汇编语言的相当简单的问题。我们使用的是 SIC/XE 架构,它基本上是可信的,仅用于教育目的,但确实遵循其他架构的通用约定。现在我的问题和答案的第一个想法。
假设符号 ALPHA 和 BETA 是源程序中的标签。以下两个语句序列有什么区别?
A.) LDA ALPHA-BETA
B.) LDA ALPHA
SUB BETA
为清楚起见,LDA 将数据加载到用于算术运算的寄存器 A 中。像这里看到的 SUB 或 ADD 之类的操作默认在寄存器 A 上工作,而无需声明它。
现在,乍一看,我假设 A 和 B 是等价的。我的逻辑很简单。将 ALPHA 和 BETA 的差值加载到 A 中,或者将 ALPHA 加载到 A 中,然后从寄存器 A 中的 ALPHA 中减去,BETA。在我看来,哪个完成了同样的事情?我错过了一些琐碎的细节还是真的像看起来那么简单?