addr在操作码0x3a LDA addr intel 8080中是什么意思

时间:2019-09-01 16:21:45

标签: emulation intel-8080

LDA是一个简单的操作码,它将intel 8080处理器中的指向数据加载到累加器(寄存器a)。在这种情况下(0x3a LDA加法器),它表示op将加法器加载到累加器。但是我不知道它指定了什么地址。

A <-(adr)是0x3a进行的操作,它使用3个字节的内存。我可以将数据存储在op的最后2个字节中,如hi add和low add放在堆栈中,但是累加器只有1个字节,所以我不能。谢谢。

1 个答案:

答案 0 :(得分:2)

LDA a16指令从地址a16中读取一个字节(8080具有16位总线)并将该值存储到A寄存器中。

该指令被编码为三个:0x3a lo hi,即lohi这两个组成地址的字节。

如果要将立即(常数)值存储到A中,则应改用指令MVI A, x,即x为常数值。该指令的编码为:0x3e x,只有两个字节,就像您期望的那样。


您似乎混淆了内存地址内存内容。 8080具有16位的地址总线和8位的数据总线。这意味着它可以访问从地址0x0000到0xffff(16个全位)或65536个不同地址的内存,但是这些地址中的每个地址都可以存储一个字节,其值从0x00到0xff(8位)。总共可增加64 KB的内存。

现在,当您想从内存中读取一个值时,需要指定要读取的值的地址(记住,该地址是16位,该值是8位)。因此,您必须使用2个字节以某种方式将地址编码到指令中。英特尔CPU使用little-endian方案,因此对地址进行编码时,低8位存储在第一个字节中,高8位存储在第二个字节中。这就是LDA操作码的作用,这就是为什么它长3个字节的原因。