PDF de programación - Tema 12: Ensamblador - Sistemas Digitales basados en Microprocesador

Imágen de pdf Tema 12: Ensamblador - Sistemas Digitales basados en Microprocesador

Tema 12: Ensamblador - Sistemas Digitales basados en Microprocesadorgráfica de visualizaciones

Publicado el 29 de Julio del 2019
573 visualizaciones desde el 29 de Julio del 2019
383,0 KB
15 paginas
Creado hace 13a (19/03/2012)
TEMA 12: ENSAMBLADOR
Si t
Mi
d
Sistemas Digitales basados en Microprocesador
Grado en Ingeniería Telemática

Digit l

b

d

© Raúl Sánchez Reíllo

1
1

ÍNDICE

 Representación RTL
 Modelo de Programador del Cortex-M3
 Mecanismos de Programación

 Saltos, Subrutinas, Interrupciones
 Diagramas de Flujo
d Fl j

Di

 Juego de Instrucciones del Cortex-M3

f

T

 Transferencia de Datos
i d D t
 Aritméticas y Lógicas
 Control de Flujo
 Control de Flujo
 Misceláneas

 Modos de Direccionamiento
 Modos de Direccionamiento

/

11
2
3
1
2
0
1
1

/

i

S
s
t
e
m
a
s

D
g

ii

i
t

l



a
e
s

B
a
s
a
d
d
o
s

e
n
M
c
r
o
p
r
o
c
e
s
a
d
o
r

i

2

REPRESENTACIÓN RTL

 El Register Transfer Language (RTL) es un lenguaje que

simboliza la transferencia de datos entre registros
 Se utiliza, entre otras cosas, para representar el

funcionamiento de un determinado proceso
 La ejecución de una instrucción
 El funcionamiento de la Unidad de Control
 La secuencia de pasos que conlleva una interrupción
 etc.
L
especificaciones en RTL muy distintas de unos autores a
otros
otros
 Mientras haya consistencia entre las representaciones, se

 Las variantes son muchas, por lo que se pueden encontrar


d

l

h

t

t

i



puede considerar como válida
p

REPRESENTACIÓN RTL

 En este curso se va a utilizar una representación muy

simplificada:
 Paso del contenido de un registro a otro:

 MAR  PC ; lleva el contenido del PC al MAR

 Paso del contenido de la memoria a un registro (operación de

lectura)
 MBR  (MAR) ; lleva el contenido que tiene la memoria en la
 MBR  (MAR) ; lleva el contenido que tiene la memoria en la
posición indicada por MAR, al registro MBR

 Paso del contenido de un registro a memoria (operación de

( p

g

escritura)
 (MAR)  MBR ; lleva el contenido del registro MBR a la
MAR
memoria, a la posición indicada por MAR

i ió i di d

l

i



 Operaciones con el operando fuente

 PC  PC + 1 ; incrementa el PC en una unidad
 PC  PC + 1 ; incrementa el PC en una unidad

3

4

TEMA 12: ENSAMBLADOR
Modelo del Programador

 El Modelo de Programador establece el conjunto de elementos que son


d l

l

j



MODELO DEL PROGRAMADOR DEL CORTEX-M3
 A la hora de programar una CPU, muchos elementos internos se

bl

d

ocultan (por ejemplo registros como el MAR, MBR, IR, etc)
El M d l d P

necesarios conocer, de la arquitectura interna de la CPU, para
realizar programas
 Modelo de memoria
 Tipos de Datos
 Modos de Operación

 Registros
 Mecanismos de Programación (se verán más adelante)
 Mecanismos de Programación (se verán más adelante)

M d d O

6

MODELO DEL PROGRAMADOR DEL CORTEX-M3

 Modelo de Memoria:

p

 El Cortex-M3 direcciona bytes (es decir

sus 32 bits de direcciones son de datos de
8 bits)

 Se utiliza codificación little-endian
 Los datos se pueden almacenar de forma
alineada o no alineada.
 El Cortex-M3 puede trabajar con 3 tipos
de datos:
Palabra (word) de 32 bits que en memoria
 Palabra (word) de 32 bits, que en memoria
debe estar colocada alineada en múltiplos de
4
 Semipalabra (halfword) de 16 bits, que en
memoria debe estar colocada alineada en
memoria debe estar colocada alineada en
múltiplos de 2
 Byte, que en memoria puede colocarse en
cualquier dirección

MODELO DEL PROGRAMADOR DEL CORTEX-M3

 Tipos de Datos:
 Modos de Operación:

 Thread mode: para ejecutar aplicaciones software Es el modo en el
 Thread mode: para ejecutar aplicaciones software. Es el modo en el
que entra la CPU cuando sale del estado de reset
 Handler mode: para gestionar las excepciones. El procesador
vuelve al modo Thread cuando ha terminado de procesar la
p
excepción

 Niveles de privilegio para la ejecución de software:

 Unprivileged: en este nivel el software:
 Unprivileged: en este nivel, el software:

instrucción CPS
i tsistema

 Tiene acceso limitado a las instrucciones MSR y MRS, y no puede utilizar la
 No puede acceder al reloj del sistema, al NVIC o al bloque de control del
 Puede tener acceso restringido a memoria o periféricos
todos los recursos
todos los recursos

 Privileged: el software tiene acceso a todas las instrucciones y

7

8

TEMA 12: ENSAMBLADOR
Mecanismos de Programación

MECANISMOS DE PROGRAMACIÓN

 El desarrollo de un programa se realiza mediante la

concatenación de instrucciones que se ejecutarán
i
l
siguiendo un flujo lineal

fl j li

i d

 Sin embargo, ese flujo lineal se puede alterar mediante:

 Saltos
 Saltos
 Subrutinas (al igual que las llamadas a función en C)
 Interrupciones (al igual que ya se ha visto)
)

