Esta es más una pregunta teórica... (También mi primera en Stack Overflow)
Me pregunto qué sucede con los registros del microcontrolador Atmel AVR (es decir, ATTINY85) durante una instrucción de varios ciclos.
es decir ADIW
, se necesitan dos ciclos para agregar un registro inmediato a un registro de dos bytes (palabra).
Me imagino que durante el primer ciclo se opera uno de los bytes, y luego en el siguiente ciclo se opera el otro byte. Pero, ¿este proceso está definido en algún lugar donde pueda leer? ¿Y qué hay de las otras instrucciones multiciclo?
Esencialmente, estoy interesado en el estado del microcontrolador después de cada ciclo individual, incluso dentro de las instrucciones de varios ciclos.
Aquí está mi interpretación:
Para que un uC de 8 bits haga matemáticas de 16 bits, primero tiene que calcular los bits significativos más bajos y luego pasar a los bits significativos más altos, por lo que el primer ciclo agrega 8 bits con un acarreo y luego agrega ese acarreo a los 8 más altos. -bits.
En sentido abstracto, 8 bits no pueden hacer cálculos de 16 bits en una sola instrucción, ya que los resultados se afectan entre sí.
Ignacio Vázquez-Abrams
Tristán
chris stratton
Tristán
Tristán
ADIW
actualiza el registro de resultados inferior después del primer ciclo y el registro de resultados superior después del segundo ciclo. Para hacer esto, marqué manualmente la MCU externamente a través de la salida de otro chip y restablecí la MCU original en medio de laADIW
instrucción. Al reiniciar, la MCU probó sus registros de resultados inferior y superior y, curiosamente, solo se actualizó el registro de resultados inferior. Si, en cambio, reinicio la MCU después de laADIW
instrucción completa, se actualizaron los registros de resultados inferior y superior.Shashank de Chintalagiri
Señor jo negro
Anguila trifásica