Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hardware PC XT 8088 8086
Hardware PC XT 8088 8086
CURSO:
ARQUITECTURA DE COMPUTADORAS (LABORATORIO)
TURNO:
VIERNES 7:00 a 9:00 am
TTULO:
CUI:
20042943
20050375
20022334
FIRMA:
DOCENTE:
ING. ERASMO SULLA
FECHA:
Viernes 15 de Mayo del 2015
AREQUIPA PER
Hardware PC XT 8088-8086
Arquitectura de Computadoras
PC XT 8088-8086
NDICE
1. SISTEMAS
QUE
COMPONEN
LA
COMPUTADORA
XT.. 2
2. CARACTERSTICAS
DEL
PROCESADOR
8088/8086.... 3
3. FUNCIONAMIENTO
EN
GENERAL....
6
4. SISTEMA DESCRITO POR BLOQUES
Y
POR
CIRCUITOS
... 8
5. ESQUEMTICO DEL SISTEMA COMPLETO SISTEMA DE
APLICACIN. 12
6. MUESTRA DE UNA MAINBOARD XT CON IDENTIFICACIN DE
DISPOSITIVOS,
ETIQUETADO
Y
ACCESORIOS...... 13
7. REGISTROS
DEL
8088
. 14
8. MODOS
DE
DIRECCIONAMIENTO
.... 17
9. SET
DE
INSTRUCCIONES
DEL
8088. 21
10. LENGUAJE
MQUINA,
MACROENSAMBLADOR
DEL
8088. 26
11. DEBUGER
Y
SIMULADORES
DEL
8088. 33
12. BIBLIOGRAFA
34
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Sin embargo, en 1983, tres aos despus del lanzamiento del IBM PC
original, la compaa introduce el modelo PC XT (Personal Computer
with eXtended Technology). En donde lo ms relevante fue la
incorporacin de un Disco Duro, 8 slots de expansin, una fuente de
poder de mayor potencia y ya no contaba con la interfaz para casetes. A
diferencia del modelo PC AT (Advanced Technology) lanzado un ao
despus, el PC XT posea concretamente un microprocesador Intel 8088,
16 k de RAM, ampliable a 256 k, una unidad de diskettes, un monitor de
pantalla verde monocromtica, un teclado y adems estaba equipado
con el MS-DOS rebautizado como PC-DOS. Estaba basado esencialmente
en la misma arquitectura que el PC original. Su precio inicial fue de
$3.285.
Hardware PC XT 8088-8086
Arquitectura de Computadoras
En primer lugar, la computadora personal PC XT tena como corazn al
microprocesador 8088 de Intel, lo cual vendra a ser la unidad central de
proceso o CPU. El 8088 era en s una versin simplificada de su
antecesor, el 8086 que contaba con registros y bus de datos de 16 bits.
El 8088 contaba con registros de 16 bits, con un bus de datos de 8 bits y
de direcciones de 20 bits. La ventaja se encontraba en que el bus de 8
bits coincida con el bus de datos de la placa base. Sin embargo se
requera la ayuda de un Coprocesador Intel 8087 para operaciones
aritmticas de coma flotante.
La computadora contaba con una disquetera o unidad de disquetes
(floppy disk o disco flexible) de tamao 5 de pulgada, de doble cara
y con una capacidad de 360KB (Kilobytes). Lo que haca destacar a esta
computadora de su predecesor, el IBM PC Original, en cuanto a
almacenamiento, era el uso de un Disco Duro de Seagate Technology ST412 de unos 10 MB (Megabytes) de capacidad. Ms tarde las unidades
de disquetes vendran instaladas de fbrica pero de media altura, sin
embargo en el 85, algunas unidades salieron de fbrica con dos
disqueteras de tamao completo en vez de una y sin contar con el disco
duro convirtindose el montaje en una opcin de bajo coste.
Las unidades de diskette eran de la marca Tandon y el controlador de las
unidades de diskette era un NEC PD765.
La PC XT contaba adems con una serie de 128 KB de memoria RAM en
la tarjeta madre que posteriormente pasaran a ser 256 KB debido a
propsitos de estandarizacin. La placa base daba lugar a 8 ranuras o
slots de expansin del tipo ISA de 8 bits. Se llegaron a tener hasta 2
versiones de la placa base del XT, donde la original poda admitir hasta
256 KB en la misma placa (4 bancos de chips de 64KB), capacidad que
llegara hasta los 640 KB con las tarjetas de expansin. La segunda
versin vendra hasta el ao 1986 en que se poda admitir hasta 640KB
enteros en la placa madre gracias a dos bancos de chips de 256KB y los
dos de 64KB. Algo que se incluy en esta segunda versin fue el empleo
de un IBM ROM BIOS, IBM BIOS o ROM BIOS que inclua soporte para el
teclado expandido.
El PC XT tambin albergaba una memoria ROM especfica como
intrprete de BASIC (lenguajes de programacin de alto nivel), lo cual en
el IBM PC Original era una operacin realizada por una unidad de casete,
que no se encontraba ms en el XT. Para acceder a esta funcin de
intrprete se requera de realizar operaciones auxiliares como
desconectar el disco duro, dejar vaca la disquetera, y otras como
acceder manualmente a la BIOS con un depurador.
La placa madre tambin contaba con chips de soporte. As se tenan: un
oscilador o generador de seales de reloj 8284A, un controlador de
interrupciones 8259A,
un
controlador
de
bus 8288,
un
controlador DMA 8237 (DMA o Acceso Directo a Memoria), un
timer 8253, una interfaz programable de perifricos 8255A, todos de
Intel,
ms
lgica
discreta
adicional
implementada
con
circuitos TTL usados como lgica de pegamento.
Otro componente del PC XT era el teclado, el cual al igual que en el caso
de su predecesor, el PC Original no era compatible con aquellos de los
Hardware PC XT 8088-8086
Arquitectura de Computadoras
equipos ms modernos (el AT o superior). Una dificultad al respecto era
el uso de diferentes cdigos de escaneo, adems de la interfaz elctrica
algo diferente de los teclados PC/AT (Uso de adaptadores de seal). El
teclado tena incorporado un procesador 8048 de Intel.
La tarjeta o placa madre cuenta con un par de conectores de 16 pines
provenientes de la fuente DC (de unos 130W) y de las seales
entrantes. Sin embargo tambin se cuentan con otros conectores para el
teclado y el Speaker. La fuente de alimentacin generaba hasta 4
voltajes (+5V, -5V, +12V y -12V) y se encontraba dentro del chasis o
case, junto con la placa madre, las unidades de disco y las tarjetas de
expansin.
No podemos olvidar los 8 slots o sockets de 16 pines para las tarjetas
que irn montadas en la placa. Estos slots o ranuras de expansin
alojaban a todo tipo de circuitos con diversas finalidades: Ampliacin de
Memoria, el controlador de las unidades de disco, el controlador de
video, tanto para la tarjeta monocromtica (MDA), como para la tarjeta
grfica de color (CGA), el cual era el 6845 de Motorola. No podemos
dejar de lado los canales: Serie RS-232 como para perifricos como el
ratn, y el Paralelo para las Impresoras.
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Hardware PC XT 8088-8086
Arquitectura de Computadoras
RQ/GT0: Es una seal bidireccional usada por otros maestros de bus
local para solicitar el uso del bus local. En la PC, esta lnea se conecta
a un enchufe de procesador auxiliar, compatible con el coprocesador
numrico 8087.
RQ/GT1: Realiza la misma funcin que RQ/GT0, pero tiene un nivel de
prioridad ms bajo. En la PC no se usa.
LOCK: Se activa por una instruccin de seguro (lock) y permanece
activa hasta el final de la siguiente instruccin. Se usa para indicar a
otros maestros de bus que no deben intentar ganar el control del bus.
Debido a que el diseo de la PC no es de bus multimaestro, esta lnea
no se usa.
NMI: Esta lnea de entrada genera una interrupcin no enmascarable
(nonmaskable). En la PC esta entrada de peticin de interrupcin se
usa para reportar errores de paridad en la memoria de la tarjeta
madre, acepta peticiones de interrupcin del enchufe del procesador
auxiliar, y acepta peticiones de dispositivos sobre el bus del sistema.
INTR: Esta seal de entrada es la de interrupcin mascarable. En la
PC, se conecta al controlador de interrupciones 8259A, el cual
expande la entrada a 8 entradas de interrupcin al sistema.
READY: Esta lnea de entrada se usa para insertar estados de espera
en los ciclos del bus del 8088 y, as, extender la longitud del ciclo. En
la PC, esta lnea viene del reloj 8284A, el cual lo sincroniza con el reloj
del sistema. La PC usa la funcin READY para insertar un estado de
espera en todos los accesos de puerto de E/S y DMA, y proporciona
una funcin de generacin de estados de espera en el bus del
sistema.
RESET: Se usa para detener al microprocesador. En la PC, esta seal
viene del reloj 8284A, el cual recibe su entrada de la fuente de
energa del sistema. La fuente del sistema genera una seal llamada
energa buena, la cual indica que los niveles de energa estn en
niveles adecuados y el RESET se puede remover del 8088.
QS0 y QS1: Estas lneas de salida dan el estado de la cola de
instruccin interna. En la PC, estas lneas estn alambradas con el
enchufe del procesador auxiliar de tal manera que puede seguir el
estado de la cola del 8088.
TEST: Este pin de entrada se prueba por la instruccin espera de
prueba. Si est en bajo, la ejecucin continua; si est en alto, el 8088
espera en un estado de ocioso hasta que la pata va a bajo. En la PC,
se alambra con la salida BUSY del 8087.
S0, S1 y S2: Estas salidas presentan informacin del estado que
pertenece al tipo de ciclo de bus que ser ejecutado. En la PC, estos
bits se alambran al controlador de bus 8288, donde se decodifican.
Las salidas decodificadas del 8088 se convierten en las lneas de
control del bus del sistema.
Hardware PC XT 8088-8086
Arquitectura de Computadoras
El procesador opera a 4.77 MHz, frecuencia que es derivada del cristal
de 14.31818 MHz la cual es dividida por tres por el reloj del procesador;
y por cuatro se obtiene 3.58 MHz (la seal requerida para los televisores
de color). El procesador es respaldado por el set de funciones provistas
por cuatro canales de 20 bits de acceso directo a memoria o DMA, tres
grupos de canales del Timer de 16 bits y ocho niveles de interrupciones.
Tres de los cuatro canales de DMA estn disponibles en el bus de
Entrada/Salida y hay una alta velocidad para transferencia de datos
entre las memorias y los canales de Entrada/Salida sin intervencin de
la memoria del procesador. El cuarto canal es programado para refrescar
el sistema dinmico de memoria, esto est hecho para el programa del
Timer-contador e informe peridicamente de la transferencia DMA.
3. FUNCIONAMIENTO EN GENERAL:
La funcin bsica de una computadora es ejecutar programas, los cuales
estn compuesto de un conjunto de instrucciones almacenadas en
memoria. La CPU es la encargada de ejecutar las instrucciones
especficas del programa. Para comprender esta funcin debe
considerarse el detalle del proceso de ejecucin del programa. Desde el
punto de vista ms simple, se considera el procesamiento de una
instruccin en dos etapas: la CPU lee (busca, trae; fetch en ingls) la
instruccin de memoria y la ejecuta. La ejecucin del programa consiste
en la repeticin del proceso de traer y ejecutar la instruccin.
Buscar una
instrucciones,
de memoria.
operaciones y
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Clculo de la direccin de instruccin (iac, instruction address
calculation): Determina la direccin de la siguiente instruccin a
ejecutar.
Bsqueda de instruccin (if, instruction fetch): La CPU lee la
instruccin desde su posicin de memoria.
Decodificacin de la operacin indicada en la instruccin (iod,
instruction operation decoding): Analiza la instruccin para
determinar el tipo de operacin a realizar y el (los) operando(s) a
utilizar.
Clculo de la direccin del operando (oac, operand address
calculation): Si la instruccin implica una referencia a un operando en
memoria o disponible mediante E/S, determina la direccin del
operando.
Bsqueda de operando (of, operand fetch): Trae el operando desde
la memoria o se lee desde el dispositivo de E/S.
Operacin con los datos (do, data operation): realiza la operacin
indicada en la instruccin.
Almacenamiento de operando (os, operand store): Escribe el
resultado en memoria o lo saca a travs de un dispositivo de E/S.
4. SISTEMA
DESCRITO
CIRCUITOS:
POR
BLOQUES
POR
Hardware PC XT 8088-8086
Arquitectura de Computadoras
10
Hardware PC XT 8088-8086
Arquitectura de Computadoras
11
Hardware PC XT 8088-8086
Arquitectura de Computadoras
-
12
Hardware PC XT 8088-8086
Arquitectura de Computadoras
CODIGO DEL
INTEGRADO
FUNCION
74LS373
74LS245
8 BIT AMPLIFICADOR
BIDIRECCIONAL
74LS244
8 BIT AMPLIFICADOR
74LS138
DECODIFICADOR 3/8
75477
AMPLIFICADOR INVERSOR
74LS175
FLIP FLOP D
74LS280
GENERADOR DE PARIDAD
74LS08
6 x INVERSOR
74LS32
4 x OR
74LS07
6 x BUFFER
74LS08
4 x AND
13
Hardware PC XT 8088-8086
Arquitectura de Computadoras
6. MUESTRA
DE
UNA
MAINBOARD
XT
CON
IDENTIFICACIN DE DISPOSITIVOS, ETIQUETADO Y
ACCESORIOS:
14
Hardware PC XT 8088-8086
Arquitectura de Computadoras
15
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Disquetera de PC XT y Controlador
16
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Estos cuatro registros, como todos los restantes, son de 16 bits, pero
para permitir la realizacin de operaciones de tipo byte (8 bits) cada
uno de estos cuatro registros est dividido en dos subregistros de 8
bits a los que se puede acceder de forma independiente (como se
observa en la figura 1.2). As, por ejemplo, los 8 bits inferiores de AX
se llaman AL (L de low, bajo) y los 8 superiores AH (H de high, alto).
En consecuencia, BX, CX y DX se dividen en BH/BL, CH/CL y DH/DL
respectivamente. De esta forma se tiene que todas las instrucciones
ensamblador pueden operar con datos de 8 y 16 bits segn lo que
se precise. En los dems registros esta subdivisin no es posible.
7.2.
Registros de Segmento:
7.3.
7.4.
17
Hardware PC XT 8088-8086
Arquitectura de Computadoras
7.5.
Registro de Banderas:
18
Hardware PC XT 8088-8086
Arquitectura de Computadoras
8. MODOS DE DIRECCIONAMIENTO:
El 8088 puede direccionar ms de los 65536 bytes de datos
especificados por los 16 bits. El 8088 tiene una direccin de 20 bits que
permite un tamao de memoria fsica de 1, 048,576 bytes. Tomando en
cuenta el criterio del programador, el almacenamiento est limitado a
una regin de 64 KB, sin embargo el programador puede mover esta
regin de 64 KB a alguna demarcacin en el espacio de 1 MB. Esto se
logra manipulando los contenidos del Registro de Segmento.
El valor cargado en el Registro de Segmento se usa para localizar la
regin de 64 KB en el espacio de 1 MB. Debido a que este Registro es
tambin de 16 bits, no puede por s mismo especificar alguna
demarcacin en el espacio de 1 MB. A pesar de esto, el registro de 16
bits puede especificar 64 KB regiones diferentes. La direccin de
memoria fsica se forma corriendo a la izquierda 4 bits el contenido del
registro de segmento y sumndolo a la direccin de 16 bits. La figura
ilustra la generacin de la direccin fsica.
19
Hardware PC XT 8088-8086
Arquitectura de Computadoras
MODOS DE DIRECCIONAMIENTO:
20
Hardware PC XT 8088-8086
Arquitectura de Computadoras
-
21
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Se usa para direccionar un arreglo bidireccional.
22
Hardware PC XT 8088-8086
Arquitectura de Computadoras
23
Hardware PC XT 8088-8086
Arquitectura de Computadoras
24
Hardware PC XT 8088-8086
Arquitectura de Computadoras
25
Hardware PC XT 8088-8086
Arquitectura de Computadoras
26
Hardware PC XT 8088-8086
Arquitectura de Computadoras
27
Hardware PC XT 8088-8086
Arquitectura de Computadoras
0001
1010
0001
01 A1
1000
1001
1001
1010
89 9A
0011
1010
1001
1100
3A 9C
0111
0100
0111
0000
74 70
1110
1001
0010
0000
E9 20
ENSAMBLADORES Y MACROENSAMBLADORES:
Existen varios ensambladores disponibles para ambiente MS-DOS: el IBM
Macro Assembler, el Turbo Assembler de Borland, el Turbo Editassm de
Speedware, por citar algunos. Una breve descripcin de cada uno se
propociona a continuacin.
Macro Ensamblador IBM.- Est integrado por un ensamblador y un
macroensamblador. En gran medida su funcionamiento y forma de
invocarlo es sumamente similar al de Microsoft. Su forma de uso
consiste en generar un archivo fuente en cdigo ASCII, se procede a
generar un programa objeto que es ligado y se genera un programa
.EXE. Opcionalmente puede recurrirse a la utilera EXE2BIN de MS-DOS
para transformarlo a .COM. Es capaz de generar un listado con
informacin del proceso de ensamble y referencias cruzadas.
28
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Macro Ensamblador de Microsoft.- Dependiendo de la versin, este
ensamblador es capaz de soportar el juego de instrucciones de distintos
tipos de microprocesadores Intel de la serie 80xx/80x86. En su versin
4.0 este soporta desde el 8086 al 80286 y los coprocesadores 8087 y
80287. Requiere 128KB de memoria y sistema operativo MS-DOS v2.0 o
superior. Trabaja con un archivo de cdigo fuente creado a partir de un
editor y grabado en formato ASCII. Este archivo es usado para el proceso
de ensamble y generacin de cdigo objeto. Posteriormente, y con un
ligador, es creado el cdigo ejecutable en formato .EXE.
Turbo Editassm.- Este es desarrollado por Speedware, Inc., y consiste
de un ambiente integrado que incluye un editor y utileras para el
proceso de ensamble y depuracin. Es capaz de realizar el ensamble
lnea a lnea, conforme se introducen los mnemnicos, y permite revisar
listas de referencias cruzadas y contenido de los registros. Este
ensamblador trabaja con tablas en memoria, por lo que la generacin
del cdigo ejecutable no implica la invocacin explcita del ligador por
parte del programador. Adicionalmente permite la generacin de
listados de mensajes e informacin de cada etapa del proceso y la
capacidad de creacin de archivos de cdigo objeto.
Turbo Assembler.- De Borland Intl., es muy superior al Turbo Editassm.
Trabaja de la misma forma, pero proporciona una interfaz mucho ms
fcil de usar y un mayor conjunto de utileras y servicios.
En lo que se refiere a las presentes notas, nos enfocaremos al Microsoft
Macro Assembler v4.0. Los programas ejemplo han sido desarrollados
con ste y est garantizado su funcionamiento. Estos mismos
programas posiblemente funcionen con otros ensambladores sin
cambios o con cambios mnimos cuando utilizan directivas o
pseudoinstrucciones.
Realmente la diferencia entre los ensambladores radica en la forma de
generar el cdigo y en las directivas con que cuente, aunque estas
diferencias son mnimas. El cdigo ensamblador no cambia puesto que
los microprocesadores con los que se va a trabajar son comunes. As,
todos los programas que se creen con un ensamblador en particular
podrn ser ensamblados en otro, cambiando las pseudo-operaciones no
reconocidas por el equivalente indicado en el manual de referencia del
paquete empleado.
Los programas que componen el Macro Ensamblador Microsoft v4.0 son
los siguientes:
Programa
Descripcin
MASM.EXE
LINK.EXE
SYMDEB.EXE
MAPSYM.EXE
CREF.EXE
29
Hardware PC XT 8088-8086
Arquitectura de Computadoras
LIB.EXE
MAKE.EXE
EXEPACK.EXE
EXEMOD.EXE
COUNT.ASM
README.DOC
manual
30
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Campo operacin: Contiene el nemotcnico de la instruccin, que es de 2 a
6 caracteres.
Campo operando: Contiene la posicin o posiciones donde estn los datos
que van a ser manipulados
por la instruccin.
Campo comentario: Se utiliza para documentar el cdigo fuente del
ensamblador. Debe separarse
del ltimo campo por al menos un espacio e iniciar con ;.
Cuando inicia un comentario en una lnea sta deber tener en la primera
Columna el carcter
DIRECTIVAS (Instrucciones para el ensamblador)
Definicin de smbolos
31
Hardware PC XT 8088-8086
Arquitectura de Computadoras
Definicin de segmentos
Organizan el programa para utilizar los segmentos de memoria del
microprocesador 8088. Estos son SEGMENT, ENDS, DOSSEG, ASSUME,
GROUP.
nombre_segm
SEGMENT [alineacin][combinacin]['clase']
sentencias
nombre_segm
ENDS
Alineacin: define el rango de direcciones de memoria para el cual puede elegirse el inicio del
segmento. Hay cinco posibles:
1. BYTE: El segmento comienza en el siguiente byte.
2. WORD: El segmento comienza en la siguiente direccin par.
3. DWORD: Comienza en la siguiente direccin mltiplo de 4.
4. PARA: Comienza en la siguiente direccin mltiplo de 16.
5. PAGE: Comienza en la siguiente direccin mltiplo de 256.
Si no se indica la alineacin sta ser PARA.
Combinacin: define cmo combinar segmentos que tengan el mismo nombre. Hay cinco posibles:
1. PUBLIC: Concatena todos los segmentos que tienen el mismo nombre para
formar un slo segmento. Todas las direcciones de datos e instrucciones se
representan la distancia entre el inicio del segmento y la direccin
correspondiente. La longitud del segmento formado ser la suma de las
longitudes de los segmentos con el mismo nombre.
2. STACK: Es similar a PUBLIC. La diferencia consiste que, al comenzar la
ejecucin del programa, el registro SS apuntar a este segmento y SP se
inicializar con la longitud en bytes de este segmento.
3. COMMON: Pone el inicio de todos los segmentos teniendo el mismo nombre
en la misma direccin de memoria. La longitud del segmento ser la del
segmento ms largo.
4. MEMORY: Es igual a PUBLIC.
5. AT direccin_de_segmento: Hace que todas las etiquetas y direcciones de
variables tengan el segmento especificado por la expresin contenida en
direccin_de_segmento. Este segmento no puede contener cdigo o datos
con valores iniciales. Todos los smbolos que forman la expresin
direccin_de_segmento deben conocerse en el primer paso de ensamblado.
Si no se indica combinacin, el segmento no se combinar con otros del mismo
nombre (combinacin "privada").
Clase: Es una forma de asociar segmentos con diferentes nombres, pero con propsitos similares.
Sirve tambin para identificar el segmento de cdigo. Debe estar encerrado entre comillas simples.
32
Hardware PC XT 8088-8086
Arquitectura de Computadoras
El linker pone los segmentos que tengan la misma clase uno a continuacin de otro, si bien siguen
siendo segmentos diferentes. Adems supone que los segmentos de cdigo tiene clase CODE o un
nombre con el sufijo CODE.
DOSSEG: Esta directiva especifica que los segmentos deben ordenarse segn la convencin de
DOS. Esta es la convencin usada por los compiladores de lenguajes de alto nivel.
GROUP: Sirve para definir grupos de segmentos. Un grupo es una coleccin de segmentos
asociados con la misma direccin inicial. De esta manera, aunque los datos estn en diferentes
segmentos, todos pueden accederse mediante el mismo registro de segmento. Los segmentos de un
grupo no necesitan ser contiguos.
Sintaxis: nombre_grupo GROUP segmento [, segmento...]
ASSUME: Sirve para indicar al ensamblador qu registro de segmento corresponde con un
segmento determinado. Cuando el ensamblador necesita referenciar una direccin debe saber en qu
registro de segmento lo apunta.
Sintaxis: ASSUME reg_segm:nombre [, reg_segm:nombre...]
donde el nombre puede ser de segmento o de grupo, una expresin utilizando el operador SEG o la
palabra NOTHING, que cancela la seleccin de registro de segmento hecha con un ASSUME
anterior.
Control del ensamblador
ORG expresin: El offset del cdigo o datos a continuacin ser la indicada por
la expresin. Todos los smbolos que forman la expresin deben conocerse en el
primer paso de ensamblado.
EVEN: Hace que la prxima instruccin o dato se ensamble en la siguiente posicin par.
END [etiqueta]: Debe ser la ltima sentencia del cdigo fuente. La etiqueta indica dnde debe
comenzar la ejecucin del programa. Si el programa se compone de varios mdulos, slo el mdulo
que contiene la direccin de arranque del programa debe contener la directiva END etiqueta. Los
dems mdulos debern terminar con la directiva END (sin etiqueta).
Definicin de procedimientos
Los procedimientos son secciones de cdigo que se pueden llamar para su
ejecucin desde distintas partes del programa.
etiqueta
PROC
{NEAR|FAR}
sentencias
etiqueta
ENDP
Ensamblado condicional
Verifican una condicin determinada y si se cumple, ensambla una porcin de
cdigo. Opcionalmente puede ensamblarse otra porcin de cdigo si la
condicin no se cumple. Son los siguientes: IF, IF1, IF2, IFB, IFDEF, IFDIF,
IFE, IFIDN, IFNB, IFNDEF, ENDIF, ELSE.
{IF|IFE}
condicin
sentencias
[ELSE
33
Hardware PC XT 8088-8086
Arquitectura de Computadoras
sentencias]
ENDIF
La directiva ELSE y sus sentencias son opcionales. ENDIF termina el bloque y es obligatorio. Se
pueden anidar directivas condicionales.
IF1 permite el ensamblado de las sentencias slo en el primer paso, mientras que IF2 lo permite en
el segundo paso.
IFDEF nombre permite el ensamblado de las sentencias si el nombre est definido, mientras que
IFNDEF nombre lo permite si no est definido.
IFB <argumento> permite el ensamblado si el argumento en una macro es blanco (no se pas el
argumento).
IFNB <argumento> permite el ensamblado si el argumento en una macro no es blanco (se pas el
argumento).
IFIDN <argumento1>, <argumento2> permite el ensamblado si los dos parmetros pasados a la
macro son idnticos.
IFDIF <argumento1>,<argumento2> permite el ensamblado si los dos parmetros pasados a la
macro son diferentes.
Macros: Las macros asignan un nombre simblico a un bloque de sentencias fuente. Luego se puede
usar dicho nombre para representar esas sentencias. Opcionalmente se pueden definir parmetros
para representar argumentos para la macro.
Definicin de macros
nombre_macro
MACRO
[Parmetro [,parmetro...]]
[LOCAL
nombre_local[,nombre_local...]
sentencias
ENDM
Los parmetros son opcionales. Si existen, entonces tambin aparecern en algunas de las sentencias
en la definicin de la macro. Al invocar la macro mediante:
nombre_macro [argumento [,argumento..]]
se ensamblarn las sentencias indicadas en la macro teniendo en cuenta que cada lugar donde
aparezca un parmetro se reemplazar por el argumento correspondiente.
El nombre_local de la directiva LOCAL es un nombre simblico temporario que ser reemplazado
por un nico nombre simblico (de la forma ??nmero) cuando la macro se invoque.
Todas las etiquetas dentro de la macro debern estar indicadas en la directiva LOCAL para que el
ensamblador no genere un error indicando que un smbolo est definido varias veces.
34
Hardware PC XT 8088-8086
Arquitectura de Computadoras
La directiva EXITM (usada dentro de la definicin de la macro) sirve para que no se ensamblen
ms sentencias de la macro (se usa dentro de bloques condicionales).
PURGE nombre_macro [,nombre_macro...]: Borra las macros indicadas de la memoria para poder
utilizar este espacio para otros smbolos.
Definicin de bloques de repeticin
Son tres: REPT, IRP e IRPC. Como en el caso de la directiva MACRO, se puede
incluir las sentencias LOCAL y EXITM y deben terminarse con la directiva
ENDM.
REPT expresin
sentencias
ENDM
La expresin debe poder ser evaluada en el primer paso del ensamblado y el resultado deber estar
entre 0 y 65535.
Esta expresin indica la cantidad de veces que debe repetirse el bloque.
IRP parmetro, <argumento [,argumento...]>
sentencias
ENDM
El parmetro se reemplaza por el primer argumento y se ensamblan las sentencias dentro del bloque.
Luego el parmetro se reemplaza por el segundo argumento y se ensamblan las sentencias y as
sucesivamente hasta agotar los argumentos.
IRPC parmetro, cadena
sentencias
ENDM
Es similar a IRP con la diferencia que el parmetro se reemplaza por cada carcter de la cadena. Si
sta contiene comas, espacios u otros caracteres especiales deber encerrarse con parntesis
angulares (<>).
Procesador: Indican el tipo de procesador y coprocesador en el que se va a ejecutar el programa.
Los de procesador son: .8086, .186, .286, .386, .486 y .586 para instrucciones en modo real, .286P, .
386P, .486P y .586P para instrucciones privilegiadas, .8087, .287 y .387 para coprocesadores.
Deben ubicarse al principio del cdigo fuente. Habilitan las instrucciones correspondientes al
procesador y coprocesador indicado. Sin estas directivas, slo se pueden ensamblar instrucciones del
8086 y 8087.
Referencias externas al mdulo
Sirve para poder particionar un programa en varios archivos fuentes o mdulos.
Son imprescindibles si se hace un programa en alto nivel con procedimientos en
assembler. Hay tres: PUBLIC, EXTRN e INCLUDE.
35
Hardware PC XT 8088-8086
Arquitectura de Computadoras
PUBLIC nombre[, nombre...]: Estos nombres simblicos se escriben en el archivo objeto. Durante
una sesin con el linker, los smbolos en diferentes mdulos pero con los mismos nombres tendrn
la misma direccin.
EXTRN nombre:tipo [,nombre:tipo...]: Define una variable externa con el nombre y tipo (NEAR,
FAR, BYTE, WORD, DWORD o ABS (nmero constante especificado con la directiva EQU o =))
especificado. El tipo debe ser el mismo que el del tem indicado con la directiva PUBLIC en otro
mdulo.
INCLUDE nombre_de_archivo: Ensambla las sentencias indicadas en dicho archivo.
Segmentos simplificados
Permite definir los segmentos sin necesidad de utilizar las directivas de
segmentos que aparecen ms arriba.
.MODEL modelo: Debe estar ubicada antes de otra directiva de segmento. El modelo puede ser uno
de los siguientes:
1. TINY: Los datos y el cdigo juntos ocupan menos de 64 KB por lo que entran
en el mismo segmento. Se utiliza para programas .COM. Algunos
ensambladores no soportan este modelo.
2. SMALL: Los datos caben en un segmento de 64 KB y el cdigo cabe en otro
segmento de 64 KB. Por lo tanto todo el cdigo y los datos se pueden
acceder como NEAR.
3. MEDIUM: Los datos entran en un slo segmento de 64 KB, pero el cdigo
puede ser mayor de 64 KB. Por lo tanto, cdigo es FAR, mientras que los
datos se acceden como NEAR.
4. COMPACT: Todo el cdigo entra en un segmento de 64 KB, pero los datos no
(pero no pueden haber matrices de ms de 64 KB). Por lo tanto, cdigo es
NEAR, mientras que los datos se acceden como FAR.
5. LARGE: Tanto el cdigo como los datos pueden ocupar ms de 64 KB (pero
no pueden haber matrices de ms de 64 KB), por lo que ambos se acceden
como FAR.
6. HUGE: Tanto el cdigo como los datos pueden ocupar ms de 64 KB (y las
matrices tambin), por lo que ambos se acceden como FAR y los punteros
a los elementos de las matrices tambin son FAR.
.STACK [size]: Define el segmento de pila de la longitud especificada.
.CODE [name]: Define el segmento de cdigo.
.DATA: Define un segmento de datos NEAR con valores iniciales.
.DATA?: Define un segmento de datos NEAR sin valores iniciales.
.FARDATA [name]: Define un segmento de datos FAR con valores iniciales.
.FARDATA? [name]: Define un segmento de datos FAR sin valores iniciales.
36
Hardware PC XT 8088-8086
Arquitectura de Computadoras
.CONST: Sefine un segmento de datos constantes.
Los siguientes smbolos estn definidos cuando se usan las directivas anteriores:
37
Hardware PC XT 8088-8086
Arquitectura de Computadoras
SoftICE
OllyDbg
Trw2000
Ida Pro
12. BIBLIOGRAFA:
http://uciencia.uma.es/Coleccion-cientificotecnica/Informatica/Galeria/Partes-de-un-PC-IBM-XT-5160
38
Hardware PC XT 8088-8086
Arquitectura de Computadoras
http://members.tripod.com/wingsze_liu/trabajos_A8.htm
http://www.informatica-hoy.com.ar/hardware-pc-desktop/Generacionesde-la-computadora.php
http://www.alu.ua.es/l/lli/articuloIBM/
http://www.taringa.net/posts/apuntes-y-monografias/3391636/Evolucionde-los-discos-duros.html
http://www.unicrom.com/cmp_historiaPC1.asp
http://es.slideshare.net/Kathe804/placa-base-xt
39