organización y estructura del computador 1 tema 3 programación en lenguaje ensamblador

12
Organización y Organización y Estructura del Estructura del Computador 1 Computador 1 Tema 3 Tema 3 Programación en Lenguaje Ensamblador

Upload: bonita-macias

Post on 02-Apr-2015

128 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Organización y Estructura Organización y Estructura del Computador 1del Computador 1

Tema 3 Tema 3 Programación en Lenguaje Ensamblador

Page 2: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Programación 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 comúnmente se conoce como gas.

Page 3: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Programación en Lenguaje Ensamblador

Plataforma: IA-32IA-32 es la arquitectura de microprocesadores de 32 bits de Intel (Intel Architecture 32). Son los microprocesadores más 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 línea Intel Core.

La novedad de estos procesadores con respecto a sus predecesores es que incluyen gestión de memoria avanzada (segmentación, paginación, soporte de memoria virtual), unidad de punto flotante, y a partir del Pentium MMX, soporte para operaciones matriciales complejas, muy usadas en aplicaciones gráficas y multimedia.

Page 4: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Tipos de datos

La información se puede accesar de diversas maneras. Se puede leer un sólo byte (8 bits) o un conjunto de bytes, en esta máquina en particular se denomina palabra a dos bytes y doble palabra a 4 bytes. La notación puede ser en decimal o en hexadecimal.

Page 5: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Tamaños de los datos:

Page 6: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Orden de los datos en memoria:

En gas las instrucciones utilizan un sufijo para indicar el tamaño 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 posición de menor orden y el byte más significativo en la posición 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 posición 0x100 y el byte 45 en la posición 0x101.

Page 7: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Registros de propósito general

Los registros de propósito general se utilizan para almacenar datos

temporalmente, debido a que estos registros han evolucionado desde

una máquina de 8 bits (el 8080) un grupo de registros aún se puede

acceder de 8 bits para mantener compatibilidad con toda la línea de

procesadores.

Aún cuando estos registros pueden mantener cualquier tipo de datos,

algunos tienen cierta funcionalidad específica o son usados de

manera especial por algunas instrucciones.

Page 8: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Registros de propósito general

Page 9: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Registros de propósito general

En gas los registros se denotan usando el símbolo de porcentaje antes del nombre del registro. Los registros %eax, %ebx, %ecx y %edx pueden ser accesados con tamaños de 8, 16 o 32 bits cambiando su nomenclatura de acuerdo al tamaño. Ejemplo para %eax:

Page 10: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Registros de propósito general

Los registros %edi, %esi, %ebp y %esp se pueden accesar como registros de 16 o 32 bits.

Ejemplo para %edi:

Page 11: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Registro de instrucción: El registro de instrucción o

contador de programa contiene la dirección de la próxima

instrucción 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 información acerca

del estado actual de la máquina y el resultado de procesamiento de

una instrucción. La plataforma IA-32 utiliza un registro de 32 bits

llamado EFLAGS que contiene las banderas.

Page 12: Organización y Estructura del Computador 1 Tema 3 Programación en Lenguaje Ensamblador

Plataforma: IA-32

Banderas:

Estas son las banderas más comunes: