Registro de estado - SREG |
El registro de estado de los AVR (SREG) en la posición del espacio de I/O $3F ($5F) se define como: |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
$3F ($5F) | I | T | H | S | V | N | Z | C | SREG |
Read/Write | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Initial Value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
![]() El bit de habilitación de interrupción global debe estar a set (uno) para que las interrupciones estén habilitadas. El control de habilitación de interrupción individual se realiza entonces en registros de control separados. Si el bit de habilitación de interrupción global es borrado (cero), ninguna de las interrupciones se habilita, independientemente de las interrupciones individuales habilitadas. El bit I es borrado por hardware después de que haya ocurrido una interrupción y se pone a set por la instrucción RETI para habilitar interrupciones posteriores.
Las instrucciones de copia de bit BLD (Bit LoaD) y BST (Bit STore) usan el bit T como fuente y destino para el bit operado. Un bit de un registro en el archivo de registro puede copiarse en T por la instrucción BST y un bit en T puede copiarse en un bit de un registro en el archivo de registro por la instrucción BLD.
El flag de half-carry H indica un carry intermedio en algunas operaciones aritméticas.
El bit S siempre es una OR exclusiva entre el flag negativo N y el flag V de desbordamiento de complemento a dos.
El flag V de desbordamiento de complemento a dos soporta la aritmética del complemento a dos.
El flag N indica un resultado negativo después de las diferentes operaciones lógicas y aritméticas.
El flag Z indica un resultado de cero después de las diferentes operaciones lógicas y aritméticas.
El flag de carry C indica una llevada en una operación aritmética o lógica. Observe que el Registro de Estado no se guarda automáticamente al entrar en una rutina de interrupción y se restaura al volver de una rutina de interrupción. Debe ser manipulado por software. |
El puntero de pila general de los AVR de 16-bit se construye eficazmente con dos registros de 8 bit en las posiciones del espacio de I/O $3E ($5E) y $3D ($5D). Como los AT90S8515 soportan 64 Kb de SRAM externa, los 16 bits son usados. |
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
$3E ($5E) | SP15 | SP14 | SP13 | SP12 | SP11 | SP10 | SP9 | SP8 | SPH |
$3D ($5D) | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | SPL |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Read/Write | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | ||
Initial Value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
El puntero de Pila apunta al área de pila de la SRAM de datos donde se localizan la pila de interrupción y de subrutina. Este espacio de la pila en la SRAM de datos debe ser definido por el programa antes de que se ejecute cualquier llamada a subrutina o se habiliten interrupciones. El puntero de pila debe estar a set para apuntar por encima de $60. El puntero de pila es decrementado en 1 cuando los datos se introducen en la pila con la instrucción PUSH y es decrementado en 2 cuando una dirección se introduce en la pila con llamadas a subrutinas e interrupciones. El puntero de pila es incrementado en 1 cuando el dato se saca de la pila con la instrucción POP y es incrementado en 2 cuando una dirección se saca de la pila con retorno de subrutina RET o retorno de interrupción RETI. |