Está en la página 1de 5

Práctica 3

Aplicación de la plataforma de desarrollo


Martínez Sixto Adán.

Universidad Nacional Autónoma de México


Facultad de Ingeniería
División de Ingeniería Eléctrica
Laboratorio de Microprocesadores y microcontroladores
6 de marzo del 2018.
Grupo teoría:3; Grupo Laboratorio:5

I. Objetivo En la operación de ADD y AND es un modo de


direccionamiento de registro. Mientras que en la
Que el alumno identifique la operación que realiza instrucción STR es un modo de direccionamiento
un programa y los modos de direccionamiento de indexado.
empleados.
Declaracion de apuntadores R3 y R2
II. Trabajo de laboratorio
Identifique que realiza el siguiente programa, anote
los tipos de direccionamiento empleados,
ensamblarlo, cargarlo a la tarjeta de desarrollo y
verifique los resultados en pantalla.

.global main
MOV R4,#0x2F6A
.data
.text

main MOVW R3,#0x0008


MOVT R3,#0x2000 ;Declara el ap. R3
MOVW R2,#0x000C
MOVT R2,#0x2000 ;Declara el ap. R2

MOV R4,#0x2F6A ;copia el valor


hexadecimal en R4
STR R4,[R3]
STR R4,[R3];guarda en la dirección que
punta R3 el contenido de R4

MOV R5,#0x405A;copia el valor


hexadecimal en R5

STR R5,[R2];Guarda en la dirección que


apunta R2 el contenido de R5

AND R6,R4,R5 ;guarda en R6 el


resultado de la operación lógica de R4
y R5

ADD R2,R2,#0x4 ;Suma 4 hexadecimal al MOV R5,#0x405A


apuntador R2

STR R6,[R2]; Guarda en la dirección


que apunta R2 el contenido de R6

STOP B STOP
.end
Nemotécnicos más frecuentes:
STR R5,[R2] Move.- copia el contenido de un registro (o
memoria) a otro.
Store.- copia el contenido de un registro a memoria.
Load.- copia el contenido de una posición de
memoria a un registro.
Move.- block copia un bloque de datos de una
posición de memoria a otra.
AND R6,R4,R5 Move multiple.- copia del origen en varias
posiciones de memoria.
Exchange.- intercambia el contenido de dos
operandos.
Clear.- pone a 0 el destino (todos los bits).
Set.- pone a 1 el destino (todos los bits).
Push.- introduce un dato en la cabecera de la pila
ADD R2,R2,#0x4 (indicada por el SP).
Pop.- saca un dato de la cabecera de la pila
(indicada por el SP).
Instrucciones aritméticas
Son efectuadas por la ALU y suelen cambiar los
flags o indicadores de condición.

Nemotécnicos más frecuentes:


