Z80: Come aggiungere 16 e 8 bit i registri?
Domanda
Come si fa ad aggiungere un 16 e un po '8 registri con il trasporto (ad esempio, HL, e A)?
Soluzione
Non si può farlo direttamente. È necessario copiare A in un paio registro a 16-bit e poi fare l'add:
LD B, 0
LD C, A
ADC HL, BC
Altri suggerimenti
Vorrei far notare che la risposta controllato (da Carl Norum) è corretto, ma non è la risposta migliore. Quanto segue mostra la velocità delle due strategie con cicli di clock. Utilizzando la giusta soluzione consente di risparmiare tempo, e non distruggerà una seconda coppia registro a 16 bit.
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
Tuttavia, la soluzione a destra ci vuole un byte extra di codice.
http: //nemesis.lonestar. org / computer / 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow