有人可以解释一下操作码0x08
在LR35902处理器上的作用。助记符是LD (a16),SP
。
我感到困惑,因为堆栈指针是一个16位值,但(a16)
是一个只能存储8位的地址(我想!)。我可以猜测前8位被放入(a16)
,而下一位被放在那些旁边,但我想要确认。
答案 0 :(得分:8)
是的,该操作码将SP值放在一个地址(a16)。这就是它的样子:
void MemoryWrite(uint16_t addr, uint8_t value);
MemoryWrite(a16, SP & 0xFF);
MemoryWrite(a16 + 1, (SP & 0xFF00) >> 8);
因为它是一个小端处理器,所以你首先放置最低有效字节。