STR R6,[R2] Add: suma.
Add with carry: suma con acarreo.
subtract: resta.
subtract with borrow: resta teniendo en cuenta el
adeudo anterior.
increment: incrementa en 1 un valor.
decrement: decrementa en 1 un valor.
multiply: multiplica.
divide: divide.
III. Cuestionario extend: aumenta el operando de tamaño.
negate: cambia de signo.
a) Indique y explique los tipos de absolute: valor absoluto.
instrucciones en un MPU Pueden tener instrucciones para tratar con números
en BCD e incluyen operaciones en coma flotante,
Transferencia de datos lo cual se identifica con una 'f' antes del nombre del
Copian datos de un origen a un destino, sin nemotécnico como por ejemplo: fabsolute
modificar el origen y normalmente sin afectar a los Instrucciones de comparación
flags o indicadores de condición. Pueden transferir Suelen preceder a una instrucción de bifurcación
palabras, fracciones de palabras (bytes, media condicional y modifican los flags (Banderas o
palabra) o bloques completos de n bytes o palabras. señaladores). No hay que pensar que las
Estas operaciones pueden ser: instrucciones de salto condicional dependen de este
repertorio, ya que lo único que hace el salto
Registro a registro. condicional es consultar los flags y salta si precede,
Registro a memoria. pero no depende de ninguna instrucción de
Memoria a registro. comparación. (De hecho cualquier operación
Memoria a memoria. aritmética realizada anteriormente a un salto
condicional puede provocar que este "salte").
bcond, donde cond es una o más letras que indican
Nemotécnicos más frecuentes: la condición que ha de cumplirse para que el salto
compare: resta los dos operandos pero no almacena se produzca.
el resultado, solo modifica los flags.
test: compara un cierto valor especificado con el 0. Incondicional
Salta sin comprobar ninguna condición.
Instrucciones lógicas Nemotécnicos más frecuentes: jump o brantch.
Realizan operaciones booleanas "bit a bit" entre dos
operandos. Como las aritméticas también Condicional
modifican los flags. Salta si la condición se cumple.
Nemotécnicos más frecuentes: jcond o bcond.
Nemotécnicos más frecuentes: Llamadas a subrutinas
and: el "y" lógico. Invoca la ejecución de funciones anteriormente
or: el "o inclusivo" lógico. definidas.
xor: el "o exclusivo" lógico.
not: la negación lógica. (complemento a 1, no Nemotécnicos más frecuentes: call (llamada) y ret
confundir con el cambio de signo "negate" que es (retorno).
el complemento a 2). Gestión de interrupciones
Instrucciones de desplazamiento Se usan para llamar a las rutinas de servicio de
Pueden ser aritmético o lógico y pueden incluir o interrupción y esto se puede hacer por hardware o
no rotaciones. Pueden ser de izquierda a derecha. bien por software. Necesita una instrucción similar
a return para retornar al contexto anterior pero
Nemotécnicos más frecuentes: restableciendo el estado de la máquina, para no
shift: desplazamiento aritmético o lógico. afectar a la aplicación a la cual se interrumpió (iret).
rotate: rotación con o sin acarreo. Instrucciones de entrada y salida
Instrucciones de bits Son instrucciones de transferencia salvo que el
Comprueban un bit del operando y su valor lo origen/destino de dicho flujo es un puerto de un
reflejan en el indicador de cero. Pueden poner un dispositivo de entrada y salida. Estas instrucciones
bit a 0 o complementarlo. pueden darse mediante dos alternativas:
E/S "mapeada" en memoria: los periféricos
Nemotécnicos más frecuentes tienen direcciones asignadas de la MP por lo que no
bit test: comprueba un bit. se necesitan instrucciones especiales y las
bit clear: comprueba un bit y lo pone a 0. operaciones se realizan con las ya vistas, como son:
bit set: comprueba un bit y lo pone a 1. load, store y move.
Instrucciones de control E/S independiente: necesitan unas instrucciones
Permiten modificar la secuencia normal de especiales para indicarle al procesador que nos
ejecución de un programa, puede hacerse por salto estamos refiriendo al mapa de direcciones de E/S,
condicional relativo o absoluto. ya que este mapa y el mapa de memoria son
Se clasifican en cuatro grupos: disjuntos.
Nemotécnicos más frecuentes
salto incondicional input o read: permite leer información de un puerto
salto condicional y trasladarla a memoria principal.
llamada a subrutinas output o write: permite escribir información en un
gestión de las interrupciones puerto de un dispositivo.
test i/o: lee información de control de un periférico.
control i/o: envía información de control hacia un
Saltos periférico.
Pueden ser condicionales o incondicionales, se Instrucciones de control y misceláneas
suelen especificar como jump o brantch, y en el Nemoténicos más frecuentes:
caso de los condicionales se suele llamar jcond o
halt: detiene la ejecución del programa hasta que modelo. Y al consumo de recursos disponibles (con
una interrupción arranca otro programa. desigualdades = ó = e igualdades =) en las
wait: sirve para detener la ejecución de un restricciones.
programa hasta que sucede un determinado evento
que no es una interrupción (otra condición externa c) ¿Cuál es la diferencia entre programa fuente
al primer programa). y programa objeto?
nop: no realiza ninguna operación, sirve para
rellenar huecos en un programa o temporizar Programa Objeto
esperas. -Es aquel programa que se encuentra en lenguaje
enable: habilita las interrupciones. máquina y que ya es ejecutable por esta.
disable: deshabilita las interrupciones. -Es el resultado de traducir un programa fuente para
test and set: se utiliza para la implementación de la obtener un lenguaje comprensible por la máquina.
exclusión mutua, esto es, que un procesador no
pueda acceder a un determinado recurso que está Programación orientada a objetos (OOPS); es una
siendo usado por otro procesador en ese mismo técnica de programación que utiliza objetos como
momento. bloque esencial de construcción, es un tipo de
Se usan como semáforos, esto es, se declara una programación mas cercana al razonamiento
variable entera que tendrá el valor 0 si el recurso humano; surge como una solución a la
esta libre y 1 si está siendo utilizado, de manera que programación de grandes programas, y para
si un procesador comprueba y el semáforo está en solventar el mantenimiento de dichas aplicaciones,
1 tendrá que esperar hasta que este cambie a 0 (1 = ya que en la programación estructura el más
semáforo rojo y 0 = semáforo verde). mínimo cambio supone la modificación de muchas
funciones relacionadas, en cambio con la OOPS
b) ¿Qué es el modelo de programación? solo es cuestión de añadir o modificar métodos de
una clase o mejor, crear una nueva clase a partir de
El modelo de programación es un mecanismo otra (Herencia). Dos lenguajes destacan sobre el
disponible para el programador, donde pueda resto para programar de esta forma, Smalltalk y
expresar la estructura lógica de un programa. C++.
Influye
Complejidad del programa Programa fuente
Costo de desarrollo -Es el programa escrito en alguno de los lenguajes
Legibilidad. Costo de mantenimiento y que no ha sido traducido al lenguaje de la
Rendimiento máquina, es decir el programa que no está en
Influenciado por el modelo código de máquina y que por lo tanto no puede ser
por la implementación del modelo ejecutable.
Por la estructura de paralelización -Es aquel que nos permite escribir un algoritmo
Componentes mediante un lenguaje formal. Por eso al código
Datos desarrollado al programar se le llama código fuente.
Procesos
Comunicación d) Explique que es MCU tipo RISC
Sincronización En arquitectura computacional, RISC (del inglés
Entrada/salida Reduced Instruction Set Computer, en español
Computador con Conjunto de Instrucciones
El Modelo de Programación Lineal, es una Reducidas) es un tipo de diseño de CPU
representación simbólica de la realidad que se generalmente utilizado en microprocesadores o
estudia, o del problema que se va a solucionar. Se microcontroladores con las siguientes
forma con expresiones de lógicas matemáticas, características fundamentales:
conteniendo términos que significan
contribuciones: a la utilidad (con máximo) o al Instrucciones de tamaño fijo, presentadas en un
costo (con mínimo) en la Función Objetivo del reducido número de formatos.
Sólo las instrucciones de carga y  SOSA FUENTES ALEJANDRO. Notas de
almacenamiento acceden a la memoria de datos. clase ‘MICROPROCESADORES Y
MICROCONTROLADORES’, 2017.
Además estos procesadores suelen disponer de
muchos registros de propósito general.

