addr 在操作码 0x3a LDA addr intel 8080 中意味着什么

What does addr means in the opcode 0x3a LDA addr intel 8080

LDA 是一个简单的操作码,用于加载 intel 8080 处理器中指向的数据的累加器(寄存器 a)。在这种情况下(0x3a LDA 地址)它表示 op 将地址加载到累加器。但是我无法识别它指定为地址的内容。

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

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 个字节以某种方式将地址编码到指令中。 Intel CPU 使用 little-endian 方案,因此要对地址进行编码,低 8 位存储在第一个字节中,高 8 位存储在第二个字节中。这就是 LDA 操作码的作用,这就是为什么它有 3 个字节长。