Как вы добавляете регистр 16 и 8 бит с переносом (например, HL и A)?
Z80: Как добавить 16 и 8 бит регистров?
Ответ 1
Вы не можете сделать это напрямую. Вам нужно скопировать A в 16-битную пару регистров, а затем добавить:
LD B, 0
LD C, A
ADC HL, BC
Ответ 2
Я хотел бы указать, что проверенный ответ (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
Однако решение справа делает лишний байт кода.
Ответ 3
От 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