Domanda

Come si fa ad aggiungere un 16 e un po '8 registri con il trasporto (ad esempio, HL, e A)?

È stato utile?

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
scroll top