Escolar Documentos
Profissional Documentos
Cultura Documentos
El binario
La informacin en una CPU se representa en binario, usando base 2. Un BIT es el elemento que representa el elemento bsico unidad. 1 nibble = (4 bits). Base del hexadecimal 1 byte = 8 bits o 2 nibbles 1 word = 16 bits o 2 bytes o 4 nibbles. Tamao usado para un registro de 16 bit.
Registros
Almacenan y mantienen la informacin. Tamaos de registros: 8,16 y 32 bit. Se especifican 4 tipos de registros bsicos y registros de control.
Registros de pila
Registros de control de pila, BP y SP. Se usan cuando manejamos una pila (stack).
Registros de ndice
Registros punteros de 16 bits. Para el uso de instrucciones que operan con cadenas de caracteres. Formados por el registro de ndice SI (origen) y el registro DI (destino). En versiones del 386 y superiores de Intel existen el ESI y EDI.
Otros
Existen otros registros de control. Registro IP (puntero de instruccin). Registro de estado (FLAGS), que contiene la informacin del estado de la CPU.
La pila (stack)
Tambin llamado LIFO (Last In First Out ), el ltimo que entra es el primero que sale. Si entran ms datos de los que puede almacenar se desborda.
Seis registros de propsito general son insuficientes para almacenar todos los valores requeridos para las operaciones en ensamblador. Para mantener dichos valores y recuperarlos se usa la Pila o stack.
Instrucciones. Ensamblador
La mayora de estas instrucciones se indican con tres letras en donde se especifica el tipo de instruccin y lleva asociada una serie de operandos separados por coma.
Ejemplo: para escribir en un registro utilizamos MOV Mov ax,10 ; escribe 10(decimal) en el registro ax Mov bx,20 ; escribe 20(decimal) en el registro bx Mov cx,30 ; escribe 30(decimal) en el registro cx Mov dx,40 ; escribe 40(decimal) en el registro dx
Instrucciones bsicas
La ms importante es la instruccin MOV. Mov: mueve un valor de un lugar a otro. MOV destino, origen Ejemplo:
mov ax,10 ; mueve un valor inmediato al registro ax mov bx,cx ; mueve un valor en registro desde cx a bx mov dx,Number ; mueve el valor memoria definido como Number a dx
Llamada a interrupcin
Una interrupcin es una operacin que invoca la ejecucin de una rutina especfica que suspende la ejecucin del programa que la llam.
El programa suspendido vuelve a activarse cuando termina la ejecucin de la interrupcin y son restablecidos los registros salvados.
Razones: Intencionalmente como peticin para la entrada o salida de datos de un dispositivo. Un error serio y no intencional, como un resultado de desbordamiento de la ALU o de divisin por cero. El control de estos servicios se hace a travs de la BIOS o del MS-DOS. Interrupciones software y hardware.
INT. Llama a una funcin del DOS o BIOS a travs de una subrutina para realizar un servicio especial:
Ejemplo: int 21h ; Llama a la interrupcin nmero 21 (hexadecimal) int 10h ; Llama a la interrupcin del Video en la BIOS
Las interrupciones tienen asociadas ms de un servicio, hay que pasarle el nmero de servicio deseado. Se utiliza el registro AH.
Ejemplo: usamos el servicio 9 de la interrupcin 21h que corresponde a la impresin de caracteres en pantalla. Hay que especificar antes lo que se va a escribir, para ello se hace uso de DS:DX que ser el puntero de la direccin fsica en memoria que indica dnde se encuentra la cadena.
Se hace uso de AX para generar la direccin fsica. mov dx, OFFSET Message ; DX contiene el offset de message mov ax,SEG Message ; AX contiene el segmento del message mov ds,ax ; DS:DX apunta a la direccin fsica del mensaje mov ah,9 ; carga el servicio 9 caracteres a pantalla int 21h ; llamada a la interrupcin de DOS
Las directivas OFFSET y SEG indican al compilador que el segmento y el offset de Message se usa para obtener la direccin fsica en memoria la cadena de datos. Message DB "Estructura y Tecnologa de Computadores. Prctica 1$"