Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想我正在努力正确定义以下模棱两可的操作码:LD HL,SP+r8和JP (HL)操作码(0xE9和0xF8分别)
LD HL,SP+r8
JP (HL)
0xE9
0xF8
在我的实现中,LD HL,SP+r8设置HL为 的值SP+r8,但我感觉这可能与从 RAM 加载内存有关。 JP (HL),我PUSH将 PC 放入堆栈并将程序计数器设置为 HL 的值(如JP a16,除了 HL 的值),但我读过一些论坛似乎说这是错误的。
HL
SP+r8
PUSH
JP a16
对这些说明中的任何一个所做的任何澄清都会很棒,因为我现在很迷茫。
在我的实现中,LD HL,SP+r8 将 HL 设置为 SP+r8 的值,但我感觉这可能与从 RAM 加载内存有关。
不。它只需要一个 8 位立即数,对其进行符号扩展,将 的值添加SP到其中并将结果存储在HL.
SP
JP(HL),我将 PC 推入堆栈并将程序计数器设置为 HL 的值(如 JP a16,除了 HL 的值)
JP不会将电流压入PC堆栈(也许您将其与 混淆了CALL)。做什么JP (HL)只是PC = HL。
JP
PC
CALL
PC = HL