Estructura De Computadores
Tema 3. Programación en ensamblador
Departamento de Informática
Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas
UNIVERSIDAD CARLOS III DE MADRID
Contenido
Fundamentos básicos de la programación en ensamblador
Ensamblador del MIPS 32, modelo de memoria y
representación de datos
Formato de las instrucciones y modos de direccionamientoLlamadas a procedimientos y uso de la pila
ARCOS-UC3M
Estructura de Computadores
2
Motivación para aprender ensamblador
Para comprender qué ocurre
cuando un computador
ejecuta una sentencia de un
lenguaje de alto nivel.
C, C++, Java, …
Para poder determinar el
impacto en tiempo de
ejecución
ejecución de una instrucción
de alto nivel.
Porque es útil en dominios
específicos.Compiladores,
SSOO
Juegos
Sistemas empotrados
Etc.
ARCOS-UC3M
Estructura de Computadores
3
Motivación para usar MIPS 32
Arquitectura simple.
Facilidad de
aprendizaje.
Ensamblador similar al de
otros procesadores RISC
Usado en diversos
dispositivos
4
ARCOS-UC3M
Estructura de Computadores
4
¿Qué es un computador?
resultados
datos
Procesador
InstruccionesARCOS-UC3M
Estructura de Computadores
5
Instrucción máquina
001 AB 00000000101
Código de operación
Operandos
ARCOS-UC3M
Registros
Direcciones de memoria
Números
Estructura de Computadores
6
Fases de ejecución de una instrucción
Lectura de la instrucción (ciclo de fetch)
MAR
PC
Lectura
MBR
Memoria
PC
PC + 1
RI
MBR
PC
000100
RI
MARDecodificación de la instrucción
Dirección
000100
MBR
Contenido
0010000000000000
Ejecución de la instrucción
Volver a fetch
Memoria
ARCOS-UC3M
Estructura de Computadores
7
Propiedades de las instrucciones máquina
Realizan una única y sencilla tarea
Operan sobre un número fijo de operandos
Son autocontenidas, incluyen toda la información necesaria
para su ejecuciónIncluye:
La operación a realizar
Dónde se encuentran los operandos:
En registros
En memoria
En la propia instrucción
Dónde dejar los resultados
Una referencia a la siguiente instrucción a ejecutar
De forma implícita la siguiente
De forma explícita en las instrucciones de bifurcación
ARCOS-UC3M
Estructura de Computadores
8
Programa
Secuencia ordenada de instrucciones máquina que seejecutan
en secuencia
00001001110001101010111101011000
10101111010110000000100111000110
11000110101011110101100000001001
01011000000010011100011010101111
ARCOS-UC3M
Estructura de Computadores
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
9
Diferentes niveles de lenguajes
Lenguaje de alto nivel
(ej: C, C++)
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
compiladorLenguaje ensamblador
(Ej: MIPS)
lw
lw
sw
sw
$t0, 0($2)
$t1, 4($2)
$t1, 0($2)
$t0, 4($2)
Ensamblador
Lenguaje Máquina
(MIPS)
ARCOS-UC3M
0000
1010
1100
0101
1001
1111
0110
1000
1100
0101
1010
0000
Estructura de Computadores
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
10Lenguaje ensamblador
Emplea códigos nemónicos para representar instrucciones
add – suma
lw – carga un dato de memoria
Emplea nombres simbólicos para designar a datos y
referencias
$t0 – identificador de un registro
Cada instrucción en ensamblador se corresponde con una
instrucción máquina
add $t1, $t2, $t3
ARCOS-UC3M
Estructura de Computadores
11
Modelo de programación deun
computador
Un computador ofrece un modelo de programación que está
formando:
Juego de instrucciones (lenguaje ensamblador)
Una instrucción incluye:
Código de operación
Otros
Otros elementos: identificadores de registros, direcciones de
memoria o números
Elementos de almacenamiento
Registros
Memoria
Registros de los controladores de E/S
Modos de ejecución
ARCOS-UC3M...
Regístrate para leer el documento completo.