Vous êtes sur la page 1sur 12

Organizacin y Estructura

del Computador 1

Tema 3
Programacin en Lenguaje Ensamblador
Programacin en Lenguaje
Ensamblador

Este material se refiere al compilador gcc (GNU


compiler collection) el cual corre bajo ambiente
Linux. El ensamblador de gcc se llama as y por
formar parte de gcc comnmente se conoce como gas.
Programacin en Lenguaje
Ensamblador
Plataforma: IA-32
IA-32 es la arquitectura de microprocesadores de 32 bits de Intel (Intel
Architecture 32). Son los microprocesadores ms usados en los ordenadores
personales (PC).
Esta gama de microprocesadores comenz con el Intel 80386 en 1985,
conocido luego popularmente como 386 o x86 para denominar a toda la
gama. Los procesadores de Intel que siguieron y mantuvieron la
compatibilidad son el 486, Pentium, Pentium II, Pentium III, Pentium 4, y
la lnea Intel Core.
La novedad de estos procesadores con respecto a sus predecesores es que
incluyen gestin de memoria avanzada (segmentacin, paginacin, soporte
de memoria virtual), unidad de punto flotante, y a partir del Pentium MMX,
soporte para operaciones matriciales complejas, muy usadas en aplicaciones
grficas y multimedia.
Plataforma: IA-32

Tipos de datos
La informacin se puede accesar de diversas maneras. Se puede leer
un slo byte (8 bits) o un conjunto de bytes, en esta mquina en
particular se denomina palabra a dos bytes y doble palabra a 4 bytes.
La notacin puede ser en decimal o en hexadecimal.
Plataforma: IA-32

Tamaos de los datos:


Plataforma: IA-32

Orden de los datos en memoria:

En gas las instrucciones utilizan un sufijo para indicar el tamao de


los datos sobre los cuales operan.
El sistema guarda los datos en memoria en secuencia inversa de
bytes (little endian) lo cual trae como consecuencia que el byte
menos significativo se ubica en la posicin de menor orden y el byte
ms significativo en la posicin de memoria de mayor orden. Por
ejemplo si se transfiere el dato 0x457A a las posiciones consecutivas
de memoria 0x100 y 0x101 se ubica el byte 7A en la posicin 0x100
y el byte 45 en la posicin 0x101.
Plataforma: IA-32
Registros de propsito general

Los registros de propsito general se utilizan para almacenar datos


temporalmente, debido a que estos registros han evolucionado desde
una mquina de 8 bits (el 8080) un grupo de registros an se puede
acceder de 8 bits para mantener compatibilidad con toda la lnea de
procesadores.
An cuando estos registros pueden mantener cualquier tipo de datos,
algunos tienen cierta funcionalidad especfica o son usados de
manera especial por algunas instrucciones.
Plataforma: IA-32
Registros de propsito general
Plataforma: IA-32
Registros de propsito general
En gas los registros se denotan usando el smbolo de porcentaje
antes del nombre del registro. Los registros %eax, %ebx, %ecx y
%edx pueden ser accesados con tamaos de 8, 16 o 32 bits
cambiando su nomenclatura de acuerdo al tamao.
Ejemplo para %eax:
Plataforma: IA-32
Registros de propsito general
Los registros %edi, %esi, %ebp y %esp se pueden accesar
como registros de 16 o 32 bits.

Ejemplo para %edi:


Plataforma: IA-32
Registro de instruccin: El registro de instruccin o contador
de programa contiene la direccin de la prxima instruccin a
ejecutarse.

Registros de punto flotante: Son 8 registros los cuales son


tratados como una pila. Se nombran %st(0), %st(1), %st(2), etc.
%st(0) se ubica en el tope de la pila.

Banderas: Proveen una manera de obtener informacin acerca


del estado actual de la mquina y el resultado de procesamiento de
una instruccin. La plataforma IA-32 utiliza un registro de 32 bits
llamado EFLAGS que contiene las banderas.
Plataforma: IA-32
Banderas:
Estas son las banderas ms comunes:

Vous aimerez peut-être aussi