PDF de programación - Manual de programación en Ensamblador 8086

Imágen de pdf Manual de programación en Ensamblador 8086

Manual de programación en Ensamblador 8086gráfica de visualizaciones

Actualizado el 12 de Mayo del 2021 (Publicado el 27 de Febrero del 2018)
1.207 visualizaciones desde el 27 de Febrero del 2018
166,0 KB
17 paginas
Creado hace 15a (09/11/2005)
MANUAL DE PROGRAMACIÓN
EN ENSAMBLADOR 8086


ALUMNO: SANTIAGO SÁNCHEZ GONZÁLEZ
TITULACIÓN: I.T.I. SISTEMAS
ARQUITECTURA DE COMPUTADORES I

















ÍNDICE:



PÁGINA


Introducción al ensamblador..............................................................................2
Procesos para la creación de un programa.........................................................2
Registros internos de la Unidad Central de Proceso (UCP)...............................2
Segmentos y registros asociados........................................................................4
Software necesario..............................................................................................4
La estructura del ensamblador............................................................................5
Técnicas de codificación en ensamblador..........................................................5
Ejemplo Práctico de un programa en ensamblador............................................6
Interrupciones.....................................................................................................6
Internas del Hardware....................................................................................7
Externas del Hardware...................................................................................7
Interrupciones Software.................................................................................7
Saltos, ciclos y procedimientos...........................................................................8
Movimiento de los datos.....................................................................................8
Instrucción MOV...........................................................................................9
Operaciones lógicas y aritméticas.....................................................................10
Operaciones aritméticas...............................................................................10
Operaciones lógicas.....................................................................................11
Apéndice de interrupciones..............................................................................12
Apéndice del juego de instrucciones del 8086.................................................13


INTRODUCCIÓN AL ENSAMBLADOR:

El lenguaje ensamblador es el sistema alfanumérico para escribir código máquina mediante
expresiones abreviadas (mnemotécnicos).
La compilación es más complicada porque incluye la conversión de operaciones matemáticas
complejas, comandos de lenguaje natural o tipos de comandos complejos.
Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto
nivel (LAN) puede ser compilado en distintas máquinas.
Es usado principalmente porque hay aplicaciones o programas que deben tratar directamente con los
registros de la máquina, la memoria, dispositivos de E/S, etc.

PROCESOS PARA LA CREACIÓN DE UN PROGRAMA:

Para la creación de un programa es necesario seguir cinco pasos: Diseño del algoritmo, codificación
del mismo, su traducción a lenguaje máquina, la prueba del programa y la depuración. En la etapa de
diseño se plantea el problema a resolver y se propone la mejor solución, creando diagramas
esquemáticos utilizados para el mejor planteamiento de la solución. La codificación del programa
consiste en escribir el programa en algún lenguaje de programación (en este caso en ensamblador
8086), tomando como base la solución propuesta en el paso anterior. La traducción al lenguaje
máquina es la creación del programa objeto, esto es, el programa escrito como una secuencia de ceros
y unos que pueda ser interpretado por el procesador. La prueba del programa consiste en verificar que
el programa funcione sin errores, o sea, que haga lo que tiene que hacer. La última etapa es la
eliminación de las fallas detectadas en el programa durante la fase de prueba. La corrección de una
falla normalmente requiere la repetición de los pasos comenzando desde el primero o el segundo. Para
crear un programa en ensamblador utilizararemos el debugger, que se encuentra en cualquier PC con
el sistema operativo MS-DOS, lo cual lo pone al alcance de cualquier usuario que tenga acceso a una
máquina con estas características. Debug solo puede crear archivos con extensión .EXE, y por las
características de este tipo de programas no pueden ser mayores de 64 kb, además deben comenzar en
el desplazamiento, offset, o dirección de memoria 0100Hh dentro del segmento específico.

REGISTROS INTERNOS DE LA UNIDAD CENTRAL DE PROCESO (UCP):

La UCP o CPU tiene 14 registros internos, cada uno de ellos de 16 bits (una palabra). Los bits están
enumerados de derecha a izquierda, de tal modo que el bit menos significativo es el bit 0.
Los registros se pueden clasificar de la siguiente forma:

