Programas sencillos en lenguaje ensamblador 8086 con explicación

La programación a nivel de ensamblaje es muy importante para el diseño de sistemas integrados de bajo nivel y se utiliza para acceder a las instrucciones del procesador para manipular el hardware. Es el lenguaje de nivel de máquina más primitivo que se usa para crear un código eficiente que consume menos ciclos de reloj y requiere menos memoria en comparación con el lenguaje de programación de alto nivel. Es un lenguaje de programación completo orientado al hardware para escribir un programa que el programador necesita saber sobre el hardware integrado. Aquí proporcionamos los conceptos básicos de la programación de nivel de ensamblaje 8086.


8086 programación de nivel de ensamblaje
Índice de Contenido
  1. 8086 programación de nivel de ensamblaje
  2. Arquitectura del procesador 8086
    1. Programas sencillos en lenguaje ensamblador 8086
    2. Programas en lenguaje ensamblador del microprocesador 8086

8086 programación de nivel de ensamblaje

El lenguaje de programación ensamblador es un lenguaje de bajo nivel desarrollado usando mnemónicos. El microcontrolador o el microprocesador solo pueden entender lenguaje binario como 0 o 1. Por lo tanto, el ensamblador convierte el lenguaje ensamblador en lenguaje binario y lo almacena en la memoria para realizar las tareas. Antes de escribir el programa, los diseñadores integrados deben tener suficiente conocimiento sobre el hardware particular del controlador o la CPU, por lo que primero debemos conocer el hardware de la CPU 8086.

hardware de la CPU
hardware de la CPU

Arquitectura del procesador 8086

El 8086 es un procesador que se representa para todos los periféricos, como bus serie, RAM y ROM, dispositivos de E/S, etc., todos conectados externamente a la CPU mediante un bus de sistema. El microprocesador 8086 tiene una arquitectura basada en CISC y tiene periféricos como 32 E/S, comunicación serial, memorias y contadores/temporizadores. El microprocesador necesita un programa para realizar las operaciones que requieren memoria para leer y guardar funciones.

Arquitectura del procesador 8086
Arquitectura del procesador 8086

La programación en el nivel de ensamblaje 8086 se basa en registros de memoria. Un registro es la parte principal de los microprocesadores y controladores ubicados en la memoria que proporciona una forma más rápida de recopilar y almacenar datos. Si queremos manipular datos a un procesador o controlador realizando multiplicaciones, sumas, etc., no podemos hacerlo directamente en la memoria donde necesitamos registros para procesar y almacenar los datos. El microprocesador 8086 contiene diferentes tipos de registros los cuales se pueden clasificar de acuerdo a sus instrucciones tales como;

Registros de propósito general: El procesador 8086 está compuesto por 8 registros de propósito general y cada registro tiene su propio nombre como se muestra en la figura, como AX, BX, CX, DX, SI, DI, BP, SP. Todos estos son registros de 16 bits donde cuatro registros se dividen en dos partes, como AX, BX, CX y DX, que se utilizan principalmente para contener números.

Registros de propósito especial: el procesador 8086 consta de 2 registros de funciones especiales, como los registros de IP y Flag. El registro IP apunta a la instrucción de ejecución y siempre trabaja para congregarse con el registro del segmento CS. La función principal de los registros de bandera es modificar las operaciones del procesador después de que se completan las funciones mecánicas y no podemos acceder directamente
Registros de segmento: el procesador 8086 se compone de 4 registros de segmento, como CS, DS, ES, SS, que se utilizan principalmente para almacenar datos en registros de segmento y podemos acceder al bloque de memoria utilizando registros de segmento.

Programas sencillos en lenguaje ensamblador 8086

La programación en lenguaje ensamblador 8086 tiene algunas reglas como

  • El código de programación de nivel de ensamblaje 8086 debe escribirse en mayúsculas
  • Las etiquetas deben ir seguidas de dos puntos, por ejemplo: etiqueta:
  • Todas las etiquetas y símbolos deben comenzar con una letra
  • Todos los comentarios se escriben en minúsculas.
  • La última línea del programa debe terminar con la directiva END

