Unidad I
Unidad I
Unidad I
Ensamblador
Lenguajes de Interfaz
Qu es un lenguaje ensamblador?
Debe parecer un poco lento el que el procesador trabaje slo con la memoria primaria,
cada byte a ser usado debe ser transferido y regresado. Esta memoria consiste de 14
palabras de memoria read-write. Cada una de estas palabras es llamada un registro y cada
registro tiene su propio nombre y propsito.
Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar
direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son
direccionables por medio de un nombre. Los bits por convencin, se numeran de derecha a
izquierda, como en:
... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Diagrama de bloque de los
microprocesadores Intel 8086 y 8088.
1. Bloque de registros de propsito
general
2. Bloque de registros de segmento
y registro IP
3. Sumador de direcciones
4. Bus de direcciones interno
5. Cola de instrucciones (4 bytes
para el 8088 y 6 bytes para el
8086)
6. Unidad de control (muy
simplificada)
7. Interfaz del bus
8. Bus de datos interno
9. Unidad aritmtico lgica (ALU)
10. 10, 11, 12 Bus de direcciones,
datos y control externos
Algunas caractersticas de los registros
internos
El ancho de los registros (en bits), determina cuanta informacin puede manejar.
Los registros de propsito general AX, BX, CX y DX son los caballos de batalla del
sistema.
Registros ndice
Los registros SI y DI estn disponibles para direccionamiento indexado y
para sumas y restas.
Registro SI. El registro ndice fuente de 16 bits es requerido por algunas
operaciones con cadenas (de caracteres). En este contexto, el SI est
asociado con el registro DS.
De los 16 bits del registro de banderas, nueve son comunes a toda la familia de
procesadores 8086, y sirven para indicar el estado actual de la mquina y el resultado
del procesamiento.
La pila es un rea de memoria importante y por ello tiene, en vez de uno, dos
registros que se usan como desplazamiento (offset) para apuntar a su contenido.
Se usan como complemento al registro y son:
SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador
para uso propio en instrucciones de manipulado de pila. Por lo general, el
programador no debe alterar su contenido.
BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su
provecho.
Indicadores (flags)
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms
significativos estn indefinidos, mientras que hay tres bits con valores determinados: los
bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno (esto tambin ocurra en los
procesadores anteriores).
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o
"prstamo" (en caso de resta) desde el bit de orden ms significativo del resultado. Este
indicador es usado por instrucciones que suman o restan nmeros que ocupan varios
bytes.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "prstamo"
del nibble (cuatro bits) menos significativo al nibble ms significativo. Este
indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operacin es cero.
SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los
nmeros negativos se representan en la notacin de complemento a
dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador est en modo paso a paso. En
este modo, la CPU automticamente genera una interrupcin interna
despus de cada instruccin, permitiendo inspeccionar los resultados del
programa a medida que se ejecuta instruccin por instruccin.
IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin externas
enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las
interrupciones no enmascarables y las internas siempre se reconocen
independientemente del valor de IF.
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con
signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es
mayor que el tamao del destino.
La memoria principal (RAM)
Se dicen "de acceso aleatorio" porque los diferentes accesos son independientes entre s.
Por ejemplo, si un disco rgido debe hacer dos accesos consecutivos a sectores alejados
fsicamente entre s, se pierde un tiempo en mover la cabeza hasta la pista deseada (o
esperar que el sector pase por debajo, si ambos estn en la misma pista), tiempo que no se
pierde en la RAM.
Existen dos tipos de memorias RAM: Las RAM estticas o SRAM y las RAM dinmicas o DRAM.
En una RAM esttica (SRAM) el valor almacenado en una celda se mantiene mediante un
par de inversores y, mientras se suministre electricidad, el valor puede mantenerse
indefinidamente.
En una RAM dinmica (DRAM), el valor almacenado en una celda se mantiene como una
carga en un condensador. Para acceder a la carga almacenada se usa slo un transistor,
tanto para leer el valor como para sobrescribirlo.
Las memorias se agrupan en mdulos, que se conectan a la placa base del computador.
Segn los tipos de conectores que lleven los mdulos, se clasifican en Mdulos SIMM (Single
In-line Memory Module), con 30 o 72 contactos, mdulos DIMM (Dual In-line Memory
Module), con 168 contactos y mdulos RIMM (RAMBUS In-line Memory Module) con 184
contactos.
Caractersticas de la RAM
La memoria RAM hace unos aos era muy cara, pero hoy en da su precio ha
bajado considerablemente.
El concepto de interrupciones
La interrupcin, desde el punto de vista del mecanismo que la activa, puede ser de
tipo:
Hardware
Software
Las interrupciones de hardware, estn asociadas generalmente a un dispositivo fsico (reloj
del sistema, perifrico) y consisten en la activacin de una lnea para dar a conocer a la
UCP la Aparicin del evento asociado.
Los perifricos cuentan con un nmero de interrupcin que se denomina IRQ (Peticiones de
Interrupcin). Es como si cada perifrico tirara de un "hilo" que est atado a una campana
para sealarle al equipo que desea que le preste atencin.
El operando de una instruccin de interrupcin como INT 05H identifica el tipo de solicitud.
Como existen 256 entradas, cada una de cuatro bytes, la tabla ocupa los primeros 1, 024
bytes de memoria, desde 000H hasta 3FFH. Cada direccin en la tabla relaciona a una
rutina de BIOS o del DOS para un tipo especfico de interrupcin. Por lo tanto los bytes 0-3
contienen la direccin para la interrupcin 0, los bytes 4-7 para la interrupcin 1, y as
sucesivamente:
Eventos de una Interrupcin
La direccin CS: IP entonces apunta al inicio de la rutina en el rea del BIOS, que
ahora se ejecuta. La interrupcin regresa va una instruccin IRET (regreso de
interrupcin), que saca de la pila el IP, CS y las banderas y regresa el control a la
instruccin que sigue al INT.
Tipos de interrupciones
Las interrupciones se dividen en dos tipos las cuales son: Externas e Internas. Una
interrupcin externa es provocada por un dispositivo externo al procesador. Las dos
lneas que pueden sealar interrupciones externas son la lnea de interrupcin no
enmascarable (NMI) y la lnea de peticin de interrupcin (INTR).
Las operaciones del DOS por lo general son ms fciles de usar que sus
contrapartes del BIOS y por lo comn son independientes de la maquina.
IO.SYS es una interfaz de nivel bajo con el BIOS que facilita la lectura de datos
desde la memoria hacia dispositivos externos.
MSDOS.SYS contiene un administrador de archivos y proporciona varios servicios.
Por ejemplo, cuando un programa usuario solicita la INT 21H, la operacin enva
informacin al MSDOS.SYS por medio del contenido de los registros. Para
completar la peticin, MSDOS.SYS puede traducir la informacin a una o ms
llamadas a IO.SYS, el cual a su vez llama al BIOS. Las siguientes son las relaciones
implcitas:
Interrupciones del DOS
Las interrupciones desde la 20H hasta la 3FH estn reservadas para operaciones del
DOS. A continuacin se mencionan algunas de ellas.
INT 20H: Termina programa. Finaliza la ejecucin de un programa .COM, restaura las
direcciones para Cltr + Break y errores crticos, limpia los bfer de registros y regresa
el control al DOS.
INT 21H: Peticin de funcin al DOS. La principal operacin del DOS necesita una
funcin en el AH.
INT 22H: Direccin de terminacin. Copia la direccin de esta
interrupcin en el PSP del programa (en el desplazamiento 0AH) cuando
el DOS carga un programa para ejecucin.
La interfaz entre el sistema operativo y los programas de usuarios est definida por el
conjunto de llamadas al sistema ofrecidas por el sistema operativo. Las llamadas al sistema
con que cuenta la interfaz varan de un sistema operativo a otro.
Puesto que el mecanismo real para emitir una llamada al sistema depende mucho de la
mquina y muchas veces debe de expresarse en cdigo ensamblador.
En cierto sentido, efectuar una llamada al sistema es como efectuar una llamada a un
procedimiento especial, solo que las llamadas al sistema entran al kernel y las llamadas a
procedimientos no.
Se trata de que una aplicacin ejecute una rutina del sistema operativo, con
objeto de que la rutina le preste un servicio.
Se considera que un registro base contiene una direccin base y que el campo
de direccin de la instruccin proporciona un desplazamiento en relacin con
esta direccin base.