Hardware Computadora Personal PC XT 8088 - 8086
Hardware Computadora Personal PC XT 8088 - 8086
Hardware Computadora Personal PC XT 8088 - 8086
Las ocho ranuras de expansin eran un aumento de las cinco del IBM PC, aunque tres
de ellas eran utilizadas por el adaptador de la unidad de disquetes, el adaptador del
disco duro, y la tarjeta asncrona. Pronto se actualiz la especificacin bsica para
estandarizarla a 256KB de memoria RAM.
Haba dos versiones de la placa base del XT. La original poda admitir hasta 256kB en
la misma placa (en cuatro bloques de chips de 64kB), con un mximo de 640kB
alcanzados usando tarjetas de expansin. La segunda revisin de la placa, introducida
en 1986, poda admitir los 640kB enteros en la placa base (en dos bloques de chips de
256kb y dos bloques de 64kB). Las placas ms recientes podan ser adaptadas para
las "ltimas" especificaciones despus de un par de modificaciones menores. La
segunda revisin de la placa tena adems un IBM BIOS revisado, que inclua soporte
para el teclado expandido y reduca el tiempo de arranque a la mitad.
Los ltimos XTs venan con unidades de disquetes de media altura instaladas de
fbrica, as como con la opcin para un disco duro de 20MB y para el teclado
"expandido". Sin embargo, en 1985, algunas unidades fueron manufacturadas con solo
dos disqueteras de tamao completo y sin disco duro.
Las frecuencias internas de reloj tpicas son 4.77 MHz en la versin 8086; 8 MHz en la
versin 8086-2 y 10 MHz en la 8086-1. Por lo que un PC estndar a 4,77 MHz puede
ejecutar de 20.000 a unos 0,5 millones de instrucciones por segundo, segn la
complejidad de las mismas (un 486 a 50 MHz, incluso sin memoria cach externa es
capaz de ejecutar entre 1,8 y 30 millones de estas instrucciones por segundo).
3.-FUNCIONAMIENTO EN GENERAL
El 8086 y el 8088 tienen internamente dos componentes, la Unidad de Interfaz del Bus
y la Unidad de ejecucin (Bus Interface Unit (BIU) y Execution Unit (EU)).
La Unidad de Ejecucin procesa las instrucciones del CPU. Est conformada por los
registros generales, los registros ndices y apuntadores, los flags, la unidad aritmtica
lgica, y la lgica de control que maneja todo el proceso para ejecutar las instrucciones.
Los 40 pines del 8088 en modo mnimo tienen las siguientes funciones:
1. GND (Masa)
2. A14 (Bus de direcciones)
3. A13 (Bus de direcciones)
4. A12 (Bus de direcciones)
5. A11 (Bus de direcciones)
6. A10 (Bus de direcciones)
7. A9 (Bus de direcciones)
8. A8 (Bus de direcciones)
9. AD7 (Bus de direcciones y datos)
10. AD6 (Bus de direcciones y datos)
11. AD5 (Bus de direcciones y datos)
12. AD4 (Bus de direcciones y datos)
13. AD3 (Bus de direcciones y datos)
14. AD2 (Bus de direcciones y datos)
15. AD1 (Bus de direcciones y datos)
16. AD0 (Bus de direcciones y datos)
17. NMI (Entrada de interrupcin no enmascarable)
18. INTR (Entrada de interrupcin enmascarable)
19. CLK (Entrada de reloj generada por el 8284)
20. GND (Masa)
21. RESET (Para inicializar el 8088)
22. READY (Para sincronizar perifricos y memorias lentas)
23. /TEST
24. /INTA (El 8088 indica que reconoci la interrupcin)
25. ALE (Cuando est uno indica que salen direcciones por AD, en caso contrario,
es el bus de datos)
26. /DEN (Data enable: cuando vale cero debe habilitar los transceptores 8286 y
8287 (se conecta al pin de "output enable"), esto sirve para que no se mezclen
los datos y las direcciones).
27. DT/R (Data transmit/receive: se conecta al pin de direccin de los chips recin
indicados).
28. IO/M (Si vale 1: operaciones con ports, si vale 0: operaciones con la memoria)
29. /WR (Cuando vale cero hay una escritura)
30. HLDA (Hold Acknowledge: el 8088 reconoce el HOLD)
31. HOLD (Indica que otro integrado quiere aduearse del control de los buses,
generalmente se usa para DMA o acceso directo a memoria).
32. /RD (Cuando vale cero hay una lectura)
33. MN/MX (Cuando esta entrada est en estado alto, el 8088 est en modo
mnimo, en caso contrario est en modo mximo)
34. /SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados del
8088)
35. A19/S6 (Bus de direcciones/bit de estado)
36. A18/S5 (Bus de direcciones/bit de estado)
37. A17/S4 (Bus de direcciones/bit de estado)
38. A16/S3 (Bus de direcciones/bit de estado)
39. A15 (Bus de direcciones)
40. Vcc (+5V)
Memoria
Unidad Artimtico-Lgica ALU ("Arithmetic and Logic Unit" )
Unidad de Control CU ("Control Unit" )
Bus interno
Conexiones con el exterior
6.- MUESTRA DE UNA MAINBOARD XT CON IDENTIFICACION DE
DISPOSITIVOS
PROCESADOR 8088
VELOCIDAD 12MHz
Cache None
BIOS Unidentified
Los registros del procesador, se usan para contener los datos con que se est
trabajando ya que el acceso a los registros es mucho ms rpido que los accesos a
memoria. Se pueden realizar operaciones aritmticas y lgicas, comparaciones, entre
otras. Se pueden hacer estas operaciones con todos los registros excepto los de
segmento, el IP, y los flags.
7.1.3 Registro CX: El registro CX es conocido como el registro contador. Puede contener
un valor para controlar el nmero de veces que un ciclo se repite o un valor para
corrimiento de bits
7.1.1 Registro SI: El registro ndice fuente de 16 bits es requerido por algunas
operaciones con cadenas de caracteres. El SI est asociado con el segmento DS.
7.1.2 Registro DI: El registro ndice destino tambin es requerido por algunas
operaciones con cadenas de caracteres. El DI est asociado con el segmento ES.
7.3.1 Registro SP: El apuntador de pila de 16 bits est asociado con el segmento SS y
proporciona un valor de desplazamiento que se refiere a la palabra actual que est
siendo procesada en la pila. El sistema maneja de manera automtica este registro,
aunque el programa puede hacer ciertas manipulaciones con l.
La tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de
banderas, numeradas de derecha a izquierda. La posicin 0 la encontraremos a la
derecha y la posicin 15 a la izquierda.
- - - - OF DF IF TF SF ZF - AF - PF - CF
AF (acarreo auxiliar): Contiene el acarreo del bit 3. Esta bandera se prueba con las
instrucciones DAA y DAS para ajustar el valor de AL despus de una suma o
resta BCD.
CF (acarreo): Contiene el acarreo del bit de mayor orden despus de una operacin
aritmtica; tambin almacena el contenido del ltimo bit en una operacin de
desplazamiento o de rotacin.
7.5.1 Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un
programa en el registro CS. Esta direccin de segmento, ms un valor de
desplazamiento en el registro apuntador de instruccin (IP), indica la direccin de una
instruccin que es buscada para su ejecucin. Para propsitos de programacin
normal, no se necesita referenciar el registro CS.
7.5.3 Registro SS: El registro SS permite la colocacin en memoria de una pila, para
almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de
inicio del segmento de pila de un programa en el registro SS. Esta direccin de
segmento, ms un valor de desplazamiento en el registro del apuntador de la pila (SP),
indica la palabra actual en la pila que est siendo direccionada. Para propsitos de
programacin normal, no se necesita referenciar el registro SS.
7.5.4 Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro
extra de segmento para manejar el direccionamiento de memoria. El registro ES est
asociado con el registro DI (ndice). Un programa que requiere el uso del registro ES
puede inicializarlo con una direccin de segmento apropiada.
2. valores inmediatos,
En total son siete las clases de parmetros que se pueden utilizar y conjuntamente
forman los llamados siete modos de direccionamiento.
1. Registros internos: el origen y destino de la operacin son los registros internos de la
CPU.
3.2 Modo indirecto mediante registro: Es similar al modo anterior slo que el
valor del desplazamiento del operando no se indica directamente sino que se encuentra
en un registro de la CPU.
3.3 Modo relativo a base: Es unir los dos modos anteriores. Consiste en indicar
la posicin del operando utilizando como desplazamiento el valor de un registro
sumado con una cantidad constante.
3.4 Modo directo indexado: Idntico al anterior pero usando como registro de
desplazamiento el registro SI o el DI.
3.5 Modo indexado a base: Este es el modo ms complejo, y se podra decir que
es el resultado de unir los cuatro anteriores. En este modo, el desplazamiento del
operando se compone a partir de un registro que hace de base, un registro ndice y un
valor inmediato que se les suma.
Implcito. El dato est implcito en la propia instruciin. Ej. STC, STD y STI, (Set
Carry, Set Direcction y Set Interrupts) encienden el flag correspondiente indicado
en la propia instruccin. CBW (Convert Byte to Word) extiende el registro AL a
AX. Ni el AL ni el AX son especificados, CBW implcitamente trabaja sobre ellos.
Inmediato. El dato a operar est inmediatamente despus del opcode de la
instruccin. Ej, MOV AX, 5
Registro. El dato est en un segundo registro. Ej. MOV AX, BX. Aqu, el dato
est en el registro BX
Directo. La direccin del dato est en el campo de la direccin del opcode.
Ej. MOV AX, [100h]. Aqu se mueve (copia) el contenido de las direcciones 100h
y 101h al registro AX. En este caso se mueven dos bytes puesto que AX es de
16 bits. Si fuera MOV BL, [100h] se movera solo un byte pues BL es un registro
de 8 bits
Indirecto. El dato es especificado mediante una combinacin de registros ndice
y base, y puede haber un desplazamiento
o Base. Un registro base (BX o BP) tienen la direccin de donde se tomar
el dato. Ej. MOV AX, [BX]
o ndice. Un registro ndice (SI o SI) tienen la direccin de donde se tomar
el dato. Ej. MOV AX, [SI]
o Base + Desplazamiento. El dato se tomar de la direccin apuntada por
la suma de un registro base ms un desplazamiento. Ej. MOV AX, [BP +
7]
o ndice + Desplazamiento. El dato se tomar de la direccin apuntada por
la suma de un registro ndice ms un desplazamiento. Ej. MOV AX, [DI +
7]
o Base + ndice. El dato se tomar de la direccin apuntada por la suma de
un registro base ms un registro ndice. Ej. MOV AX, [BX + SI]
o Base + ndice + Desplazamiento. El dato se tomar de la direccin
apuntada por la suma de un registro base, ms un registro ndice, ms un
desplazamiento. Ej. MOV AX, [BX + SI + 9]
MOV transfiere
XCHG intercambia
IN entrada
OUT salida
INC incrementar
DEC decrementar
TEST verifica
CMP compara
JMP salta
a. Grupo de adicin:
ADD suma
b. Grupo de sustraccin:
SUB resta
SBB resta con acarreo negativo
c. Grupo de multiplicacin:
MUL multiplicacin
d. Grupo de divisin:
DIV divisin
e. Conversiones:
NEG negacin
f. Tratamiento de cadenas:
REP repetir
NOT negacin
OR suma lgica
PUSH introducir
POP extraer
NOP no operacin
HLT parada
WAIT espera
LOCK bloquea
ESC escape
INT interrupcin
b. JAE o JNB. Salta si est arriba o es igual o salta si no est abajo (jump if above or
equal o jump if not below) El salto se efecta si CF = 0.
c. JB o JNAE. Salta si est abajo o salta si no est arriba o si no es igual (jump if below
or equal o jump if not above or equal) El salto se efecta si CF=1.
d. JBE o JNA. Salta si est abajo o si es igual o salta si no est arriba (jump if below or
equa o jump if not above) El salto se efecta si CF = 1.
e. JE o JZ. Salta si es igual o salta si es cero (jump equal o jump if zero) El salto se
efecta si ZF = 1 (tambin se aplica a comparaciones de enteros con signo)
f. JNE o JNZ. Salta si no es igual o salta si no es cero (jump if not equal o jump if not
zero) El salto se efecta si ZF = 0 (tambin se aplica a comparaciones de enteros con
signo)
c. JL o JNGE. Salta si es menor que o salta si no es mayor o igual (jump if less o jump
if not greater or equal) El salto se efecta si SF = OF.
d. JNP o JPO Salta si no hay paridad o salta si la paridad en non. El salto se efecta
si PF= 0.
e. JNS Salta si el signo est apagado (jump if not sign) El salto se efecta si SF = 0.
g. JP o JPE Salta si hay paridad o salta si la paridad es par (jump if parity o jump if
parity even) El salto se efecta si PF = 1.
Ahora bien, mientras que con el lenguaje de mquina, nosotros obtenemos un control
total del microprocesador, la programacin en este lenguaje resulta muy difcil y fcil
para cometer errores. No tanto por el hecho de que las instrucciones son slo nmeros,
sino porque se debe calcular y trabajar con las direcciones de memoria de los datos,
los saltos y las direcciones de llamadas a subrutinas, adems de que para poder hacer
ejecutable un programa, se deben enlazar las rutinas de run-time y servicios del
sistema operativo. Este proceso es al que se le denomina ensamblado de cdigo. Para
facilitar la elaboracin de programas a este nivel, se desarrollaron los Ensambladores y
el Lenguaje Ensamblador.
Existe una correspondencia 1 a 1 entre las instrucciones del lenguaje de mquina y las
del lenguaje ensamblador. Cada uno de los valores numricos del lenguaje de mquina
tiene una representacin simblica de 3 a 5 letras como instruccin del lenguaje
ensamblador. Adicionalmente, este lenguaje proporciona un conjunto de pseudo-
operaciones (tambin conocidas como directivas del ensamblador) que sirven para
definir datos, rutinas y todo tipo de informacin para que el programa ejecutable sea
creado de determinada forma y en determinado lugar.
Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan
con dos nicos niveles de tensin. Dichos niveles, por abstraccin, se simbolizan con el
cero, 0, y el uno, 1, por eso el lenguaje de mquina slo utiliza dichos signos. Esto
permite el empleo de las teoras del lgebra booleana y del sistema binario en el diseo
de este tipo de circuitos y en su programacin.
DEBUG name.EXE
Cada lnea comienza con una letra clave posiblemente seguida de otra informacin.
Por lo general, puede omitir los espacios en blanco - a veces es necesario hacerlo.
q / / quit DEBUG
g / / Ejecuta el programa hasta que sale (o nunca). Los valores de registro se muestran
no son los que dan al final de la ejecucin de su programa.
REFERENCIAS
http://www.configurarequipos.com/doc585.html
http://www.monografias.com/
http://www.alpertron.com.ar/8088.HTM
http://www.wikilearning.com/
http://atc.ugr.es/docencia/udigital/
http://www.emu8086.com/
http://www.datasheetcatalog.org/datasheet/Intel/mXrysuv.pdf
Esta direccin es un ensamblador para los 80xx: msx88.zip