你如何添加16和一个8位带进位寄存器(例如,HL和A)?

有帮助吗?

解决方案

您不能直接做。您需要将复制到一个16位寄存器对,然后执行加载:

LD  B, 0
LD  C, A
ADC HL, BC

其他提示

我想指出的是所检查的响应(由Carl Norum时)是正确的,但不是最好的答案。 下面显示了用时钟周期的两种策略的速度。 使用正确的解决方案节省时间,并且不会破坏一个第二16位寄存器对。

  4   ld c,a            4   add a,l
  7   ld b,0            4   ld l,a
  11  add hl,bc         4   adc a,h
                        4   sub l
                        4   ld h,a

然而,在右边的溶液确实需要一个额外的代码字节。

HTTP://nemesis.lonestar。组织/计算机/坦迪/软件/应用/ M4 / QD / opcodes.html

Add Byte with Carry-In Instructions
8080 Mnemonic Z80 Mnemonic  Machine Code Operation
ADC  M        ADC A,(HL)    8E           A <- A + (HL) + Carry
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top