Подтвердить что ты не робот

Z80: Как добавить 16 и 8 бит регистров?

Как вы добавляете регистр 16 и 8 бит с переносом (например, HL и A)?

4b9b3361

Ответ 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

Однако решение справа делает лишний байт кода.