如何添加一个 16 位和一个 8 位的带进位寄存器(例如 HL 和 A)?
问问题
6395 次
3 回答
28
我想指出,检查过的回复(由 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
但是,右侧的解决方案确实需要额外的代码字节。
于 2010-07-26T22:12:10.927 回答
14
你不能直接做。您需要将 A 复制到 16 位寄存器对中,然后添加:
LD B, 0
LD C, A
ADC HL, BC
于 2010-02-11T21:44:16.910 回答
-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
于 2010-02-11T21:44:28.670 回答