Assembly 算术的汇编语言语法问题

Assembly 算术的汇编语言语法问题,assembly,sic,Assembly,Sic,关于汇编语言,我有一个相当简单的问题。我们使用的SIC/XE架构基本上是虚构的,仅用于教育目的,但遵循其他架构的常见约定。现在是我的问题和关于答案的第一个想法 假设符号ALPHA和BETA是源程序中的标签。 以下两个语句序列之间的区别是什么 A.) LDA ALPHA-BETA B.) LDA ALPHA SUB BETA 为了清楚起见,LDA将数据加载到用于算术运算的寄存器A中。像SUB这样的操作,如这里所示,或者ADD,默认情况下在寄存器A上工作,而不必声明它 现在,乍一看,我假

关于汇编语言,我有一个相当简单的问题。我们使用的SIC/XE架构基本上是虚构的,仅用于教育目的,但遵循其他架构的常见约定。现在是我的问题和关于答案的第一个想法

假设符号ALPHA和BETA是源程序中的标签。 以下两个语句序列之间的区别是什么

A.) LDA ALPHA-BETA

B.) LDA ALPHA
    SUB BETA
为了清楚起见,LDA将数据加载到用于算术运算的寄存器A中。像SUB这样的操作,如这里所示,或者ADD,默认情况下在寄存器A上工作,而不必声明它


现在,乍一看,我假设A和B是等价的。我的逻辑很简单。将α和β的差值加载到A中,或者加载到A中,α,然后从寄存器A中的α中减去β。在我看来,这似乎完成了同样的事情?我是遗漏了一些琐碎的细节,还是真的像看上去那么简单

LDA接受内存中的单个地址,并从该位置加载一个字。因此,
LDA ALPHA-BETA
将从address
ALPHA-BETA
加载一个单词。但是,第二个代码将从
ALPHA
加载一个单词,然后在
BETA
处减去该单词

假设:

ALPHA=103
BETA=100
mem[3]=42
mem[100]=2
mem[103]=3

现在,
LDA ALPHA-BETA
将被组合为
LDA 3
,它将只加载地址
3
处的单词,即我们示例中的
42
。第二个代码将首先加载地址
103
处的单词,即
3
,然后减去地址
100
处的单词,即
2
,因此结果将是
1

,该玩具语言的手册中说该语句的意思是什么?我猜是间接寻址。LDA m,A从内存(m..m+2)获取数据。