Instrucción: RETI |
Función: | Retorno de interrupción |
Sintaxis: | RETI |
Código de Operación de 16 bit |
1001 |
0101 | 0001 | 1000 |
Operación: | PC(15:0) Ü STACK |
Operandos: | Ninguno |
Words: | 1 (2 bytes) |
Ciclos: | 4 |
Flags: | I |
Pila: | SP Ü SP + 2 (2 bytes, 16 bits) |
Program Counter: | PC(15:0) Ü STACK |
Descripción: RETI realiza un retorno desde una interrupción. La dirección de retorno es cargada desde la pila y el flag de interrupción global está a set. Note que el registro de estado no se guarda automáticamente al entrar en una rutina de interrupción, y no se restaura al volver de una rutina de la interrupción. Debe ser manejado por el programa de la aplicación. El puntero de pila usa un esquema de pre-incremento durante el RETI. |
|
I: 1, el flag I está a set | |
Ejemplo: |
|
... | |
extint: PUSH r0 |
; Guardar r0 en la pila |
... |
|
POP r0 |
; Restaurar r0 |
RETI | ; Retorno y habilitación de interrupciones |