Registros de datos:
AX: Registro acumulador. Es el principal empleado en las operaciones aritméticas.
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones aritméticas.
Estos registros son de uso general y también pueden ser utilizados como registros de 8 bits, para
utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto
(high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y
DX.







2


Registros de segmentos:
CS: Registro de segmento de código. Contiene la dirección de las instrucciones del programa.
DS: Registro segmento de datos. Contiene la dirección del área de memoria donde se encuentran los
datos del programa.
SS: Registro segmento de pila. Contiene la dirección del segmento de pila. La pila es un espacio de
memoria temporal que se usa para almacenar valores de 16 bits (palabras).
ES: Registro segmento extra. Contiene la dirección del segmento extra. Se trata de un segmento de
datos adicional que se utiliza para superar la limitación de los 64Kb del segmento de datos y para
hacer transferencias de datos entre segmentos.

Registros punteros de pila:

SP: Puntero de la pila. Contiene la dirección relativa al segmento de la pila.
BP: Puntero base. Se utiliza para fijar el puntero de pila y así poder acceder a los elementos de la
pila.

Registros índices:

SI: Índice fuente.
DI: Índice destino.

Puntero de instrucciones:

IP: Registro puntero de instrucción o contador de programa (PC). Contiene el desplazamiento de la
siguiente instrucción a ejecutar respecto al segmento de código en ejecución. Por lo tanto, la dirección
completa de la siguiente instrucción sería CS:IP. La única forma de influir en este registro es de forma
indirecta mediante instrucciones de bifurcación.

Registro de banderas (flags):

Cada bandera es un bit y se usa para registrar la información de estado y de control de las
operaciones del microprocesador. Hay nueve banderas (los 7 bits restantes no se utilizan):
Banderas de estado: Registran el estado del procesador, normalmente asociado a una comparación o a
una instrucción aritmética.
CF: Bandera de acareo.
OF: Bandera de desbordamiento (aritmético).
ZF: Bandera de resultado 0 o comparación igual.
SF: Bandera de resultado o comparación negativa.
PF: Bandera de paridad (número par de bits).
AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con números
BCD.
Banderas de control:
DF: Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres
incrementando o decrementando automáticamente los registros índices (SI y DI)
IF: Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los dispositivos
externos.





3

TF: Bandera de atrape. Controla la operación de modo paso a paso (usada por el programa DEBUG).

SEGMENTOS Y REGISTROS ASOCIADOS:



La arquitectura de los procesadores x86 obliga al uso de segmentos de memoria para manejar la
información, el tamaño de estos segmentos es de 64kb. La razón de ser de estos segmentos es que,
considerando que el tamaño máximo de un número que puede manejar el procesador esta dado por una
palabra de 16 bits o registro, no sería posible accesar a más de 65536 localidades de memoria
utilizando uno solo de estos registros, ahora, si se divide la memoria de la pc en grupos o segmentos,
cada uno de 65536 localidades, y utilizamos una dirección en un registro exclusivo para localizar cada
segmento, y entonces cada dirección de una casilla específica la formamos con dos registros, nos es
posible acceder a una cantidad de 4294967296 bytes de memoria, lo cual es, en la actualidad, más
memoria de la que veremos instalada en una PC. Para que el ensamblador pueda manejar los datos es
necesario que cada dato o instrucción se encuentren localizados en el área que corresponde a sus
respectivos segmentos. El ensamblador accede a esta información tomando en cuenta la localización
del segmento, dada por los registros DS, ES, SS y CS, y dentro de dicho registro la dirección del dato
específico. Es por ello que cuando creamos un programa empleando el Debug en cada línea que vamos
ensamblando aparece algo parecido a lo siguiente:
1CB0:0102 MOV AX,BX
En donde el primer número, 1CB0, corresponde al segmento de memoria que se está utilizando, el
segundo se refiere la la dirección dentro de dicho segmento, y a continuación aparecen las
instrucciones qu
  • Links de descarga
http://lwp-l.com/pdf9080

Comentarios de: Manual de programación en Ensamblador 8086 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad