Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microcontroladores
Curso 2019/2020
Tema 8: Arquitectura
(v1)
Índice
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
1. Sistema
Almacenamiento
Controla transferencias Memoria programa y datos
de datos en el sistema
CPU
Realiza operaciones
sobre los datos Periféricos Comunicación con el
E/S mundo exterior
Buses
• Direcciones: indica
el elemento del
sistema sobre el que
se va a operar Mundo
Exterior
• Datos: transporta la
información con la
que se va a operar
Interconexión de los
• Control: señales elementos del sistema
auxiliares de gestión
del sistema (relojes,
reset…)
MSP430G2533
Memoria
Módulo auxiliar
de gestión
Periféricos
E/S
CPU
Buses
Físico Funcional
Dependiente del dispositivo
0xFFFF Vectores
Flash 64 B
0xFFC0 Interrupción
0xFFBF
Flash Código 16 KB
0xC000
NO UTILIZADA
0x10FF Información
Flash 256 B 64 KB
0x1000 Calibración
MSP430x2xx Family User's Guide
+
NO UTILIZADA
0x03FF
RAM Datos 512 B
0x0200
0x01FF
Periféricos 16 bits 256 B
0x0100
0x00FF
Periféricos 8 bits 240 B
0x0010
0x000F
Registros especiales 16 B
0x0000
MSP430G2533
MSP430G2533 Datasheet
MSP430G2533 Datasheet
MSP430G2533 Datasheet
MSP430G2533 Datasheet
MSP430G2533 Datasheet
MSP430G2533 Datasheet
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
2. Memoria
Memoria
2.1. Arquitectura
─ Harvard: separa la memoria en dos bloques de memoria independientes, uno
para almacenar el programa y otro para almacenar los datos. Existen buses
diferenciados para acceder a cada bloque de memoria, los cuales pueden tener
distinto tamaño:
Memoria
Instrucciones
Programa
Direcciones
CPU Direcciones
Datos
Datos
─ Von Neumann: utiliza la memoria para almacenar tanto el programa como los
datos. Los buses para acceder a la memoria son compartidos:
Memoria
Direcciones Programa
CPU
Instrucciones – Datos Datos
MSP430G2533
2.2. Organización
─ Tamaño de los datos: aunque la longitud de la palabra es de 16 bits, la CPU
puede acceder a los datos como palabras (16 bits) o como bytes (8 bits)
─ Definiciones:
• Al estar formada una palabra por 2 bytes, se denomina byte menos
significativo o LSB (“Least Significant Byte”) al byte de menor peso (ubicado
en la parte baja de la palabra), y byte más significativo o MSB (“Most
Significant Byte”) al byte de mayor peso (ubicado en la parte alta de la
palabra)
MSB 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 LSB
MSb 0 0 0 1 1 0 1 0 LSb
(1) Esta definición no es correcta, pues se utiliza el término LSB para denotar tanto al byte menos significativo como al bit
menos significativo indistintamente, y se utiliza el término MSB para denotar tanto al byte más significativo como al bit
más significativo indistintamente. No obstante, se empleará esta notación para evitar ambigüedades
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.18
2. Memoria – 2.2. Organización
MSB 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 LSB
0xB81A
0x0005 0x0005
0x0004 0x0004
0x0000 0x0000
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
3. CPU
CPU
Características:
─ Arquitectura: RISC
3.1. Arquitectura
─ CISC (Complex Instruction Set Computer): número elevado de instrucciones
complejas (para reducir el número de accesos a memoria)
Programas más cortos
CPU más compleja de diseñar
Menor eficiencia al dificultar el paralelismo en la ejecución de instrucciones
(pipeline)
• Modelo utilizado antiguamente por µP (Intel, AMD) En desuso
─ RISC (Reduced Instruction Set Computer): número reducido de instrucciones
sencillas (para implementar instrucciones rápidas de ejecutar)
CPU más sencilla de diseñar
Mayor eficiencia al favorecer el paralelismo en la ejecución de instrucciones
(pipeline)
Programas más extensos
• Modelo utilizado por µC y algunos µP (ARM)
MSP430G2533
MSP430G2533 Datasheet
3.2. Registros
─ Dispone de 16 registros de 16 bits
4 registros específicos con funcionalidades especiales:
PC: Contador de Programa (Program Counter)
SP: Puntero de Pila (Stack Pointer)
SR: Registro de Estado (Status Register)
CG: Generador de Constantes (Constant Generator)
3.2.1. Específicos
R0: Contador de programa (PC: “Program Counter”)
─ Funcionalidad: apunta a la dirección de la siguiente instrucción a ejecutar
─ Características: como todas las instrucciones tienen un tamaño par en bytes (2,
4 ó 6 bytes), siempre contiene una dirección par
─ Operación: la CPU se encarga de actualizar automáticamente el contador de
programa en función de la instrucción ejecutada
Dirección par
Dirección par
(1) Igualmente, se suele utilizar como comienzo de la zona de variables el principio de la RAM (0x0200 en el caso del
MSP430G2533), pues las variables se van almacenando en posiciones crecientes de memoria. Con este esquema se
optimiza el uso de la memoria, ya que las variables se van creando desde las posiciones bajas a las posiciones altas de
memoria y la pila va ocupando desde las posiciones altas a las posiciones bajas de memoria, maximizando la distancia
entre ambas zonas (variables y pila) y permitiendo el mayor uso de toda la memoria disponible
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.28
3. CPU – 3.2. Registros – 3.2.1. Específicos
PUSH POP
Predecremento Postincremento
Datos
almacenados
Base de la pila
(BOS)
2 1
1
Parte superior de
la pila (TOS) con
el último dato
alnmacenado
NOTA: Con el esquema de predecremento/postincremento utilizado la base de la pila (BOS) nunca contiene datos
almacenados
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.29
3. CPU – 3.2. Registros – 3.2.1. Específicos
Operaciones aritméticas
Bajo consumo
Interrupciones
rw-0: Indica que este bit se puede leer (r) y escribir (w),
y que tras un reset se inicializa a cero (0)
Desbordamiento: resultado
inválido en operaciones
aritméticas (V=1)
Bajo consumo: controlan los
relojes activos en el sistema
Interrupciones: habilita las
interrupciones enmascarables
(GIE=1)
Negativo: resultado negativo
en operaciones aritméticas
(N=1)
Cero: resultado nulo en
operaciones aritméticas (Z=1)
Acarreo: acarreo generado en
operaciones aritméticas (C=1)
Codificación Constante
Destino
Origen
Registro:
─ Operación: el operando se encuentra en un registro (Rn) se puede utilizar
para mover datos desde/hasta registros
Indexado:
─ Operación: el operando se encuentra en la dirección a la que apunta un registro
(Rn) más un determinado desplazamiento (X) se puede utilizar para mover
datos desde/hasta arrays en memoria
Simbólico:
─ Operación: el operando se encuentra en la dirección identificada por una
etiqueta se puede utilizar para mover datos desde/hasta posiciones de
memoria identificadas mediante etiquetas (es el modo de direccionamiento
utilizado para referenciar variables)
Absoluto:
─ Operación: el operando se encuentra en la dirección identificada por una
determinada posición se puede utilizar para mover datos desde/hasta
determinadas posiciones de memoria (es el modo de direccionamiento utilizado
para referenciar periféricos)
Indirecto:
─ Operación: el operando se encuentra en la dirección a la que apunta un registro
(Rn) se puede utilizar para mover datos desde posiciones de memoria
identificadas mediante punteros
Inmediato:
─ Operación: el operando se encuentra en la propia instrucción se puede
utilizar para introducir constantes en memoria/registros (es el modo de
direccionamiento utilizado para configurar periféricos)
3.4. Instrucciones
Palabra Palabra Palabra
Mover R7 Byte R8
Emulada Básica
Nemónico
Descripción
3.4.1. Formato
(2 operandos)
realizan la operación para las que están
Formato I
diseñadas, sin tener en cuenta el tipo de
datos sobre los que operan. Es tarea del
programador elegir la instrucción
adecuada en función de los datos a
procesar (sin signo, con signo, byte,
palabra…) e interpretar el resultado de
dichas instrucciones
(1 operando)
Formato II
Las instrucciones de salto condicional se
Formato III
suelen utilizar en combinación con otras
(Saltos)
instrucciones (aritméticas, comparación,
testeo de bits…), de forma que estas otras
instrucciones actualicen los bits del
registro de estado (SR) antes de
comprobar la condición del salto
(1 operando)
Formato II
(direccionamiento a registro)
Formato III
(Saltos)
Conclusiones:
─ Los modos de direccionamiento tienen una gran influencia en el tamaño y
tiempo de ejecución de las instrucciones. Si hay que optimizar el código en
tamaño y/o velocidad, es necesario elegir el modo de direccionamiento más
eficiente según cada caso (el modo de direccionamiento más eficiente es el
direccionamiento a registro)
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.48
3. CPU – 3.4. Instrucciones – 3.4.3. Codificación
3.4.3. Codificación
(2 operandos)
Formato I
(1 operando)
Formato II
Formato III
(Saltos)
a) Formato I
Código de operación:
Modo de direccionamiento:
Tamaño:
b) Formato II
Código de operación:
Modo de direccionamiento:
NOTA: Todos los modos de direccionamiento son válidos para las instrucciones PUSH y CALL, y todos los modos de
direccionamiento excepto el inmediato son válidos para el resto de instrucciones
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.56
3. CPU – 3.4. Instrucciones – 3.4.3. Codificación – b) Formato II
Tamaño:
c) Formato III
Código de operación:
d) Ejemplo
Loop 0xC000
cont 0x0200
Little endian
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.62
3. CPU – 3.4. Instrucciones – 3.4.3. Codificación – d) Ejemplo
0 0 0 1 0 0 0 0 1
0 0 1 0 1 0
0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0
0x108A
1 0 0 1
X = cont – PC
= 0x0200 – 0xC004
= 0x41FC
1 0 1 0 1 1 1 0 0 0 0
1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0
0x9AF0
0x41FC
0 0 1 0 0 0
1 1 1 1 1 1 1 1 0 0
0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0
0x23FC
Loop 0xC000
cont 0x0200
Little endian
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.74
3. CPU – 3.4. Instrucciones – 3.4.4. Descripción
3.4.4. Descripción
Tipos de instrucciones:
─ Aritméticas
─ Lógicas
─ Bit
─ Datos
─ Control de flujo
─ Sistema
a) Aritméticas
Realizan operaciones de cálculo con los datos
b) Lógicas
Realizan operaciones booleanas con los datos (a nivel de bit)
NOTA: Aunque la instrucción OR no está implementada, la instrucción BIS es equivalente (salvo en los bits de estado)
c) Bit
Realizan operaciones a nivel de bit con los datos
d) Datos
Realizan operaciones de modificación de datos
e) Control de flujo
Controlan el orden de ejecución del código
f) Sistema
Realizan operaciones especiales para controlar el sistema
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
4. Reset
─ Permite introducir al microcontrolador en un estado inicial conocido
(1) Útil para conectar un pulsador en el pin RST/NMI que permita realizar un reset del microcontrolador
(2) La funcionalidad del pin RST/NMI se configura en el bit WDTNMI del registro WDTCTL
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.85
4. Reset – 4.1. Tipos de reset – 4.1.2. PUC (Power-Up Clear)
(1) Una clave de seguridad es un valor determinado que hay que introducir en ciertos bits de un registro para poder operar
con el periférico asociado a dicho registro. Sirve para evitar efectos indeseados al escribir accidentalmente en registros
que controlan periféricos críticos del microcontrolador
(2) En este rango de direcciones se encuentran los registros especiales de la CPU y los registros de configuración de los
periféricos de 8 y 16 bits
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.86
4. Reset – 4.2. Estado del microcontrolador
(1) Normalmente los flags de interrupción de los registros se suelen inicializar a ‘0’, por lo que se anulan las posibles
interrupciones que quedasen pendientes de ser atendidas
(2) La única diferencia en el estado del microcontrolador tras un reset POR y un reset PUC se encuentra en el valor por
defecto al que se inicializan los distintos registros
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.88
Índice
1. Sistema 4. Reset
1.1. Mapa de memoria 4.1. Tipos de reset
4.1.1. POR (Power-On Reset)
2. Memoria 4.1.2. PUC (Power-Up Clear)
2.1. Arquitectura 4.2. Estado del microcontrolador
2.2. Organización
5. Interrupciones
3. CPU 5.1. Tipos de interrupciones
3.1. Arquitectura 5.1.1. Reset
5.1.2. (No) enmascarables
3.2. Registros
5.1.3. Enmascarables
3.2.1. Específicos
3.2.2. Propósito general 5.2. Vectores de interrupción
3.3. Modos de direccionamiento 5.3. Procesamiento
3.4. Instrucciones 5.4. Esquema completo
3.4.1. Formato
3.4.2. Tamaño y tiempo de ejecución
3.4.3. Codificación
3.4.4. Descripción
5. Interrupciones
─ Señales que se generan en el sistema como respuesta a la ocurrencia de
distintas acciones, las cuales requieren un procesamiento rápido e inmediato
por parte de la CPU
5.1.1. Reset
─ Interrupciones asociadas al reset del sistema, las cuales pueden ser generadas
por las siguientes fuentes:
• Encendido del dispositivo
POR
• Un nivel bajo en el pin RST/NMI cuando está configurado en modo reset
• Expiración del tiempo del watchdog
• Violación de la clave de seguridad del watchdog
PUC
• Violación de la clave de seguridad de la flash
• Intento de ejecución de alguna instrucción cuya dirección se encuentre en el
rango 0x0000 – 0x01FF o en una zona no utilizada del mapa de memoria
─ No se pueden deshabilitar
(1) El flanco activo del pin RST/NMI se configura en el bit WDTNMIES del registro WDTCTL
(2) Se produce una violación de acceso a la flash cuando se intenta acceder a la misma mientras se está programando
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.93
5. Interrupciones – 5.1. Tipos de interrupciones – 5.1.3. Enmascarables
5.1.3. Enmascarables
─ Interrupciones asociadas a los periféricos E/S(1)
─ Se pueden deshabilitar mediante el bit de habilitación general GIE del registro
de estado SR o mediante los bits de habilitación específicos de los registros de
configuración de cada periférico
Interrupción
RTI
Programa
0xFFFF Vectores
Flash 64 B
0xFFC0 Interrupción
0xFFBF
Flash Código 16 KB
0xC000
NO UTILIZADA
(1) Aquellos vectores de interrupción que no son utilizados en el sistema se inicializan al valor 0xFFFF
(2) En C es el compilador el que inicializa los valores almacenados en la tabla de vectores de interrupción
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.96
5. Interrupciones – 5.2. Vectores de interrupción
Posición en la tabla
de vectores de
interrupción
(dirección de
memoria) donde se
debe almacenar la
dirección de
comienzo de la RTI
asociada a cada
interrupción
5.3. Procesamiento
─ Al generarse una interrupción hay que implementar un mecanismo que permita
detener la ejecución del programa en curso, ejecutar la RTI y continuar
posteriormente con la ejecución del programa
Interrupción
RTI
Programa
(1) En tal caso debe ser el programador el responsable de comprobar cuál es la fuente de la interrupción e inicializar el flag
de interrupción correspondiente a la misma a ‘0’
(2) Este comportamiento implica que una interrupción no puede ser interrumpida por otra durante su ejecución. Si se desea
alterar este comportamiento y permitir interrupciones anidadas hay que habilitar el bit GIE del registro SR en la propia
RTI, por lo que cualquier nueva interrupción que se genere interrumpirá la RTI que se esté ejecutando
(independientemente de las prioridades de ambas interrupciones)
(3) El vector de interrupción es un puntero que indica la dirección donde comienza la RTI
Microcontroladores - Grado en Ingeniería de Sistemas de Telecomunicación - Curso 2019/2020 - [T8v1] T8.100
5. Interrupciones – 5.3. Procesamiento
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código
1. Finaliza la ejecución de la instrucción actual si la CPU se encuentra activa, o se activa la CPU si se encuentra en bajo consumo
2. El contador de programa PC (que apunta a la siguiente instrucción a ejecutar) se almacena en la pila
3. El registro de estado SR se almacena en la pila
4. Si existen múltiples interrupciones pendientes se escoge la de mayor prioridad
5. Si la interrupción tiene una única fuente se inicializa a ‘0’ el flag de interrupción asociado a la misma, y si tiene múltiples fuentes no se
modifica ninguno de los flags de interrupción asociados a las mismas
6. Se inicializa a ‘0’ el registro de estado SR, activando la CPU si estaba en bajo consumo y deshabilitando las interrupciones enmascarables
7. El contenido del vector de interrupción asociado a la misma se carga en el contador de programa PC, comenzando la ejecución de la RTI
8. Finaliza la ejecución de la RTI
9. Se restaura el registro de estado SR con el almacenado en la pila
10. Se restaura el contador de programa PC con el almacenado en la pila (que apunta a la siguiente instrucción a ejecutar), continuando la
ejecución del código