Componente práctico -
Procesador 8086 en lenguaje ensamblador
ESTUDIANTE: ANDRES FELIPE PIRA ARBOLEDA
TUTOR: ENEVIS RAFAEL REYES MORENO
UNIVERSIDAD NACIONAL ABIERTA A DISTANCIA
UNAD ECBTI
ARQUITECTURA DE COMPUTADORES
2024.
Contenido
Introducción al Procesador 8086 y su Lenguaje Ensamblador.........................................................3
Arquitectura del 8086..............................................................................................................3
Lenguaje Ensamblador 8086....................................................................................................3
Aplicaciones del 8086 y su Ensamblador..................................................................................4
Objetivo General..............................................................................................................................5
Objetivos Específicos................................................................................................................5
Enlace sustentación.........................................................................................................................5
Conclusiones....................................................................................................................................6
Referencias:.....................................................................................................................................7
Introducción al Procesador 8086 y su Lenguaje Ensamblador
El procesador 8086, introducido por Intel a principios de los años 80, marcó un hito en la
historia de la computación personal. Su arquitectura de 16 bits y su conjunto de
instrucciones x86 sentaron las bases para las generaciones posteriores de
microprocesadores y se convirtieron en el estándar de facto para la industria.
Arquitectura del 8086
El 8086 es un microprocesador de propósito general con una arquitectura de Von
Neumann, lo que significa que comparte una única unidad de memoria tanto para datos
como para instrucciones. Sus principales características arquitectónicas incluyen:
Registro de 16 bits: El 8086 utiliza registros de 16 bits para almacenar datos y
direcciones de memoria.
Segmentación de memoria: La memoria se divide en segmentos de 64 KB, lo que
permite un direccionamiento de hasta 1 MB.
Conjunto de instrucciones: El 8086 cuenta con un amplio conjunto de instrucciones que
permiten realizar operaciones aritméticas, lógicas, de transferencia de datos y de control
de flujo.
Modos de direccionamiento: Ofrece varios modos de direccionamiento, como el
direccionamiento directo, indirecto, indexado y basado en registros, lo que brinda
flexibilidad en el acceso a la memoria.
Interrupciones: Permite la gestión de eventos externos a través de un mecanismo de
interrupciones.
Lenguaje Ensamblador 8086
El lenguaje ensamblador es el lenguaje de programación de bajo nivel más cercano al
código máquina. Cada instrucción en ensamblador se corresponde directamente con una
instrucción en código máquina. El ensamblador 8086 proporciona una forma más legible
y comprensible de programar el microprocesador, en comparación con el código máquina
binario.
Características del ensamblador 8086:
Mnemónicos: Utiliza mnemónicos para representar las instrucciones del procesador, lo
que facilita su lectura y escritura.
Directivas: Las directivas son instrucciones para el ensamblador, como la definición de
datos, la reserva de memoria y el control del ensamblado.
Macros: Permiten definir secuencias de instrucciones que pueden ser reutilizadas en
diferentes partes del programa.
Dependencia de la arquitectura: El ensamblador 8086 está estrechamente ligado a la
arquitectura del procesador, lo que significa que el código generado es específico para
este microprocesador.
Ventajas de programar en ensamblador:
Máximo control sobre el hardware: Permite un control preciso sobre el hardware y la
optimización de código a nivel de instrucción.
Eficiencia: Los programas en ensamblador suelen ser más rápidos y eficientes en
términos de uso de recursos que los programas escritos en lenguajes de alto nivel.
Tamaño de código reducido: Los programas en ensamblador generan código máquina
más compacto.
Desventajas de programar en ensamblador:
Complejidad: La programación en ensamblador requiere un conocimiento profundo de
la arquitectura del procesador y de los detalles de bajo nivel.
Portabilidad: El código ensamblador es altamente específico para una arquitectura
determinada, lo que dificulta su portabilidad a otras plataformas.
Desarrollo lento: La programación en ensamblador es más lenta y tediosa que en
lenguajes de alto nivel.
Aplicaciones del 8086 y su Ensamblador
A pesar de que el 8086 es un procesador relativamente antiguo, su estudio sigue siendo
relevante por varias razones:
Fundamentos de la arquitectura de computadoras: Comprender el 8086 proporciona
una base sólida para entender las arquitecturas de procesadores más modernas.
Desarrollo de sistemas embebidos: El ensamblador se utiliza en el desarrollo de
sistemas embebidos donde se requiere un alto grado de control sobre el hardware y una
eficiencia máxima.
Optimización de código: Los programadores pueden aplicar los conocimientos
adquiridos en ensamblador para optimizar el código generado por compiladores de alto
nivel.
Educación: El 8086 se utiliza como herramienta educativa para enseñar los principios
básicos de la arquitectura de computadoras y la programación a bajo nivel.
Objetivo General
Analizar en profundidad la arquitectura y el funcionamiento del procesador 8086,
así como las características y aplicaciones del lenguaje ensamblador 8086, con el fin de
comprender los fundamentos de la programación a bajo nivel y su relevancia en el
desarrollo de sistemas embebidos y la optimización de código.
Objetivos Específicos
1. Investigar y documentar la arquitectura del procesador 8086, incluyendo sus registros,
modos de direccionamiento, conjunto de instrucciones y mecanismos de control de flujo,
con el objetivo de comprender su funcionamiento interno y las limitaciones inherentes a
esta arquitectura.
2. Desarrollar y ejecutar programas en lenguaje ensamblador 8086 para realizar tareas
sencillas y complejas, como operaciones aritméticas, manejo de cadenas de caracteres,
control de dispositivos de entrada/salida y gestión de interrupciones, con el fin de
adquirir habilidades prácticas en programación a bajo nivel y evaluar la eficiencia del
código generado.
Enlace sustentación
https://youtu.be/4O2RW-2aMEI?si=bsW4SZmrDk0EGESw
Conclusiones
La programación en lenguaje ensamblador, a pesar de su complejidad, sigue siendo
una herramienta valiosa para optimizar el rendimiento de aplicaciones y
comprender a fondo el funcionamiento interno de los sistemas informáticos. A pesar
del avance de los lenguajes de alto nivel y los compiladores optimizados, hay situaciones
en las que la programación en ensamblador es indispensable, como en el desarrollo de
sistemas embebidos con restricciones de recursos o en la optimización de secciones
críticas de código. El conocimiento del ensamblador permite al programador aprovechar
al máximo las características del hardware y evitar las ineficiencias introducidas por los
compiladores.
El estudio del procesador 8086 y su lenguaje ensamblador proporciona una base
sólida para comprender las arquitecturas de procesadores más modernas y los
principios fundamentales de la programación a bajo nivel. A pesar de que los
procesadores actuales son mucho más complejos que el 8086, comparten muchos
conceptos en común, como los registros, los modos de direccionamiento y el conjunto de
instrucciones. Al comprender la arquitectura del 8086, se facilita la transición a
arquitecturas más modernas y se adquiere una perspectiva más amplia sobre el
funcionamiento de los sistemas informáticos.
Referencias:
Rocabado Moreno, S. H. & Arias Figueroa, D. A. (2016). Arquitectura y
organización de la computadora: microprocesadores y programación assembler.
(P. 14-20). D - Editorial de la Universidad Nacional de La Plata. https://elibro-
net.bibliotecavirtual.unad.edu.co/es/ereader/unad/77190?page=14
Castro Gil, M. (2014). Estructura y tecnología de computadores I (Gestión y
Sistemas). (P. 342-351). UNED - Universidad Nacional de Educación a Distancia.
https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/48716?page=342
Rocabado Moreno, S. H. & Arias Figueroa, D. A. (2016). Arquitectura y
organización de la computadora: microprocesadores y programación assembler.
(P. 41-52). D - Editorial de la Universidad Nacional de La Plata. https://elibro-
net.bibliotecavirtual.unad.edu.co/es/ereader/unad/77190?page=41
Mahout, V. (2012). Assembly Language Programming: ARM Cortex-M3.(P. 75-
98). Wiley https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/
unadenglish/186619?page=75