Está en la página 1de 2

Registros de propósito general: pueden guardar tanto datos como direcciones.

Son
fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras
modernas usa GPR.

1. EAX: (Extended Accumulator Register): Usado para almacenar el valor de retorno


de una función y usarlo como almacenamiento para operaciones aritméticas y
operaciones de entrada/salida.
2. EBX (Extended Base Register): Se conoce como registro base y es de caracter
general. Es común emplearlo en cálculos.
3. ECX (Extended Counter Register): Es conocido como el registro contador. Puede
contener un valor para controlar el número de veces que un ciclo se repite o un valor
para corrimiento de bits, hacia la derecha o hacia la izquierda. También se utiliza
para cálculos.
4. EDX (Extended Data Register): Es un registro para almacenamiento de datos, que
suele ser utilizado en operaciones de entrada/salida y en algunas operaciones de
multiplicación y división con grandes cifras en la que se combina su uso con el
registro EAX.
5. ESI (Extended Source Index): Es empleado como puntero para funciones que
requieren un origen y un destino para los datos usados. ESI almacena el origen de
dichos datos.
6. EDI (Extended Destination Index): Similar al registro anterior con la diferencia de
que éste apunta siempre al destino de los datos.
7. EBP (Extended Base Pointer): Según el compilador usado, EBP puede ser utilizado
como registro de caracter general o como puntero al marco de la pila.
8. ESP (Extended Stack Pointer): Es un puntero al final de la pila. Tras la ejecución de
una función la dirección de retorno se vuelve a cargar en ESP para continuar la
ejecución en el mismo punto donde había quedado.

Registro de propósito especial: guardan información específica del estado del sistema,
como el puntero de pila o el registro de estado.

 EIP (Extended Instruction Pointer): Contiene la dirección actual de ejecución del


programa.
Tareas: 
 Verifique si tiene instalada la herramienta binutils y en qué versión: Versión
2.40
 Describa el uso de la herramienta “as” incluida en el paquete binutils: hace
referencia al ensamblador, donde el programa lee el fichero escrito en lenguaje
ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su
código de operación correspondiente en sistema binario para la plataforma que se
eligió como destino en las opciones específicas del ensamblador.
 _Describa el uso de la herramienta “ld”: hace referencia al enlazador su función
es combinar un número de ficheros objeto y archivos, reubica sus datos y enlaza
referencias de símbolos. A menudo el último paso en el proceso de construcción de
un nuevo programa compilado para su ejecución es una llamada a ld.
 Verifique si tiene instalada esta herramienta y en qué versión: No se tenía
instalado, pero se instaló la versión 13.1 usando sudo apt install gdb
 Describa el uso de la herramienta “gdb”: gdb se encarga de correr el programa
con la posibilidad de detenerlo cuando se cumple cierta condición, avanzar paso a
paso, analizar que ha pasado cuando un programa se detiene o cambiar algunas
cosas del programa como el valor de las variables pudiendo crear puntos de
interrupción.
 Defina detalladamente el uso de las siguientes directivas:
1. .section  .data: contiene todos los datos que han sido inicializados
2. .section  .bss: contiene los datos que no han sido inicializaos
3. .section  .text: contiene el programa que se esta ejecutando.

Ejercicio:

Realice un pequeño programa que pida dos números enteros y muestre la suma, haga uso
de la instrucción call para utilizar las funciones printf y scanf desde ensamblador

También podría gustarte