UNIDAD VI-LENGUAJE MIPS (Parte1)
UNIDAD VI-LENGUAJE MIPS (Parte1)
UNIDAD VI-LENGUAJE MIPS (Parte1)
22-I
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.
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 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.
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>
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
• 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
• 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
Dirección (dec)
0 Byte 0
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
2 Palabra 2
…
… …
32 bits
Dirección (dec)
0 Palabra 0
… 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!