Autor: José Núñez
Hablemos primero de la importancia del lenguaje ensamblador. Esta radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en él se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria.
Ventajas
- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.
- Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
- Flexibilidad. – Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina.
Características
- 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.
- El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
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) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
Partes del procesador
Partes Lógicas
Unidad de Control: Unidad encargada de Activar o Desactivar los diferentes componentes del procesador, igualmente se encarga de Interpretar y ejecutar las diferentes instrucciones almacenadas en la memoria principal.
Unidad Aritmética y Lógica: Se encarga de realizar la operación de transformación de datos, especialmente las operaciones matemáticas, el cual es denominado FPU
Registros: Se denominan a las áreas de almacenamiento temporal usadas durante la ejecución de las instrucciones.
Partes Físicas
- Encapsulado: Es lo que rodea a la oblea de silicio, dándole consistencia y protección para impedir su deterioro.
- Zócalo: Lugar donde se inserta el procesador, permitiendo la conexión con el resto del equipo.
- Chipset: Conjunto de Chips encargados del control de las determinadas funciones del equipo.
Definición de registros
Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas. Se utilizan para aumentar la velocidad de ejecución de los programas. Su función es la de almacenar datos, siendo la manera más rápida de hacerlo por el sistema. Los registros se miden en número de bits que almacenan. La CPU, en cambio, comparte un conjunto de localidades de almacenamiento temporal de datos de alta velocidad, denominada con el mismo nombre: registro.
Tipos de registros
- Registros de propósito especifico
- Almacenan información específica sobre el estado del sistema como el puntero de pila o el registro de estado.
- Permiten llevar un récord de estado del procesador en todo momento. Los más importantes son el contador de programa (PC), el registro de banderas, y el apuntador de pila (SP).
Función de los registros
Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un “registro de 8 bits” o un “registro de 32 bits “.
La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada registro. Algunos de los registros están dedicados al control, y solo la unidad de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos.
Para desarrollar algunas practicas de ejemplo utilizaremos el IDE emu 8086
- El emular 8086 pose una interfaz amistosa
- Es muy didáctico para empezar a programar en lenguaje ensamblador
Link de descarga: http://www.15dejuniomnr.com.ar/blog/apunteca/Ciclo%20Superior/ECA/Digital%202/Teoria/Conceptos%20Basicos%20Sobre%20la%20Programacion%20en%20Assembler.pdf

Registros básicos
- Dentro del conjunto básico de registros de control se deben incluir a los siguientes:
- Contador de programa (PC).
- Registro de direcciones de la memoria (MAR).
- Registro de datos (RD).
- Registro de instrucciones (IR).
- Palabra de estado de programa (PSW).
Vista principal IDE emu8086
Emu8086 cuenta con un set de instrucciones en el apartado de help (ayuda) que nos ayudaran para llevar acabo nuestra programación
El siguiente ejemplo muestra la estructura de un módulo principal usando directivas simplificadas en el IDE EMU8086:
Al emular el programa veremos nuestros registros, codigo ensablado,direccciones de memoria, flags, variables

Ejemplo realizar la suma y resta de registros de memoria, utilizando las intrucciones add y sub
Ejemplo sumar dos arreglos de 8 bits y sumarlos en un tercer arreglo