Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PC XT Cruz Ferreyros Layme Polanco
PC XT Cruz Ferreyros Layme Polanco
CURSO:
ARQUITECTURA DE COMPUTADORAS
TURNO: “B”
Miércoles: 07:00 – 08:40
GRUPO – G1
TAREA 01: PC XT
Estudiantes:
Fecha de entrega:
12/09/2021
AREQUIPA – 2021
Contenido
1 INTRODUCCION.................................................................................................................................3
2 Hardware Computadora Personal PC XT 8088-8086.........................................................................3
2.1 Sistemas que componen la computadora XT.............................................................................4
2.2 Características del procesador 8088/8086................................................................................4
2.3 Funcionamiento en general.......................................................................................................5
2.4 Sistema descrito por bloques y por circuitos.............................................................................6
2.5 Esquemático del sistema completo Sistema de Aplicación........................................................6
2.6 Muestra de una Mainboard XT con identificación de dispositivos Etiquetado y accesorios......8
2.7 Registros del 8088.....................................................................................................................8
2.7.1 Registros de Almacenamiento Temporal o de Datos:........................................................9
2.7.2 Registros de Segmento:.....................................................................................................9
2.7.3 Registros de la Pila:............................................................................................................9
2.7.4 Registros Índices:...............................................................................................................9
2.7.5 Registros de Instrucción:....................................................................................................9
2.8 Modos de direccionamiento....................................................................................................10
2.9 Set de instrucciones del 8088..................................................................................................11
2.9.1 Instrucciones de transferencia de datos (No afectan flags).............................................11
2.9.2 Instrucciones aritméticas (Afectan los flags AF, CF, OF, PF, SF, ZF)..................................12
2.9.3 Instrucciones lógicas (Afectan AF, CF, OF, PF, SF, ZF).......................................................13
2.10 Lenguaje máquina, macroensamblador del 8088....................................................................13
2.10.1 ENSAMBLADORES Y MACROENSAMBLADORES:..............................................................13
2.10.2 Macro Ensamblador IBM.-...............................................................................................13
2.10.3 Macro Ensamblador de Microsoft.-.................................................................................14
2.11 Debuger, y simuladores del 8088/8086...................................................................................14
3 Ensamblador 8088/8086 Hoja de Datos INTEL................................................................................15
4 Codificación, Debug, EMU8086 (programa: suma, promedio, ordenamiento)................................58
4.1 Aplicaciones.............................................................................................................................78
5 BIBLIOGRAFIA..................................................................................................................................79
1 INTRODUCCION
En junio de 1978 Intel lanzó al mercado el primer microprocesador de 16 bits: el 8086. En junio de
1979 apareció el 8088 (internamente igual que el 8086 pero con bus de datos de 8 bits) y en 1980 los
coprocesadores 8087 (matemático) y 8089 (de entrada y salida). El primer fabricante que desarrolló
software y hardware para estos chips fue la propia Intel. Reconociendo la necesidad de dar soporte a
estos circuitos integrados, la empresa invirtió gran cantidad de dinero en un gran y moderno edificio en
Santa Clara, California, dedicado al diseño, fabricación y venta de sus sistemas de desarrollo que, como
se explicó anteriormente, son computadoras autosuficientes con el hardware y software necesario
para desarrollar software de microprocesadores.
El desarrollo más notable para la familia 8086/8088 fue la elección de la CPU 8088 por parte de IBM
(International Business Machines) cuando en 1981 entró en el campo de las computadoras personales.
Esta computadora se desarrolló bajo un proyecto con el nombre "Acorn" (Proyecto "Bellota") pero se
vendió bajo un nombre menos imaginativo, pero más correcto: "Computadora Personal IBM", con un
precio inicial entre 1260 dólares y 3830 dólares según la configuración (con 48KB de memoria RAM y
una unidad de discos flexibles con capacidad de 160KB costaba 2235 dólares). Esta computadora entró
en competencia directa con las ofrecidas por Apple (basado en el 6502) y por Radio Shack (basado en
el Z-80).
En primer lugar, la computadora personal PC XT tenía como corazón al microprocesador 8088 de Intel,
lo cual vendría a ser la unidad central de proceso o CPU. El 8088 era en sí una versión simplificada de
su antecesor, el 8086 que contaba con registros y bus de datos de 16 bits.
La computadora contaba con una “disquetera” o unidad de disquetes, memoria RAM, memoria ROM,
Discos de almacenamiento, controladores y una serie de periféricos.
2.1 Sistemas que componen la computadora XT
La PC XT contaba además con una serie de componentes integrados:
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 equipos más modernos (el AT o superior).
La diferencia en el ancho del bus no hace que el 8086 sea el doble de rápido que el 8088. El 8088
ejecuta sus instrucciones desde una cola interna la cual se llena tan pronto como hay una localidad
vacía; así, es posible que se traslapen los ciclos de ejecución y búsqueda.
Características
Una manera de aprender acerca del 8088 es conocer las funciones de sus pines. La figura que se
mostrará a continuación, muestra un diagrama funcional a bloques (Functional Block Diagram) y un
diagrama de la definición de las patitas (Pin Diagram) del 8088:
Figura 2: Diagrama de bloques del funcionamiento del CPU 8088
La ventaja de esta división fue el ahorro de esfuerzo necesario para producir el 8088. Sólo una mitad
del 8086 (el BIU) tuvo que rediseñarse para producir el 8088.
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 señal 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 están 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
intervención de la memoria del procesador.
El cuarto canal es programado para refrescar el sistema dinámico de memoria, esto está hecho para el
programa del Timer-contador e informe periódicamente de la transferencia DMA.
Para comprender esta función debe considerarse el detalle del proceso de ejecución del programa.
Desde el punto de vista más simple, se considera el procesamiento de una instrucción en dos etapas: la
CPU lee (busca, trae; “fetch” en inglés) la instrucción de memoria y la ejecuta.
Esta necesidad se satisfizo con la introducción de la PC XT la cual adoptó las siguientes mejoras:
Estos cuatro registros, como todos los restantes, son de 16 bits, pero para permitir la realización 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.
CS (Code Segment): Este registro es usado por el procesador, junto con el registro IP, para
conocer dónde está la instrucción actual que está siendo ejecutada.
DS (Data Segment): Se usa para indicar dónde están todos los datos del programa en ejecución.
SS (Stack Segment): En este registro se indica al procesador dónde está la zona de memoria
que se usa como segmento de pila.
ES (Extra Segment): Es el registro que referencia al segmento extra, y se usa como apuntador
de memoria auxiliar en operaciones complejas donde se necesitan dos punteros de datos
simultáneos.
SP (Stack Pointer): Es el registro que se reserva el procesador para uso propio en instrucciones
de manipulación de la pila.
BP (Base Pointer): Se usa como registro auxiliar.
El 8088 puede direccionar más de los 65536 bytes de datos especificados por los 16 bits. El 8088 tiene
una dirección de 20 bits que permite un tamaño de memoria física de 1, 048,576 bytes. Tomando en
cuenta el criterio del programador, el almacenamiento está limitado a una región de 64 KB, sin
embargo el programador puede mover esta región de 64 KB a alguna demarcación 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 región de 64 KB en el espacio de 1 MB. Debido a que este Registro es
también de 16 bits, no puede por sí mismo especificar alguna demarcación en el espacio de 1 MB. A
pesar de esto, el registro de 16 bits puede especificar 64 KB regiones diferentes.
La dirección de memoria física se forma corriendo a la izquierda 4 bits el contenido del registro de
segmento y sumándolo a la dirección de 16 bits. La figura ilustra la generación de la dirección física.
Transferencia de datos
Aritmeticas
Operaciones Lógicas
Corrimientos y rotaciones
Gestión de bits
Gestión de cadenas
Control de Programa
Control de sistema
MOV reg,{reg|mem|inmed}
MOV mem,{reg|inmed}
MOV {reg16|mem16},{CS|DS|ES|SS}
MOV {DS|ES|SS},{reg16|mem16}
PUSH src
2.9.3 Instrucciones lógicas (Afectan AF, CF, OF, PF, SF, ZF)
AND dest,src
Operación: dest <- dest and src.
TEST dest,src
Operación: dest and src. Sólo afecta flags.
OR dest,src
Operación: dest <- dest or src.
XOR dest,src
Operación: dest <- dest xor src.
Las cuatro instrucciones anteriores ponen CF = OF = 0, AF queda indefinido y PF, SF y ZF dependen del
resultado.
NOT dest
Operación: dest <- Complemento a 1 de dest. No afecta los flags.
SHL/SAL dest,{1|CL}
Realiza un desplazamiento lógico o aritmético a la izquierda.
SHR dest,{1|CL}
Realiza un desplazamiento lógico a la derecha.
SAR dest,{1|CL}
Realiza un desplazamiento aritmético a la derecha.
ROL dest,{1|CL}
Realiza una rotación hacia la izquierda.
ROR dest,{1|CL}
Realiza una rotación hacia la derecha.
RCL dest,{1|CL}
Realiza una rotación hacia la izquierda usando el CF.
RCR dest,{1|CL}
Realiza una rotación hacia la derecha usando el CF.
En las siete instrucciones anteriores la cantidad de veces que se rota o desplaza puede ser un bit o la
cantidad de bits indicado en CL.
Un Depurador (en inglés, debugger), es un programa que permite depurar o limpiar los errores de otro
programa informático. Al Iniciarse la depuración, el depurador lanza el programa a depurar.
Este se ejecuta normalmente hasta que el depurador detiene su ejecución, permitiendo al usuario
examinar la situación.
El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus funcionalidades
cambian de un sistema a otro. Aquí se han mostrado las más comunes.
En cuanto a la Depuración: para poder aprovechar todas las posibilidades de depuración es necesario
que, al compilar el programa a depurar, se indique al compilador que debe incluir instrucciones e
información extra para la depuración del código.
Dicha información extra consiste básicamente en la correspondencia entre las instrucciones del código
ejecutable y las instrucciones del código fuente que las originan, así como información sobre nombres
de variables y funciones. Aún si no se incluye esta información de depuración, sigue siendo posible
monitorizar la ejecución del programa. Sin embargo, resultará más difícil y compleja debido a esa falta
de información del contexto en el que se ejecuta el programa. Un depurador también puede usarse
para realizar ingeniería inversa o evitar protecciones de copia.
Mediante el uso del depurador se puede conocer el funcionamiento interno del programa examinado,
ayudando al proceso de ingeniería inversa o permitiendo desarrollar técnicas para evadir las
restricciones impuestas por el programa.
Un programa que está siendo depurado puede presentar un comportamiento diferente a si se ejecuta
en solitario debido a que el depurador cambia ligeramente los tiempos internos del programa. Estos
cambios en los tiempos de ejecución afectan especialmente a sistemas complejos multihebra o
sistemas distribuidos.
Ejemplos de depuradores
Uso: AAA
Si bits 3 a 0 de AL > 9 o
AF = 1 AL = AL + 6
AH = AH + 1
AF = 1, CF = AF
Bits 7 a 4 de AL = 0000b
AAD – Ajuste ASCII en división (ASCII Adjust for Division)
Uso: AAD
AL :=
10*AH+A
L AH := 0
Uso: AAM
AH := AL /
10 AL :=
AL mod 10
AAS –Ajuste ASCII en resta (ASCII Adjust for Subtraction)
Uso: AAS
AF = 1 AL = AL –6
AH = AH –1
AF = 1, CF = AF
Bits 7 a 4 de AL = 0000b
Descripción: Suma los dos operandos. Además, añade 1 a la suma si está activada la
bandera de acarreo (CF). El resultado se almacena en el operando destino. Los
operandos deben ser del mismo tipo (byte o palabra).
Descripción: Operación “y lógica” a nivel de bit entre los dos operandos. El resultado se
almacena en el operando destino. Los operandos deben ser del mismo tipo (byte o
palabra).
Uso: CBW
Descripción: Copia el bit 7 del registro AL en todos los bits del registro AH; es decir,
expande el bit de signo de AL.
Uso: CLC
Descripción: Borra la bandera de acarreo (CF) sin afectar a ninguna otra bandera.
Uso: CLD
Uso: CLI
Uso: CMC
Descripción: Resta fuente de destino, pero no retorna el resultado. Los operandos quedan
inalterados, pero las banderas se actualizan, pudiéndose consultar a continuación
mediante una instrucción de bifurcación condicional. Los operandos pueden ser de
tipo byte o palabra, pero ambos del mismo tipo.
Uso: CMPS
dest
,src
CMPSB
CMPS
W
Descripción: Sirve para comparar dos operandos de memoria (tipo byte o palabra). Para
ello realiza la operación:
Cadena fuente – cadena destino
afectando a las banderas, pero sin almacenar el resultado. La cadena fuente está
direccionada por SI en el segmento de datos, es decir, DS:[SI]. La cadena destino
está direcionada por DI en el segmento extra, es decir, ES:[DI]. Los registros SI y
DI se actualizan para que apunten al siguiente elemento de la cadena. Si la bandera
de dirección es cero (DF=0), ambos SI y DI se incrementan. Si DF=1, ambos se
decrementan.
Uso: CWD
Descripción: Expande el bit de signo del registro AX (bit 15) sobre el registro DX.
Uso: DAA
Uso: DAS
Descripción: Resta una unidad del operando destino. El operando puede ser byte o palabra.
Uso: HLT
Descripción: El procesador se para. Sólo abandona ese estado en uno de estos casos:
- Se restaura el sistema (activación de la línea RESET).
- Se recibe una interrupción no enmascarable sobre la línea NML
- Se recibe una interrupción enmascarable sobre la línea INTR (si las interrupciones
están permitidas).
Uso: IN accum,puerto
Descripción: Suma una unidad del operando destino. El operando puede ser byte o palabra.
Uso: INTO
Uso: IRET
Uso: LAHF
Uso: LOCK
Descripción: LOCK es un prefijo de un byte que acompaña a una instrucción y que activa
la señal LOCK mientras dicha instrucción se ejecuta; es decir, impide la utilización
del bus por otros procesadores, impidiendo de esta forma el acceso a los recursos
compartidos por éstos. En sistemas de múltiples procesadores con recursos
compartidos es necesario un mecanismo de este tipo para el control del acceso a
estos recursos.
LO
DS
B
LO
DS
W
LOOPE/LOOPZ – Bucle si igual / Bucle si cero (Loop While Equal / Loop While Zero)
LOOPZ label
Uso:LOOPNZ label
LOOPNE label
Word)
Descripción: Transfiere un byte o una palabra desde el operando fuente al operando destino.
Uso: MOVS
dest,src
MOVSB
MOVSW
Descripción: Transfiere un byte o una palabra de la cadena fuente (direccionada por SI) en
el segmento de datos a la cadena de destino (direccionada por DI) en el segmento
extra. Actualiza los registros SI y DI para que apunten al siguiente elemento de la
cadena:
Cuando se usa con REP, se realiza una transferencia de una cadena completa (de
bytes o de palabras), siendo el número de elementos a mover el especificado en el
registro CX.
Descripción: Multiplica, sin considerar el signo, el acumulador (AL o AX) por el operando
fuente, según que el tipo de este operando fuente sea byte o palabra. Si el operando
fuente es de tipo palabra, el resultado se almacena en AX (palabra inferior) y DX
(palabra superior). Si la mitad superior del resultado (AH para el caso de operando
tipo byte o DX para el caso de operando tipo palabra) no es cero, se activan las
banderas CF y OF, indicando que esta mitad superior contiene dígitos significativos
del resultado.
Uso: NOP
Descripción: Cambia los bits unos por ceros y los bits ceros por unos, es decir, realiza el
complemento a uno del operando y devuelve el resultado en el mismo operando
(byte o palabra).
Uso: OR dest,src
Descripción: Realiza la operación "o lógico inclusivo" a nivel de bit entre los dos
operandos. El resultado se almacena en destino.
Descripción: Transfiere un byte o una palabra del registro AL o AX a una puerta de salida
del procesador. El número de la puerta se puede especificar mediante:
- un valor fijo (de 0 a 255);
Uso: OUTS
por
t,src
OUTSB
OUTSW
POPA – Quitar registros de la pila (Pop All Registers onto Stack) (80188+)
Uso: POPA
Uso: POPF
bit 11 -- OF
bit 10 -- DF
bit 9 -- IF
bit 8 – TF
bit 7 – SG
bit 6 – ZF
bit 4 – AF
bit 2 – PF
bit 0 -- CF
PUSHA – Poner registros en la pila (Push All Registers onto Stack) (80188+)
Uso: PUSHA
Uso: PUSHF
RCL – Rotar a la izquierda a través del acarreo (Rotate Through Carry Left)
Descripción: Rotar a la izquierda los bits del operando destino junto con la bandera de
acarreo (CF) el número de bits especificado en el segundo operando.
RCR – Rotar a la derecha a través del acarreo (Rotate Through Carry Right)
Descripción: Rotar a la derecha los bits del operando destino junto con la bandera de acarreo
Uso: REP
REP se usa en conjunción con las instrucciones MOVS (mover cadena) y STOS
(almacenar cadena).
REPE y REPZ son idénticas y generan el mismo código (un byte) que REP, pero se
utilizan en las instrucciones CMPS (comparar cadena) y SCAS (explorar cadena),
pero necesitan que ZF
= 1 (es decir, que el resultado de la comparación o exploración haya dado igual o
cero).
REPNE y REPNZ son idénticas y generan el mismo código (un byte). Se utilizan
como (REPE y REPZ) en las instrucciones CMPS y SCAS, pero necesitan que ZF
o distinto de cero).
En resumen:
Zero)
Uso: REPE
REPZ
Uso: REPE
REPZ
El valor opcional que se especifica en RET es el valor que hay que sumar al registro
SP, con objeto de descartar parámetros. Si los parámetros son direcciones de
memoria, cada parámetro ocupa:
- 1 palabra (desplazamiento), si procedimiento NEAR.
- 2 palabras (desplazamiento y segmento), si procedimiento FAR.
ROL – Rotación a la izquierda (Rotate Left)
Descripción: Rotar a la izquierda los bits del operando destino el número de bits
especificado en el segundo operando. Si el número de bits a desplazar es 1, se
puede especificar directamente. Si es mayor que 1, su valor debe cargase en CL y
especificar CL como segundo operando.
Uso: SAHF
Descripción: Transfiere bits específicos del registro AH a los registro de banderas SF, ZF,
PF y CF.
SF = bit 7
ZF = bit 6
AF = bit 4
PF = bit 2
CF = bit 0
Desplaza a la izquierda los bits del operando destino el número de bits especificado
en el segundo operando. Los bits de la derecha se rellenan con cero.
Descripción: Desplaza a la derecha los bits del operando destino el número de bits
especificado en el segundo operando. Los bits de la izquierda se rellenan con el bit
del signo del primer operando.
Descripción: Resta el operando fuente del operando destino. Resta uno si está activada la
bandera de acarreo (CF). El resultado se almacena en el operando destino. Los
operando deben ser del mismo tipo (byte o palabra).
SCAS – Explorar cadena (Scan String -Byte, Word or Doubleword- )
Descripción: Sirve para explorar una cadena de bytes o palabras. Para ello realiza la
operación: acumulador (AL o AX)-cadena_destino
afectando a las banderas, pero sin almacenar el resultado. La cadena destino está
direccionada por DI en el segmento extra, o sea, ES:[DI]. Es decir, que se realiza la
- Si los operandos son de tipo byte, la resta es a nivel byte (con AL) y el registro DI
- Si los operandos son de tipo palabra, la resta es a nivel palabra (con AX) y el
registro DI cambia dos unidades.
Se pueden utilizar los prefijos REPE (REPZ) o REPNE (REPNZ). Se aplican para
realizar una búsqueda de un elemento de la cadena que cumpla alguna condición
determinada. El número de elementos a explorar se especifica en el registro CX.
Desplaza a la izquierda los bits del operando destino el número de bits especificado
en el segundo operando. Los bits de la derecha se rellenan con ceros. Si el número
de bits a desplazar es 1, se puede especificar directamente. Si es mayor que 1, su
valor debe cargarse en CL y especificar CL como segundo operando.
Descripción: Desplazar a la derecha los bits del operando destino el número de bits
especificado en el segundo operando. Los bits de la izquierda se rellenan con cero.
Si el número de bits a desplazar es 1, se puede especificar directamente. Si es mayor
que 1, su valor debe cargarse en CL y especificar CL como segundo operando.
Uso: STC
Descripción: Pone a 1 la bandera de acarreo (CF) sin afectar a ninguna otra bandera.
Uso: STD
Uso: STI
Descripción: Realiza la operación "y lógica" a nivel de bit entre los dos operandos, pero el
resultado no se almacena en destino y únicamente se alteran los flags. Tras esta
instrucción se pueden consultar las banderas mediante una instrucción de
bifurcación condicional.
Uso: WAIT
Descripción: Esta instrucción, junto con ESC, permiten la comunicación con otros
coprocesadores. WAIT sirve para poner al procesador en estado de espera, estado
que abandona cuando se activa la línea TEST. La línea TEST la activa el
coprocesador cuando está libre o preparado para ejecución. WAIT chequea la línea
TEST a intervalos fijos (cinco intervalos de reloj).
Descripción: Intercambia el contenido entre los dos operandos (tipo byte o palabra).
Descripción: Operación "o lógico exclusivo" a nivel de bit entre los dos operandos. El
resultado no almacena en destino.
La tabla de la operación XOR (para las cuatro combinaciones posibles de bits) es:
0 0 0
0 1 1
1 0 1
1 1 0
ARQUITECTURA INTEL 8086
• Procesador de 16 bits
• 16 bits en el 8086
• 8 bits en el 8088
• 89 instrucciones
• No tiene coprocesador
• ASCII
• BCD
8 bits 0...255
16 bits 0...65535
8 bits -128...127
16 bits -32768...32767
14 registros de 16 bits
• 4 generales: AX, BX, CX, DX
• 2 índices: SI, DI
• 2 punteros: SP, BP
• 1 estado: Flag
O: sobreflujo
4 Codificación, Debug, EMU8086 (programa: suma, promedio,
ordenamiento)
EMU8086
Emu8086 combina un editor de código fuente avanzado, ensamblador, desensamblador y emulador de
software (Virtual PC) con depurador y tutoriales paso a paso. Este programa es extremadamente útil
para aquellos que recién comienzan a estudiar el lenguaje ensamblador. Compila el código fuente y lo
ejecuta en el emulador paso a paso.
Es muy fácil trabajar con la interfaz visual. Puede ver registros, banderas y memoria mientras se
ejecuta su programa.
La unidad aritmética y lógica (ALU) muestra el trabajo interno del procesador central
unidad (CPU). El emulador ejecuta programas en una PC virtual, esto bloquea completamente su
programa para que no acceda a hardware real, como discos duros y memoria, ya que su código
ensamblador se ejecuta en una máquina virtual, esto hace que la depuración sea mucho más fácil.
El código de máquina 8086 es totalmente compatible con todas las próximas generaciones de
microprocesadores Intel, incluidos Pentium II y Pentium 4, estoy seguro de que Pentium 5 también
admitirá 8086. Esto hace que el código 8086 sea muy portátil, ya que se ejecuta tanto en sistemas
informáticos antiguos como modernos. Otra ventaja del conjunto de instrucciones 8086 es que es
mucho
Codificación
1. Instrucciones principales:
Son operaciones bit a bit que trabajan sobre octetos o palabras completas:
NOT negación
OR suma lógica
a. Grupo de adición:
ADD suma
SUB resta
d. Grupo de división:
DIV división
e. Conversiones:
NEG negación
f. Tratamiento de cadenas:
Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra
es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas):
PUSH introducir
POP extraer
Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjunción con
otros procesadores:
NOP no operación
HLT parada
WAIT espera
LOCK bloquea
ESC escape
Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la
memoria principal, de y a los registros de datos, puertos de E/S y registros de
segmentación. Las instrucciones de transferencia de datos son las siguientes:
MOV transfiere
XCHG intercambia
IN entrada
OUT salida
TEST verifica
CMP compara
JMP salta
Debug
Cada línea comienza con una letra clave posiblemente seguida de otra información.
Todos los números están en hexadecimal.
Por lo general, puede omitir los espacios en blanco - a veces es necesario hacerlo.
A continuación, se muestra un resumen de comandos. Las piezas que comienzan con / / son las
explicaciones no parte de los comandos. La notación xxxx representa un número hexadecimal
arbitrario (podría ser menos dígitos).
q / / quit DEBUG
Sin embargo, note: NO hay etiquetas de dirección. Se dan las direcciones en hexadecimal.
g / / Ejecuta el programa hasta que sale (o nunca). Los valores de registro se muestran no son los que
dan al final de la ejecución de su programa.
r nn / / Donde nn es un nombre de registro. Muestra el valor actual del registro y luego a: Puede
escribir un nuevo valor para el registro y, a continuación, presione ENTRAR. O simplemente se
presiona Enter para salir del valor anterior sin cambios
a / xxxx / Empieza a traducir las líneas de lenguaje ensamblador en ML y poner la instrucción ML por
primera vez en la dirección xxxx. Las líneas siguientes de AL irán a las direcciones de la máquina
posterior. Al pulsar Intro en una línea vacía AL saldrá de este "mini-ensamblador modo".
e xxxx / / Inicia el examen de bytes individuales a partir de la uno a la dirección xxxx. Si escribe un
espacio que pasa al siguiente byte. Si escribe un número hexadecimal, se cambia el byte de edad en lo
que ha escrito. Si se pulsa enter, sale este "examinar" el modo.
NSSS / / ¿Dónde sss es uno o más caracteres ASCII dando un nombre de archivo? Este sss registros
como el nombre de archivo predeterminado.
l / / Esta es la carta de él, NO la de un dígito. Esto carga el archivo con el nombre de archivo
Emular . Pero también se puede utilizar para cargar ejecutables emuladores incluso si usted no
tiene el código
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su
estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
Los programas hechos, por un programador experto, en lenguaje ensamblador, son generalmente
mucho
más rápidos y consumen menos recursos del sistema (memoria RAM y ROM.)- (utilizados en
programación de juegos)
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un
microprocesador ya que, se dispone de instrucciones del CPU que generalmente no están en los
lenguajes de alto nivel.
.
model small
.stack 64
.data
numero2 db 0
suma db 0 resta db
0 multiplicacion db
0 division db 0
modulo db
msjn1 db 10,13, "Ingrese el primer numero= ",'$';ingrese n1
msjn2 db 10,13, "Ingrese el segundo numero= ",'$';ingrese n2
.code
mov ds,ax
mov ah, 09
lea dx, msjn1
int 21h
mov ah, 01
int 21h
mov numero1,al
mov ah, 09
lea dx, msjn2
int 21h
mov ah, 01
int 21h
mov numero2,al
;operaciones aritmeticas
;SUMA
mov al,numero1
add al,numero2
mov suma,al
;RESTA
mov al,numero1
sub al,numero2
mov resta,al
;MULTIPLICACION
mov al,numero1
mul numero2
mov multiplicacion,al
;DIVISION
mov al,numero1
div numero2
mov division,al
;MODULO
div numero2
mov modulo,ah
;mostrando la suma
mov ah,09
lea dx,msjnS
int 21h
mov dl,suma
add dl,30h
mov ah,02
int 21h
;mostrando la resta
mov ah,09
lea dx,msjnR
int 21h
mov dl,resta
add dl,30h
mov ah,02
int 21h
;mostrando la multiplicacion
mov ah,09
lea dx,msjnM
int 21h
mov dl,multiplicacion
add dl,30h
mov ah,02
int 21h
;mostrando la division
mov ah,09
lea dx,msjnD
int 21h
mov dl,division
add dl,30h
mov ah,02
int 21h
;mostrando el modulo
mov ah,09
lea dx,msjnMod
int 21h
mov dl,modulo
add dl,30h
mov ah,02
int 21h
mov ah,4ch
int 21h
begin endp
end
Esquemático de una PC-XT IBM (INTEL)
· Memoria
· Bus interno
* Enfermedad de Best
79
5 BIBLIOGRAFIA
Dario Alejandro, Los microprocesadores 8086 y 8088.
URL: https://www.alpertron.com.ar/8088.HTM
URL: http://uciencia.uma.es/Coleccion-cientifico-tecnica/Informatica/Galeria/Partes-de-un-PC-
IBM-XT-5160
URL: https://www.tecnologia-informatica.com/generaciones-computadoras-sexta-generacion/
URL: https://unicrom.com/historia-de-la-pc2/
URL:
79