Los procesadores 8086 tienen otras dos instrucciones para acceder a los datos, como WORD PTR - para palabra (dos bytes), BYTE PTR - para byte.

Código de operación y operando
Código de operación y operando

Codigo de transacción: Una sola instrucción se llama como un código de operación que puede ser ejecutado por la CPU. Aquí, la instrucción 'MOV' se denomina código de operación.

operandos: Los datos de una sola pieza se denominan operandos que pueden ser operados por el código de operación. Ejemplo, la operación de resta es realizada por los operandos que son restados por el operando.
Sintaxis: SUB b, c

Programas en lenguaje ensamblador del microprocesador 8086

Escribir un programa para leer un caracter del teclado

MOV ah, 1h // teclear subrutina
INT 21h // ingresa caracteres
// el carácter se almacena en al
MOV c, al //copiar carácter de alto c

Escribir un programa para leer y mostrar un carácter.

MOV ah, 1h // teclear subrutina
INT 21h //leer el caracter en al
MOV dl, al //copia el carácter en dl
MOV ah, 2h // subrutina de salida de caracteres
INT 21h // mostrar caracter en dl

Escribir un programa usando registros de propósito general

ORG 100h
MOV AL, VAR1 // comprueba el valor de VAR1 moviéndolo a AL.
LEA BX, VAR1 //obtiene la dirección de VAR1 en BX.
MOV BYTE PTR [BX]44h // modificar el contenido de VAR1.
MOV AL, VAR1 //comprueba el valor de VAR1 moviéndolo a AL.
RETIRADO
VAR1 DB 22h
FINAL

Escriba un programa para mostrar la cadena usando funciones de biblioteca

incluir emu8086.inc //Declaración de macro
ORG 100h
IMPRIMIR "¡Hola mundo!"
GOTOXY 10.5
PUTC 65 // 65 - es un código ASCII para 'A'
PUTC 'B'
RET //volver al sistema operativo.
END //directiva para detener el compilador.

Instrucciones aritméticas y lógicas.

Los procesos de unidades aritméticas y lógicas 8086 se separaron en tres grupos, como la operación de suma, división e incremento. La mayoría de las instrucciones aritméticas y lógicas afectan el registro de estado del procesador.

Los mnemónicos de programación del lenguaje ensamblador 8086 están en forma de códigos de operación, como MOV, MUL, JMP, etc., que se utilizan para realizar las operaciones. Programación en lenguaje ensamblador 8086 ejemplos

Suma
ORG0000h
MOV DX, #07H // mover el valor 7 al registro AX//
MOV AX, #09H // mueve el valor 9 al acumulador AX //
Agregue AX, 00H // agregue el valor CX con el valor R0 y almacene el resultado en AX //
FINAL
Multiplicación
ORG0000h
MOV DX, #04H // mueve el valor 4 al registro DX //
MOV AX, #08H // mueve el valor 8 al acumulador AX //
MUL AX, 06H // El resultado multiplicado se almacena en el acumulador AX //
FINAL
resta
ORG 0000h
MOV DX, #02H // mueve el valor 2 al registro DX //
MOV AX, #08H // mueve el valor 8 al acumulador AX //
SUBB AX, 09H // El valor del resultado se almacena en el acumulador AX //
FINAL
División
ORG 0000h
MOV DX, #08H // mueve el valor 3 al registro DX //
MOV AX, #19H // mueve el valor 5 al acumulador AX //
DIV AX, 08H // el valor final se almacena en el acumulador AX //
FINAL

Por lo tanto, se trata de programación de nivel de ensamblaje 8086, programas de ejemplo de arquitectura de procesador 8086 simple para procesadores 8086, instrucciones aritméticas y lógicas.

Si quieres conocer otros artículos parecidos a Programas sencillos en lenguaje ensamblador 8086 con explicación puedes visitar la categoría Generalidades.

¡Más Contenido!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir