1.1
IMPORTANCIA DE LA PROGRAMACIÓN EN LENGUAJE
ENSAMBLADOR
El lenguaje
ensamblador como cualquier lenguaje de programación es un conjunto de palabras
que le indican al ordenador lo que tiene que hacer. Sin embargo la diferencia
fundamental es que cada instrucción escrita en lenguaje ensamblador tiene una
correspondencia exacta con una operación en el procesador. Por lo que son
operaciones muy sencillas tales como: “Cargar 32 en el registro BX” o
“Transferir el contenido del registro CL al CH”. Así pues, las palabras del
lenguaje ensamblador son nemotécnicas que representan el código máquina,
lenguaje que entiende el procesador.
En el
8086/88 se definen los siguientes tamaños de datos:
4 bits -
nibble
8 bits -
byte
16 bits -
word
32 bits –
dword
1.2 EL
PROCESADOR Y SUS REGISTROS
La Unidad Central
de Proceso (CPU, por sus siglas en
inglés) tiene 14 registros internos cada uno
de 16 bits. Los primeros cuatro, AX, BX, CX y DX,
son de uso general y se pueden usar también como registros
de 8 bits. Es decir, AX se puede
dividir en AH y AL (AH es
el byte alto, high, y AL es el byte
bajo, low) Lo mismo es aplicable a los otros
tres (BX en BH y BL, CX en CH y CL y DX en DH y DL)
Estos son
los únicos registros que pueden usarse de modo dual (en 8 o 16 bits)
Los
registros de la CPU son conocidos por sus nombres propios, que son:
AX
(acumulador)
BX
(registro base)
CX
(registro contador)
DX
(registro de datos)
DS
(registro del segmento de datos)
ES
(registro del segmento extra)
SS
(registro del segmento de pila)
CS
(registro del segmento de código)
BP
(registro de apuntadores base)
SI
(registro índice fuente)
DI
(registro índice destino)
SP
(registro del apuntador de pila)
IP
(registro del apuntador de siguiente instrucción)
F
(registro de banderas)
El
registro AX se usa para almacenar resultados, lectura o
escritura desde o hacia los puertos.
El BX sirve
como apuntador base o índice.
El CX se
utiliza en operaciones de iteración, como un contador que automáticamente se
incrementa o decrementa de acuerdo con el tipo de instrucción usada.
El DX se
usa como puente para el acceso de datos.
El DS es
un registro de segmento cuya función es actuar como policía donde se encuentran
los datos. Cualquier dato, ya sea una variable inicializada o no, debe estar
dentro de este segmento. La única excepción es cuando tenemos programas del
tipo *.com, ya que en éstos sólo puede existir un segmento. El registro ES
tiene el propósito general de permitir operaciones sobre cadenas, pero también
puede ser una extensión del DS
Ejemplo de
código usando AX, DS y DX:
.MODEL SMALL
.STACK
.DATA
CADENA1 DB
"HOLAMUNDO"."$"
.CODE
PROGRAMA:
MOV AX,@DATA
MOV DS, AX
MOV DX,
OFFSET CADENA1
MOV
AH, 9
INT
21H
END PROGRAMA
1.3
LA MEMORIA PRINCIPAL (RAM)
Este tipo de
memoria puede ser borrada y grabada las veces que deseemos. La única desventaja
es que la información grabada en ella solo puede ser utilizada mientras tenga
energía. En cuanto se corte la alimentación, los datos que se grabaron se
borrarán instantáneamente. Se usan solo como almacenamiento temporal.
1.4 EL
CONCEPTO DE INTERRUPCIONES
Una
interrupción es una situación especial que suspende la ejecución de un programa
de modo que el sistema pueda realizar una acción para tratarla. Tal situación se
da, por ejemplo, cuando un periférico requiere la atención del procesador para
realizar una operación de E/S.
Las
interrupciones constituyen quizá el mecanismo más importante para la conexión
del microcontrolador con el mundo exterior, sincronizando la ejecución de
programas con acontecimientos externos.
Ejemplos de
interrupciones
int
01h-->un solo paso
int
02h-->Interrupción no enmascarable
int
03h--> Punto de interrupción
int
04h-->Desbordamiento
int
05h-->Impresión de pantalla
int
08h-->Cronometro
int 15h-->Servicios
del sistema
int
16h-->Funciones de entrada del teclado
int
18h-->Entrada con el Basic de Rom
int
19h-->Cargador de arranque
int
20h-->Invoca al servicio de terminación de programa del DOS
int
21h-->Invoca a todos los servicios de llamada a función DOS
int
1Ah-->Leer y establecer la hora
int
1Bh-->Obtener el control con una interrupción de teclado.
int
2oh-->Terminar un programa
int
33h-->Funciones del Ratón
1.5
LLAMADAS AL SERVICIO DE SISTEMAS
Una llamada
al sistema es un método o función que puede invocar un proceso para solicitar
un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos
del sistema requiere la ejecución de código en modo privilegiado, el sistema
operativo ofrece un conjunto de métodos o funciones que el programa puede
emplear para acceder a dichos recursos. En otras palabras, el sistema operativo
actúa como intermediario, ofreciendo una interfaz de programación (API) que el
programa puede usar en cualquier momento para solicitar recursos gestionados
por el sistema operativo.
1.6 MODOS
DE DIRECCIONAMIENTO
Los modos de
direccionamiento indican la manera de obtener los operandos y son:
Direccionamiento
de registro
Direccionamiento
inmediato
Direccionamiento
directo
Direccionamiento
indirecto mediante registro
Direccionamiento
indirecto por registro base
Direccionamiento
indexado
Direccionamiento
indexado respecto a una base
El tipo de
direccionamiento se determina en función de los operandos de la instrucción.
La
instrucción MOV realiza transferencia de datos desde un
operando origen a un operando Su formato es el siguiente:
MOV
destino, origen
1.7
PROCESO DE ENSAMBLADO Y LIGADO
1. El
programa utiliza un editor de texto para crear un archivo de texto ASCII, conocido
como archivo de código fuente.
2. El
ensamblador lee el archivo de código fuete y produce un archivo de código
objeto, una traducción del programa a lenguaje máquina. De manera opcional,
produce un archivo de listado. Si ocurre un error, el programador debe regresar
al paso 1 y corregir el programa.
3. El
enlazador lee el archivo de código objeto y verifica si el programa contiene
alguna llamada a los procedimientos en una biblioteca de enlace. El enlazador
copia cualquier procedimiento requerido de la biblioteca de enlace, lo combina
con el archivo de código objeto y produce el archivo ejecutable. De manera
opcional, el enlazador puede producir un archivo de mapa.
4. La
herramienta cargador (loader) del sistema operativo lee el archivo ejecutable y
lo carga en memoria, y bifurca la CPU hacia la dirección inicial del programa,
para que éste empiece a ejecutarse.
1.8
DESPLEGADO DE MENSAJES DEL MONITOR
Todos los
gráficos y el texto que se muestran en el monitor se escriben en la RAM de
visualización de video, para después enviarlos al monitor mediante el
controlador de video. El controlador de video es en sí un microprocesador de
propósito especial, que libera a la CPU principal del trabajo de controlar el
hardware de video.
No hay comentarios.:
Publicar un comentario