Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Abstract—In this chapter we will describe the architecture of II. DISEÑO BÁSICO DE UNA MICROCOMPUTADORA
the Intel IA-32 processor family and its host computational system,
from the programmer's point of view. This group includes all
Intel-compatible processors, such as AMD Athlon and Opteron. It
should be noted that the assembly language is an excellent tool to
learn the operation of a computer, for which it is necessary to have
a practical knowledge about computer hardware. For this
purpose, the concepts and details that we will see in this chapter
will help you understand the assembler language you write. To
avoid getting a superficial understanding of the architecture of a
machine, we will focus on the specific details about the IA-32
family, which will provide a solid basis for programming in
assembly language.
Se muestra el diseño básico de una microcomputadora
Index Terms—Assembler, Intel, processor, IA-32, assembly hipotética. La unidad central de procesamiento(CPU), en donde
language, programming, microcomputer, components. se realizan los cálculos y las operaciones lógicas, contiene un
número limitado de lugares de almacenamiento, conocidas
como registros; además contiene un reloj de alta frecuencia, una
I. INTRODUCTION unidad de control y una unidad aritmética-lógica.
• El reloj sincroniza las operaciones internas de la CPU con los
E n este capítulo describiremos la arquitectura de la familia
de los procesadores IA-32 de Intel y su sistema
computacional anfitrión, desde el punto de vista del
demás componentes del sistema.
• La unidad de control (CU) coordina la secuencia de los pasos
programador. En este grupo se incluyen todos los procesadores involucrados en la ejecución de instrucciones de máquina.
compatibles con Intel, como AMD Athlon y Opteron. Hay que • La unidad aritmética-lógica (ALU) realiza operaciones
destacar que el lenguaje ensamblador es una herramienta aritméticas como la suma y la resta, y operaciones lógicas como
excelente para aprender el funcionamiento de una computadora, AND, OR y NOT.
La CPU se une al resto de la computadora mediante terminales
para lo cual es necesario tener un conocimiento práctico acerca
que se conectan al zócalo de la CPU en la tarjeta madre de la
del hardware de computadora. Para este propósito, los
computadora. La mayoría de las terminales se conectan al bus
conceptos y detalles que veremos en este capítulo le ayudarán a
de datos, al bus de control y al bus de direcciones. La unidad de
comprender el lenguaje ensamblador que escriba. Para evitar almacenamiento de memoria es en donde se mantienen las
que obtenga una comprensión superficial de la arquitectura de instrucciones y los datos mientras se ejecuta un programa en la
una máquina, nos enfocaremos en los detalles específicos computadora.
acerca de la familia IA-32, que nos brindará una base sólida a
la hora de programar en lenguaje ensamblador.. Un bus es un grupo de cables en paralelo que transfieren datos
de una parte de la computadora a otra. Por lo general, el bus del
2
Multitarea
Un sistema operativo multitarea puede ejecutar varias tareas Registros básicos de ejecución de un programa
al mismo tiempo. Una tarea se define ya sea como un programa Los registros son ubicaciones de almacenamiento de alta
(un proceso) o un hilo (subproceso) de ejecución. Un proceso velocidad, que se encuentran directamente dentro de la CPU, y
tiene su propia área de memoria y puede contener varios hilos están diseñados para una velocidad de acceso mucho mayor que
(o subprocesos). Un hilo comparte su memoria con otros hilos la de la memoria convencional. Por ejemplo, cuando se
optimiza un ciclo de procesamiento en base a la velocidad, los
4
contadores del ciclo se guardan en registros, en vez de variables. Controlan la operación de la CPU. Por ejemplo, pueden hacer
La fi gura 2-9 muestra los registros básicos de ejecución de un que la CPU salga de un ciclo después de ejecutar cada
programa. instrucción, generar una interrupción cuando se detecta un
desbordamiento aritmético, entrar al modo 8086 virtual y entrar
al modo protegido.
• La bandera Acarreo (CF) se activa cuando el resultado de
una operación aritmética sin signo es demasiado grande para
caber en el destino.
• La bandera Desbordamiento (OF) se activa cuando el
resultado de una operación aritmética con signo es demasiado
grande o pequeño para caber en el destino.
• La bandera Signo (SF) se activa cuando el resultado de una
operación aritmética o lógica genera un resultado negativo.
• La bandera Cero (ZF) se activa cuando el resultado de una
operación aritmética o lógica genera un resultado de cero.
• La bandera Acarreo auxiliar (AC) se activa cuando una
operación aritmética produce un acarreo del bit 3 al bit 4, en un
IV. UNITS operando de 8 bits.
• La bandera Paridad (PF) se activa si el byte menos
Registros de propósito general
Los registros de propósito general se utilizan principalmente significativo en el resultado contiene un número par de bits que
para las operaciones aritméticas y el movimiento de datos. sean 1.
Como se muestra en la siguiente fi gura, cada registro puede
direccionarse como un valor individual de 32 bits, o como dos Registros del sistema
valores de 16 bits. Los procesadores IA-32 tienen una variedad de registros
Algunos registros de propósito general tienen usos importantes del sistema
especializados: • IDTR (Registro de tabla de descriptores de interrupciones):
• EAX es el registro que utilizan de manera automática las dirección de la Tabla de descriptores de interrupciones, la cual
instrucciones de multiplicación y división. proporciona los medios para manejar las interrupciones (rutinas
• La CPU utiliza de manera automática a ECX como su del sistema).
contador de ciclo. • GDTR (Registro de tabla de descriptores globales):
• ESP direcciona datos en la pila (una estructura de memoria dirección de la Tabla de descriptores globales, una tabla que
del sistema). contiene apuntadores a los segmentos de estado de las tareas y
• ESI y EDI son los registros que utilizan las instrucciones de tablas de descriptores locales de los programas.
transferencia de memoria de alta velocidad. • LDTR (Registro de tabla de descriptores locales):
• EBP es el registro que utilizan los lenguajes de alto nivel apuntadores al código, los datos y la pila de los programas que
para hacer referencia a los parámetros de funciones y las se están ejecutando en un momento dado.
variables locales en la pila. • Registro de tareas: dirección del TSS (Segmento de estado
de tarea) para la tarea que se está ejecutando en un momento
dado.
Registros de segmento
Los registros de segmento indican las direcciones base de las • Registros de depuración: permiten que los programas
áreas preasignadas de memoria, conocidas como segmentos, establezcan puntos de interrupción al momento de depurar los
guardan instrucciones de un programa (código), otros guardan programas.
variables (datos), y otro segmento llamado segmento de pila • Registros de control CR0, CR2, CR3, CR4: contienen
guarda las variables de funciones locales y los parámetros de banderas de estado y campos de datos que controlan las
funciones. operaciones a nivel del sistema, como la conmutación, la
Apuntador de instrucciones paginación y la habilitación de la memoria caché (el registro
El registro EIP, o apuntador de instrucciones, contiene la CR1 no se utiliza).
dirección de la siguiente instrucción a ejecutar. Ciertas
instrucciones de máquina manipulan a EIP, para que el B. Unidad de punto flotante
programa se bifurque hacia una nueva ubicación. La unidad de punto flotante (FPU) de los procesadores IA-32
Registro EFLAGS realiza operaciones aritméticas de punto flotante, de alta
Bits binarios individuales que controlan la operación de la velocidad.
CPU, o que reflejan el resultado de alguna operación de la CPU.
Algunas instrucciones evalúan y manipulan las banderas
individuales del procesador.
Banderas de control
5
controladores, al cual se le conoce como Un sistema operativo multitareas puede ejecutar varias tareas
juego de chips (chipset). El juego de chips al mismo tiempo. Se ejecuta en un procesador que soporta la
determina en gran parte las capacidades de la conmutación de tareas, la habilidad de guardar el estado de la
computadora. tarea actual y transferir el control a una tarea distinta.
d. Salida de video Los procesadores IA-32 tienen tres modos básicos de
operación: modo protegido, modo de direccionamiento real y
e. El adaptador de video controla la modo de administración del sistema. Además, el modo 8086
visualización de texto y gráficos en virtual es un caso especial del modo protegido. Los registros
computadoras compatibles. Tiene dos son ubicaciones con nombre dentro de la CPU, a las que se
componentes: el controlador de video y la puede acceder con mucha mayor rapidez que la memoria
memoria de visualización de video. Todos los
convencional.
gráficos y el texto que se muestran en el
Los primeros procesadores Intel para la computadora
monitor se escriben en la RAM de
personal IBM se basaban en el enfoque del conjunto complejo
visualización de video, para después
enviarlos al monitor mediante el controlador de instrucciones (CISC). El conjunto de instrucciones Intel
de video incluye poderosas formas de direccionar datos e instrucciones,
que son relativamente operaciones complejas de alto nivel. Un
f. Un monitor de pantalla de cristal líquido enfoque completamente distinto para el diseño de
(LCD) digital directo recibe un flujo de bits microprocesadores es el conjunto reducido de instrucciones
digitales directamente desde el controlador (RISC). Un lenguaje máquina RISC consiste en un número muy
de video, muestran un texto más fi no que las pequeño de instrucciones cortas y simples, que el procesador
pantallas analógicas. pueda ejecutar con rapidez.
g. Memoria Las operaciones de entrada-salida se realizan a través de
distintos niveles de acceso, de manera similar al concepto de
En los sistemas basados en Intel se utilizan varios tipos de
máquina virtual. El sistema operativo se encuentra en el nivel
memoria: memoria de sólo lectura (ROM), memoria de sólo
lectura programable y borrable (EPROM), memoria dinámica más alto. El BIOS (Sistema básico de entrada-salida) es una
de acceso aleatorio (DRAM), RAM estática (SRAM), RAM de colección de funciones que se comunican directamente con los
video (VRAM) y RAM de metal-óxido semiconductor dispositivos de hardware. Los programas también pueden
complementario (CMOS)Puertos de entrada/salida e interfaces acceder en forma directa a los dispositivos de entrada-salida.
de dispositivos Bus serial universal (USB).
El puerto del Bus serial universal proporciona una conexión REFERENCES
inteligente de alta velocidad entre una computadora y los
[1] IRVINE, KIP R., “Arquitectura del Procesador IA-32,” en Lenguaje
dispositivos con soporte USB. Puede conectar unidades de una ensamblador para computadoras basadas en Intel, quinta ed.Florida
sola función (ratones, impresoras) o dispositivos compuestos International University School of Computing and Information Sciences.
con más de un periférico, que comparten el mismo puerto.
VI. CONCLUSION
La unidad central de procesamiento (CPU) es en donde se
realizan los cálculos y el procesamiento lógico. Contiene un
número limitado de ubicaciones de almacenamiento llamadas
registros, un reloj de alta frecuencia para sincronizar sus
operaciones, una unidad de control, y la unidad aritmética-
lógica.
La unidad de almacenamiento de memoria es en donde se
guardan las instrucciones y los datos, mientras se ejecuta un
programa de computadora. Un bus es una serie de alambres
paralelos que transmiten datos entre las diversas partes de la
computadora. La ejecución de una sola instrucción de máquina
puede dividirse en una secuencia de operaciones individuales,
conocidas como ciclo de ejecución de instrucciones. Las tres
operaciones primarias son: búsqueda, decodificación y
ejecución.
Un procesador superescalar es un procesador canalizado con
varias canalizaciones de ejecución. Dicho procesador es muy
útil cuando una de las etapas de ejecución requiere varios ciclos
de reloj.