Gameboy 处理器 LR35902 操作码 0x08 含义

Gameboy Processor LR35902 Opcode 0x08 Meaning

谁能解释一下操作码 0x08 在 LR35902 处理器上的作用。助记符为LD (a16),SP.

我很困惑,因为堆栈指针是一个 16 位值,但 (a16) 是一个只能存储 8 位的地址(我认为!)。我猜前 8 位放在 (a16) 中,下一个放在相邻的位置,但我想确认一下。

是的,该操作码将 SP 值置于地址 (a16)。这是它的样子:

void MemoryWrite(uint16_t addr, uint8_t value);

MemoryWrite(a16, SP & 0xFF);
MemoryWrite(a16 + 1, (SP & 0xFF00) >> 8);

因为它是小端处理器,所以您将最低有效字节放在前面。