El objetivo de diseñar máquinas con esta


arquitectura es posibilitar la segmentación y el
paralelismo en la ejecución de instrucciones y
reducir los accesos a memoria. Las máquinas RISC
protagonizan la tendencia actual de construcción de
microprocesadores. PowerPC, DEC Alpha, MIPS,
ARM, SPARC son ejemplos de algunos de ellos.

e) Modifique el programa para que el


resultado de la instrucción ORR R6,R4,R5
se coloque en la dirección 0x20000014

.global main
.data
.text

main MOVW R3,#0x0008


MOVT R3,#0x2000
MOVW R2,#0x0010
MOVT R2,#0x2000

MOV R4,#0x2F6A
STR R4,[R3]
MOV R5,#0x405A
STR R5,[R2]
AND R6,R4,R5
ORR R6,R4,R5
ADD R2,R2,#0x4
STR R6,[R2]
STOP B STOP
.end

IV. Conclusiones

A partir de los resultados obtenidos se concluye que


para modificar la dirección en que se guarda el
resultado final, basta con cambiar la dirección del
apuntador R2. Así mismo, se comprobó el modo de
direccionamiento como indexado y registro, así
como de algunas operaciones lógicas.

V. Bibliografía

 Santa Maria Eduardo Universidad


Pontificia de Comillas ELECTRÖNICA
DIGITAL Y MICROPROCESADORES
1993.

También podría gustarte