Z80:如何添加16位和8位寄存器?

时间:2010-02-11 21:37:36

标签: assembly z80

如何使用进位添加16位和8位寄存器(例如,HL和A)?

3 个答案:

答案 0 :(得分:24)

我想指出,经过检查的回复(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

然而,右边的解决方案确实需要一个额外的代码字节。

答案 1 :(得分:14)

你不能直接这样做。您需要将A复制到16位寄存器对中,然后执行add:

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

答案 2 :(得分:-4)

来自http://nemesis.lonestar.org/computers/tandy/software/apps/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