UNIDAD VI-LENGUAJE MIPS (Parte1)

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 37

“Ciencia y Tecnología al Servicio del País”

22-I

Facultad de Ingeniería Eléctrica y


Electrónica
Curso: Introducción a la Computación

Docente: Carolyn Rojas Vargas

Ciclo Académico
Lenguaje Emsamblador
LENGUAJE ENSAMBLADOR

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros
y unos del sistema binario.

El lenguaje ensamblador expresa las instrucciones de una forma más natural al hombre a la vez
que muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con
otra en código máquina.

El lenguaje ensamblador trabaja con nemónicos, que son grupos de caracteres alfanuméricos
que simbolizan las órdenes o tareas a realizar.

La traducción de los nemónicos a código máquina entendible por el microcontrolador la lleva a


cabo un programa ensamblador.

El programa escrito en lenguaje ensamblador se denomina código fuente (*.asm). El programa


ensamblador proporciona a partir de este fichero el correspondiente código máquina, que suele
tener la extensión *.hex.
Clasificación de periféricos

Todo PROGRAMA (o “APLICACIÓN”) es un ALGORITMO


(*) expresado en un lenguaje que el computador sabe
interpretar (el LENGUAJE MÁQUINA, compuesto por
INSTRUCCIONES MÁQUINA, que son, según lo visto,
códigos binarios que el hardware de la máquina conoce
y sabe cómo procesar).

Por extensión, a un algoritmo que, en lugar de adoptar


la forma de una secuencia de instrucciones máquina,
viene expresado en un lenguaje de programación (y,
por tanto, fácilmente legible), también se le denomina
“programa”.
CODIGO FUENTE

Está compuesto por una sucesión de líneas de texto.

Cada línea puede estructurarse en hasta cuatro campos o columnas separados por uno o más
espacios o tabulaciones entre sí.

 Campo de etiquetas. Expresiones alfanuméricas escogidas por el usuario para identificar una
determinada línea. Todas las etiquetas tienen asignado el valor de la posición de memoria en la
que se encuentra el código al que acompañan.

 Campo de código. Corresponde al nemónico de una instrucción, de una directiva o de una


llamada a macro.

 Campo de operandos y datos. Contiene los operandos que precisa el nemónico utilizado. Según
el código, puede haber dos, uno o ningún operando.

 Campo de comentarios. Dentro de una línea, todo lo que se encuentre a continuación de un


punto y coma (;) será ignorado por el programa ensamblador y considerado como comentario.
Campo Código

Puede corresponder ese código a:

Instrucciones: son aquellos nemónicos que son convertidos por el ensamblador en código máquina que
puede ejecutar el núcleo del microcontrolador. En la gama media (PIC16xxx) cada nemónico se convierte
en una palabra en la memoria de programa

Directivas. Pseudoinstrucciones que controlan el proceso de ensamblado del programa, pero no son
parte del código. Son indicaciones al programa ensamblador de cómo tiene que generar el código
máquina

Macros: Secuencia de nemónicos que pueden insertarse en el código fuente del ensamblador de una
manera abreviada mediante una simple llamada.
Campo de operandos y datos

El ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeración decimal,
hexadecimal, octal, binario y ASCII.

Los nemónicos que tengan una constante como operando deberán incluirla respetando la sintaxis
que se indica a continuación.
TIPO SINTAXIS
Decimal D’<valor>’ d’<valor>’ .<valor>

Hexadecim H’<valor>’ h’<valor>’ 0x<valor>


al <valor>H <valor>h
Octal O’<valor>’ o’<valor>’
Binario B’<valor>’ b’<valor>’
ASCII A’<carácter>’ a’<carácter>’ ‘<carácter>’
Cadena “<cadena>”

constantes hexadecimales que empiecen por una letra deben ir precedidas de un cero para no
confundirlas con una etiqueta. Ejemplo: movlw 0F7h.
El juego de instrucciones:
SEGÚN SU FORMATO

1.- Orientadas al
byte

2.- Orientadas al
bit

3.- .- Literales y de
control
Arquitectura
MIPS
Diferenciación
Arquitectura MIPS

