如何使用进位添加16位和8位寄存器(例如,HL和A)?
答案 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