题
你如何添加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
不隶属于 StackOverflow