• El MIPS es un procesador de 32 bits con arquitectura RISC (Esta arquitectura es un tipo de


diseño de CPU que se caracteriza por instrucciones de tamaño fijo y presentadas en un
reducido número de formatos además, sólo las instrucciones de carga y almacenamiento
acceden a la memoria de datos tienen el objetivo de permitir el paralelismo en la ejecución
de instrucciones y reducir los accesos a memoria) y un banco con 32 registros de 32 bits. Su
modelo de ejecución es del tipo Registro-Registro y su modelo de memoria corresponde el
bit de menor peso con la dirección de palabra (Little-Endian). Por otra parte, posee tres tipos
de instrucciones (R, I y J) todas ellas de 32 bits.
• Existen varias herramientas de simulación, como el software PCSPIM, MARS,etc , con las que
conseguiremos un entorno de trabajo similar al que tendríamos si programáramos
realmente sobre un MIPS R2000.
• Por otro lado, el simulador MARS es una aplicación multiplataforma con licencia MIT
(Massachusetts Institute of Technology), lo que nos permite usarlo sin restricciones además
de tener una funciones de depuración muy intuitivas y una interfaz sencilla y cómoda .
Arquitectura del conjunto de Instrucciones
Arquitectura MIPS
Jerarquía de traducción
Ejecución de un programa
Operaciones del repertorio de instrucciones

• Aritméticas
• Lógicas
• Transferencia de datos
• De control de flujo
• Instrucciones de bifurcación o salto
• Instrucciones de salto condicional
• Instrucciones de llamada a subrutina
• De control del sistema
• De E/S
Instrucciones MIPS

Instrucciones:
• Aritméticas
• add, sub(subtract), mult, div, addi (add immediate)
• add, sub son tipo registros. En add no se puede recibir varios argumento por
lo tanto se suma de dos en dos). En sub se usa temporales.
• addi, son de tipo inmediato.
• Lógicas
• and, or, ssl (shift left), srl (shift right)
• Transferencia de datos
• lw (load), sw (store), lui
• Saltos
• Condicionales: beq, bne, slt
• No condicionales: j, jr, jal
Concepto de programa almacenado

dirección Datos
load (lw) 0 Byte (8bits)
1 Palabra
... 2
Registros save (sw) 3
. .
4. .
. .
Procesador Memoria
Organización de la memoria

• Organizando una memoria de 96 bits:


0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6
7 7
8 16 bits
9
10 12 bits
11
Palabra: 1, 8, 12, 16, 32, …
8 bits
Organización de la memoria

• Ejemplos
Bus Longitud Unidad
datos registros direccionabl
e
8086 16 16 Byte
8088 8 16 Byte
486 32 32 Byte
Pentium 64 32 Byte
68000 16 32 Byte
68020 32 32 Byte
PowerPC 750 64 64 Byte

A través de los buses se ve la memoria


Bus de control voy a escribir o leer. Bidireccional. Las linea de escritura o lectura. Decide si se lee o escribe.
Bus de Dirección: se la celda de memoria que voy a escribir. Se conecta la memoria. Unidireccional. El valor máximo de
tamaño es de 32 bit que es igual a 2elevado a la 32=4GB porque el ancho de memoria es de 8 bits de cada celda. Solo se
puede almacenar en cada celda 8 bits.
Direcciones de memoria

Dirección (dec)

0 Byte 0

1 Byte 1 A nivel de byte

2 Byte 2


… …
Tamaño memoria: N bytes
N-1 Byte N-1

8 bits
El bus de datos es igual a 32 bit porque el registro es el ancho 32bit , es igual a una palabra. Se leera en cada 4
celda. Memoria tiene a las 2evleafo N, 4gb
Direcciones de memoria

Dirección (dec)

0 Palabra 0

1 Palabra 1 A nivel de palabra

2 Palabra 2


… …

32 bits

Cada 4 celdas me da una palabra.


Direcciones de memoria

Dirección (dec)

0 Palabra 0

4 Palabra 1 A nivel de palabra


con numeración en
8 Palabra 2 bytes

… MIPS
… …

32 bits
Direcciones de memoria

Dirección (dec)

0 Byte 0
1 Byte 1 Palabra 0 A nivel de palabra
con numeración en
2 Byte 2 bytes
3 Byte 3
… MIPS

Byte N

8 bits
Direcciones de memoria
.
.
.
4n
4n+1 Palabra n
4n+2
A nivel de palabra
4n+3
4n+4
con numeración en
4n+5 Palabra n+1 bytes
4n+6
4n+7
MIPS
4n+8
4n+9
4n+10 Palabra n+3
4n+11

.
.
.
8 bits 25
Registros en el MIPS

Son 32 registros de 32 bits. Son convenciones para hacer uso del procesador de manera
sencilla.
Número Nombre Uso convencional
0 $zero Valor constante 0
1 $at Reservado por el ensamblador
2-3 $v0-$v1 Para resultados y evaluación de expresiones
4-7 $a0-$a3 Argumentos
8-15 $t0-$t7 Temporales
16-23 $s0-$s7 Salvados
24-25 $t8-$t9 Temporales
26-27 $k0-$k1 Reservado para núcleo de SO
28 $gp Puntero global
29 $sp Puntero de pila
30 $fp Puntero de bloque de activación
31 $ra Dirección de retorno
Arquitectura MIPS

¡MUCHAS GRACIAS!

También podría gustarte