Disculpas por esta pregunta aparentemente menor, pero parece que no puedo encontrar la respuesta en ningún lado. Estoy empezando a implementar la instrucción DAA en mi emulador Z80, y en el manual de Zilog noté que es con el propósito de ajustar el acumulador para la aritmética decimal codificada en binario. Dice que la instrucción debe ejecutarse inmediatamente después de una instrucción de suma o resta.Z80 DAA instrucción
Mis preguntas son:
- lo que ocurre si se ejecuta la instrucción tras otra?
- ¿cómo sabe qué instrucción lo precedió?
- Me doy cuenta de que está la bandera N - ¿pero esto seguramente no indicaría definitivamente que la instrucción anterior era una instrucción de suma o resta?
- ¿Modifica el acumulador de todas formas, según las condiciones establecidas en la tabla DAA, independientemente de las instrucciones anteriores?
Muchas gracias - Espero no encontrar demasiadas instrucciones más ambiguas como esta :-) – PhilPotter1987
El DAA de Z80 debe ser equivalente a DAA y DAS de x86 ya que tienen el mismo propósito. Echa un vistazo a las descripciones x86 de ambos. Hay algún tipo de DAA disponible en muchas CPU. –
@Alex: los chips x86 tienen dos instrucciones de ajuste decimal: DAA (ajuste decimal después de la suma) y DAS (ajuste decimal después de la resta). La instrucción Z80 DAA los combina en uno, suponiendo que los operandos de la suma/resta más reciente eran números BCD válidos. – TonyK