assembly - microprocessor - zilog microcontrollers
Z80: ¿Cómo agregar registros de 16 y 8 bits? (3)
De nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/…
Add Byte with Carry-In Instructions
8080 Mnemonic Z80 Mnemonic Machine Code Operation
ADC M ADC A,(HL) 8E A <- A + (HL) + Carry
¿Cómo se agrega un registro de 16 y 8 bits con carry (por ejemplo, HL y A)?
Me gustaría señalar que la respuesta marcada (por Carl Norum) es correcta, pero no la mejor respuesta. A continuación, se muestra la velocidad de las dos estrategias con ciclos de reloj. Usar la solución correcta ahorra tiempo y no destruirá un segundo par de registros de 16 bits.
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
Sin embargo, la solución de la derecha toma un byte extra de código.
No puedes hacerlo directamente. Necesita copiar A en un par de registros de 16 bits y luego hacer el complemento:
LD B, 0
LD C, A
ADC HL, BC