Documentos de Académico
Documentos de Profesional
Documentos de Cultura
jal ???
call, sub
call, printf
Executable file
main:
jal printf
jal sub
printf:
sub:
Object file
sub:
C library
print:
Linker
18
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
9. Verificacin del funcionamiento del programa:
Comprobacin de los efectos causados por la ejecucin de las instrucciones en las
variables y el estado de la mquina.
Ejecutndolo directamente.
Utilizando un depurador.
Depurador (debugger): Herramienta que permite verificar el funcionamiento de los
programas paso a paso a nivel de cdigo fuente. Permite:
Cargar programas en la memoria del computador.
Ejecutar programas paso a paso o de forma continua.
Establecer puntos de ruptura para detener la ejecucin del programa en lugares
determinados.
Ver los contenidos de los registros y la memoria, y modificar sus contenidos en cualquier
instante durante la ejecucin de los programas.
10 10
19
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
5. Sintaxis de un lenguaje ensamblador
Tipos de lneas en un programa en ensamblador:
Instrucciones: ejecutables por el computador.
Pseudoinstrucciones: secuencias de instrucciones con nombre predefinido
(alias).
Directivas: indicaciones para el traductor. En MIPS comienzan por ..
Comentario: suelen comenzar por un carcter especial (en MIPS es #), y son
ignoradas por el traductor en cuanto a la generacin de cdigo objeto.
Estructura de una lnea de un programa escrito en ensamblador:
Etiquetas: Identifican la lnea que encabezan. Recomendaciones:
Utilizar slo letras o nmeros (comenzar por una letra).
Colocar la primera letra de la etiqueta en el primer carcter de la lnea.
En MIPS las etiquetas terminan por el carcter :.
Comentarios Operandos Mnemotcnico Etiqueta
20
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
Las etiquetas permiten al programador definir smbolos.
Smbolo: tira de caracteres que identifica un valor.
Cuando el traductor se encuentra con una etiqueta, la inserta en la tabla de
smbolos.
Mnemotcnicos (nunca comienza en el primer carcter de la lnea).
Identifican:
Un cdigo de operacin de una instruccin del lenguaje.
Una pseudoinstruccin.
Una directiva.
... ... ...
Valor del smbolo Tipo del smbolo Nombre del smbolo
VALOR1 TIPO1 SIMB1
VALOR2 TIPO2 SIMB2
11 11
21
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
Operandos: Identifican los operandos que intervienen en la instruccin o
directiva.
Tipos de operandos:
Constantes (Inmediatos):
Numricas: suelen llevar un prefijo o un sufijo que identifica la base en que estn
expresadas: decimal (D), binaria (%,B), octal (O,@,Q,C) o hexadecimal (H,$, 0x).
Alfabticas: entre comillas.
Smbolos:
Predefinidos: registros (empiezan por $).
Implcitos.
Explcitos.
Expresiones:
Pueden incluir constantes, smbolos implcitos o explcitos, parntesis u operadores
sencillos (+,-,*,/,%,&,|,^,<<, etc).
LAS EXPRESIONES NO PUEDEN INCLUIR NOMBRES DE REGISTROS NI
USAR EL CONTENIDO DE LAS VARIABLES!
Ejemplo: add $s0, $s1, $s2 + 2 Error!! No se puede sumar el registro $s2
ms 2 de esta manera.
22
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
Pseudoinstrucciones en ensamblador
Una pseudoinstruccin es una instruccin ofrecida por el ensamblador,
pero no realizada por la circuitera.
Es como un alias al que le corresponde una secuencia definida de
instrucciones realizadas por la circuitera.
Las pseudoinstrucciones proporcionan a la mquina un lenguaje ms rico
que el que realiza la circuitera.
Facilitan la programacin en ensamblador sin complicar la circuitera (aunque
s complican el diseo del traductor).
No todos los traductores cuentan con pseudoinstrucciones.
12 12
23
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
Directivas en ensamblador
Informan al traductor acerca de cmo debe traducir el cdigo fuente a cdigo
mquina, pero no producen instrucciones en lenguaje mquina.
Las directivas pueden indicar informacin relativa a diversas cuestiones:
El aspecto del listado de ensamblaje.
La definicin de direcciones absolutas del programa.
Los tamaos y nombres simblicos adjudicados a constantes y variables.
Las direcciones de ensamblado de las instrucciones y los datos.
La definicin de smbolos importables y exportables.
La inclusin y delimitacin de secciones en el cdigo, etc.
Las directivas son procesadas por el traductor, que a partir de ellas adopta las
acciones pertinentes para realizar el proceso de ensamblaje y generacin de
listados y cdigo objeto.
El cdigo objeto no contiene ninguna directiva.
El programa ejecutable desconoce la existencia de directivas.
Las directivas nunca son tenidas en cuenta por el computador en tiempo de
ejecucin.
24
Tema 9. Conceptos bsicos sobre programacin en ensamblador.
D.A. PATTERSON, J.L HENNESSY. Computer Organization and Design. Morgan
Kaufmann, 2005.
D.A. PATTERSON, J.L HENNESSY. Estructura y diseo de computadores. Revert,
2000.
D. SWEETMAN. See MIPS Run. Morgan Kaufmann, 2002.
E. FARQUHAR, P. BUNCE. The MIPS Programmers Handbook. Morgan Kaufmann,
1994.
J. GOODMAN, K. MILLER. A Programmers View of Computer Architecture. Saunders
College Pub., 1993.
MIPS32 Architecture For Programmers Volume I: Introduction to the MIPS32
Architecture. MIPS Technologies Inc., 2003.
MIPS32 Architecture For Programmers Volume II: The MIPS32 Instruction Set. MIPS
Technologies Inc., 2003.
MIPS32 Architecture For Programmers Volume III: The MIPS32 Privileged Resource
Architecture. MIPS Technologies Inc., 2003.
MIPS64 Architecture For Programmers Volume I: Introduction to the MIPS64
Architecture. MIPS Technologies Inc., 2003.
MIPS64 Architecture For Programmers Volume II: The MIPS64 Instruction Set. MIPS
Technologies Inc., 2003.
MIPS64 Architecture For Programmers Volume III: The MIPS64 Privileged Resource
Architecture. MIPS Technologies Inc., 2003.
http://www.mips.com/
6. Bibliografa