Question

Comment ajouter un 16 et un registre 8 bits avec transport (par exemple, HL, et A)?

Était-ce utile?

La solution

Vous ne pouvez pas le faire directement. Vous devez copier A dans une paire de registres 16 bits, puis faire l'ajouter:

LD  B, 0
LD  C, A
ADC HL, BC

Autres conseils

Je voudrais souligner que la réponse vérifiée (par Carl Norum) est correct, mais pas la meilleure réponse. Ce qui suit montre la vitesse des deux stratégies avec des cycles d'horloge. En utilisant la bonne solution fait gagner du temps, et ne détruira pas une seconde paire de registres 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

Cependant, la solution à droite ne prend un octet de code supplémentaire.

De http: //nemesis.lonestar. org / ordinateurs / Tandy / logiciel / 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top