3

我想我正在努力正确定义以下模棱两可的操作码:LD HL,SP+r8JP (HL)操作码(0xE90xF8分别)

在我的实现中,LD HL,SP+r8设置HL为 的值SP+r8,但我感觉这可能与从 RAM 加载内存有关。 JP (HL),我PUSH将 PC 放入堆栈并将程序计数器设置为 HL 的值(如JP a16,除了 HL 的值),但我读过一些论坛似乎说这是错误的。

对这些说明中的任何一个所做的任何澄清都会很棒,因为我现在很迷茫。

4

1 回答 1

5

在我的实现中,LD HL,SP+r8 将 HL 设置为 SP+r8 的值,但我感觉这可能与从 RAM 加载内存有关。

不。它只需要一个 8 位立即数,对其进行符号扩展,将 的值添加SP到其中并将结果存储在HL.

JP(HL),我将 PC 推入堆栈并将程序计数器设置为 HL 的值(如 JP a16,除了 HL 的值)

JP不会将电流压入PC堆栈(也许您将其与 混淆了CALL)。做什么JP (HL)只是PC = HL

于 2016-05-04T17:53:41.877 回答