p

q

y

(

g

 Saltos:

memoria
i

 El programa continúa la ejecución en otro punto de la

 Se provoca mediante una instrucción de salto condicional

B{cond}, en la que se indica la dirección a la que saltar
{co
ecc ó a a q e sa a

}, e a q e se

ca a

 Si se cumple la condición, esa instrucción realiza el cambio
del valor del PC por el de la posición donde tiene que seguir
el programa
el programa

10

MECANISMOS DE PROGRAMACIÓN

 Subrutinas:

 Se trata de un salto temporal, volviendo posteriormente a la

p

p

instrucción siguiente a la del salto a subrutina

 Se utilizan para estructurar el programa en funciones a las

que se llama repetidas veces (optimizan código)
)

tid

ódi

ll

ti

(

i



 La CPU obtiene la dirección de salto de los bits que

acompañan al opcode
acompañan al opcode

 Antes de realizar el salto, la CPU debe guardar el contenido

del PC, para recuperarlo posteriormente (cuando se de la
instrucción de volver)

 Las instrucciones, en el caso del ARM7, se denominan

d} (b

BL{
d l PC (R15)
BL{cond} (branch with link), y guardan el valor del PC (R15)
ith li k)
en el registro de link LR (R14)

l

h

d

l

MECANISMOS DE PROGRAMACIÓN

 Interrupciones:

 Es un mecanismo por el cual se permite que la CPU realice

determinadas operaciones cuando haya ocurrido un
determinadas operaciones, cuando haya ocurrido un
determinado evento externo
 Es como una subrutina, pero que no es llamada por el
programador (no es una instrucción concreta en el programa)
programador (no es una instrucción concreta en el programa)
 Cada vez que se ejecuta, el programa principal puede estar
en una instrucción u otra
C
 Cuando ocurre ese evento se pasa a ejecutar una subrutina,

t
conocida como Rutina de Atención a la Interrupción o
como Rutina de Servicio
A t
 Antes de entrar a ejecutar la Rutina de Servicio, la CPU
t
l CPU
tiene que guardar el valor del PC y el contexto (que en su
versión mínima es el SR)
 En algunas CPUs también se inhiben las interrupciones
 En algunas CPUs también se inhiben las interrupciones
 Se termina la ejecución de la Rutina de Servicio recuperando
el contexto (el valor del PC y del registro de estado)

b ti

l R ti

d S

j

d

d

i i

j

t

t



11

12

MECANISMOS DE PROGRAMACIÓN

 Interrupciones:

 La Rutina de Servicio es algo que se puede ejecutar en
cualquier momento y que está interrumpiendo el curso
cualquier momento, y que está interrumpiendo el curso
normal del programa
 Entre la CPU y el programador se debe garantizar que,
cuando se vuelve de la Rutina de Servicio la CPU se
cuando se vuelve de la Rutina de Servicio, la CPU se
encuentra en las mismas condiciones que si no se hubiese
producido la interrupción (salvo modificaciones
intencionadas))
 Debe ser una rutina razonablemente corta y efectiva, que no
deje al programa en una espera demasiado larga (un cuelgue)
 Tradicionalmente tendrá que comunicar al programa
 Tradicionalmente tendrá que comunicar al programa
principal que ha ocurrido una interrupción y las
consecuencias de la misma

Una CPU puede tener varias fuentes de interrupción, y
 Una CPU puede tener varias fuentes de interrupción, y
pueden estar activas más de una al mismo tiempo
 Algunas estarán activadas por defecto, mientras otras habrá
que activarlas
q

13

TEMA 12: ENSAMBLADOR
Juego de Instrucciones del
Cortex-M3

JUEGO DE INSTRUCCIONES DEL CORTEX-M3

 El Juego de Instrucciones del Cortex-M3 es reducido en número de

instrucciones, pero muy amplio en variantes de las mismas
 Por ejecución condicional
 Por modo de direccionamiento y tamaño de la palabra utilizada

 Para simplificar la explicación se van a seguir las siguientes pautas:

j

 Se comentará primero las distintas instrucciones
 Se comentará primero las distintas instrucciones
 Después se detallarán:

 la forma de referirse a los distintos operandos (direccionamiento)
 las modificaciones del CPSR si S=1 (si se especifica S en la instrucción)
 las modificaciones del CPSR si S=1 (si se especifica S en la instrucción)
 las condiciones de ejecución para las instrucciones

 Las instrucciones se van a desglosar en:

 Transferencia de Datos
 Transferencia de Datos
 Entre memoria y CPU
 Entre registros

 Aritméticas y Lógicas
 Control
 Misceláneas
sino forma de tratar uno de los operandos (<Op2>)

f



 Los desplazamientos y rotaciones no son instrucciones específicas,



JUEGO DE INSTRUCCIONES DEL CORTEX-M3

 Simplificaciones a realizar en el curso

 Todas las instrucciones van a poder ser condicionales

 Esto se refleja en que cada mnemónico de instrucción va seguido, opcionalmente por
 Durante este curso no se van a utilizar los códigos de condición en ninguna

un código de condición {cond}
un código de condición {cond}
instrucción salvo en las de Salto Condicional
 Por tanto se ignorará en todas la parte {cond} salvo en B{cond}

 Muchas instrucciones pueden determinar si modifica o no el registro de estado
 Muchas instrucciones pueden determinar si modifica o no el registro de estado

 En este curso se va a considerar que todas aquellas instrucciones que

puedan modificar el registro de estado, lo van a hacer
 Toda instrucción que pueda utilizar el paráme
  • Links de descarga
http://lwp-l.com/pdf16380

Comentarios de: Tema 12: Ensamblador - Sistemas Digitales basados en Microprocesador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad