Z80: Comment ajouter 16 et 8 registres de bits?
Question
Comment ajouter un 16 et un registre 8 bits avec transport (par exemple, HL, et A)?
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