You are on page 1of 7

ORGANIZACIN DE COMPUTADORAS Integrantes: Santiago Noboa, Jorge Herreria Nivel: 3 Sistemas Tema: Asembler 1.

INTRODUCCIN

Los ensambladores son programas que procesan los enunciados del programa origen en lenguaje ensamblador y los traducen en archivos en lenguaje mquina que son ejecutados por un microprocesador o un microcontrolador. Los ensambladores permiten que los programas origen se escriban y se editen en una computadora para generar un cdigo ejecutable en otra computadora. El archivo en lenguaje objeto ejecutable resultante se carga y se ejecuta en el sistema destino. Asembler es un cdigo que maneja las funciones del procesador, memoria, mediante lneas de comando, es el primer lenguaje de programacin, base para los developers actuales como C++, Visual Basic, C# entre otros. 2. DEFINICIN BSICA DE UN ENSAMBLADOR El lenguaje simblico que se utiliza para codificar los programas origen que se procesan por el ensamblador es llamado lenguaje ensamblador. Este lenguaje es una coleccin de smbolos mnemnicos que representan: operaciones (mnemnicos de instrucciones para la mquina o de directrices para el ensamblador), nombres simblicos, operadores y smbolos especiales. El lenguaje ensamblador proporciona cdigos de operacin de los mnemnicos para todas las instrucciones de la mquina contenidas en la lista de instrucciones. Adems, el lenguaje ensamblador contiene mnemnicos directrices, los cuales especifican acciones auxiliares que se llevan a cabo por el ensamblador. Estas directrices no siempre son traducidas a lenguaje maquina. Un programador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII. Una vez que el cdigo origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a travs de algn ensamblador. 1

3. ESTRUCTURA DE UN PROGRAMA ; HOLA.ASM


; Programa clasico de ejemplo. Despliega una leyenda en pantalla. STACK STACK DATA SALUDO DATA CODE INICIO: MOV AX,DATA MOV DS,AX MOV DX,OFFSET SALUDO MOV AH,09H INT INT CODE 21H 21H ENDS ; Marca fin y define INICIO MOV AH,4CH SEGMENT STACK DW ENDS SEGMENT DB ENDS SEGMENT ; Segmento de Codigo ; Punto de entrada al programa ; Pone direccion en AX ; Pone la direccion en los registros ; Obtiene direccion del mensaje ; Funcion: Visualizar cadena ; Servicio: Funciones alto nivel DOS ; Funcion: Terminar ASSUME CS:CODE, DS:DATA, SS:STACK ; Segmento de datos "Hola mundo!!",13,10,"$" ; Cadena 64 DUP (?) ; Segmento de pila ; Define espacio en la pila

END INICIO

4. INSTRUCCIONES BSICAS
20 - ADD [mem]: Sumar: AX = AX + el contenido de la direccin de memoria 60 - ADDF [mem]: Suma nmeros de 32 bits: En BX y AX queda el resultado de la suma de estos ms el contenido de [mem] y mem+1 11 - AND [dest,orig]: Y lgico, hace un Y lgico entre todos los bits de los dos operandos escribiendo el resultado en el destino. Los parmetros pueden ser direcciones de memoria o Registros. 04 - CLA: Hace AX = 0 25 - CLC: Limpia el Carry Flag. C = 0 27 - CMC: Complementa (invierte) el Carry Flag. Si C = 1 vuelve C = 0 y viceversa. 32 - CMP [mem]: Compara AX con [mem], si AX es mayor, Z=0 N=0, si es igual Z=1 N=0, si es menor Z=0 N=1 09 - DEC [dest]: Decremento en 1 el destino especificado (Si el destino queda = 0, se vuelve Z = 1) 23 - DIV [mem]: Dividir: AX = AX / el contenido de la direccin de memoria, BX=AX % el contenido de la dir de memoria (BX = modulo o residuo). 63 - DIVF [mem]: Division: BX y AX = BX y AX / [mem]y mem+1, en CX queda el residuo de la division en entero de 16 bits 41 - EAP: Escribe en Pantalla el contenido del registro AX

65 - FTOI: Conversin de Real a Entero: Convierte un nmero Real(32bits) a su equivalente en entero BX y AX en un entero (16bits), el Resultado queda en AX. Los registros de control cambian de acuerdo al numero convertido: "Z" si el numero es cero, "N" si el numero es negativo, "O" si el numero real es mayor de 65535 99 HLT: Terminar Programa (todo programa lleva esta instruccin para indicarle al simulador que el programa ha terminado su ejecucin) 80 - IN [registro,Puerto]: Lleva al Registro el valor retornado por el puerto especificado 08 - INC [dest]: Incrementa en 1 el destino especificado, el parmetro puede ser una direccin de memoria o un registro. 64 ITOF: Conversin de Entero a Real: Convierte un nmero entero (16bits) almacenado en AX al mismo nmero pero representado en Real IEEE754(32bits), el Resultado de la conversin queda en BX (bits mas significativos) y AX. Los registros de control cambian de acuerdo al numero convertido: "Z" si el nmero es cero, "N" si el numero es negativo. 35 - JC [mem]: Saltar si el Carry Flag esta activado. Si C = 1, PC = contenido de memoria 31 - JEQ [mem]: Saltar si son iguales Si Z = 1, PC = contenido de la memoria. 34 - JMA [mem]: Saltar si es Mayor. Si Z = 0 y N = 0, PC = contenido de memoria. 33 - JME [mem]: Saltar si es Menor. Si N = 1, PC = contenido de la memoria 30 - JMP [mem]: Salto incondicional. PC = direccin de memoria donde esta la siguiente instruccin a ejecutar" 36 - JNC [mem]: Saltar si el Carry Flag no esta activado. Si C = 0, PC = contenido de memoria 39 - JNE [mem]: Saltar si no son iguales. Si Z = 0, PC = contenido de memoria 38 - JNO [mem]: Saltar si el Overflow Flag no esta activado. Si O = 0, PC = contenido de memoria 37 - JO [mem]: Saltar si el Overflow Flag esta Activado 01 - LDA [mem]: Cargue en AX el contenido de la direccin de Memoria especificada. (hay casos donde es mejor usar MOV si se desea pasar datos sin tener que pasarlos por AX) 50 - LDB [mem]: La instruccin carga en AX el contenido de memoria almacenado en [mem] + BX 55 - LDF [mem]: Carga en BX y AX un numero de 32 bits (IEEE) que esta almacenado en la dir [mem] y mem+1. En BX quedan los digitos mas Significativos 40 LDT: Lee un valor del Teclado y lo lleva al registro AX 29 - LOOP [mem]: Decrementa CX y salta a la Pos de memoria si CX no es cero. 10 - MOV [dest,orig]: Copia el valor almacenado en el origen al destino. El destino y/o origen pueden ser registros o direcciones de memoria o combinacin de estos. 42 MSG: Muestra un mensaje en pantalla 22 - MUL [mem]: Multiplicar: AX = AX * el contenido de la direccin de memoria. (Si el nmero resultante supera su longitud en binario de 16 bits, este resultado se parte almacenando los bits ms significativos en el Registro BX.) 62 - MULF [mem]: Multiplicacin: BX y AX = BX y AX * [mem]y mem+1

90 NOP: Esta operacin no hace nada. 12 - NOT [destino]: NO lgico, invierte los bits del operando formando el complemento del primero. 13 - OR [dest,orig]: O inclusive lgico, todo bit activo en cualquiera de los operndoos ser activado en el destino 81 - OUT puerto,registro: Escribe en el puerto especificado, el valor del registro 07 - POP [registro]: Trae de la Pila el ltimo valor llevado por PUSH (indicado por el registro SP) y lo almacena en el registro especificado. 06 - PUSH [registro]: Enva el valor del registro especificado a la pila 15 - ROL [dest,veces]: Rota los bits a la izquierda las veces especificadas(en decimal), los bits que salen por la izquierda re-entran por la Derecha. En el Carry Flag queda el ltimo bit rotado. 16 - ROR [dest,veces]: Rota los bits a la derecha las veces especificadas(en decimal), los Bits que salen por la derecha re-entran por la izquierda. El Carry Flag guarda el ltimo bit rotado. 17 - SHL [dest,veces]: Desplaza los bits a la izquierda el numero de veces especificado(en decimal), agregando ceros a la derecha, el Carry Flag guarda ultimo bit desplazado. 18 - SHR [dest,veces]: Desplaza los bits a la Derecha el numero de veces especificado(en decimal), agregando ceros a la izquierda, el Carry Flag guarda ultimo bit desplazado. 02 - STA [mem]: Guarde el contenido de AX en la direccin de Memoria especificada 51 - STB [mem]: guarda el contenido de AX en la direccin [mem] + BX 26 STC: Pone el Carry Flag. C = 1 56 - STF [mem]: Guarda en [mem] y mem+1 el contenido de BX y AX 21 - SUB [mem]: Restar: AX = AX - el contenido de la direccin de memoria 61 - SUBF [mem]: Resta el numero de 32 bits: BX y AX = BX y AX - [mem] y mem+1 03 - XAB: Intercambia los valores de los registros AX y BX (Esta instruccin no necesita parmetros.) 14 - XOR [dest,orig]:O exclusivo, realiza un O exclusivo entre los operndos y almacena el resultado en destino.2

5. EJERCICIOS El siguiente cdigo es ejecutado en el simulador del procesador, simuproc

SUMA cla; ldt; mov 10,ax; msg +; ldt; add 10; msg =; eap ; hlt;

RESTA cla; ldt; mov B,ax; msg -; ldt; mov C,ax; mov ax,B; msg = sub C; eap; hlt;

MULTIPLICACIN cla; ldt; mov 9,ax; msg *; ldt; mul 9; msg =; eap ; hlt;

DIVISIN

cla; ldt; mov B,ax; msg /; ldt; mov C,ax; mov ax,B; div C; msg =; eap; hlt;

6. BIBLIOGRAFA Universidad Nacional de la Matanza (MANUAL DE SIMUPROC). 7. LINKOGRAFA http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC11.html http://homepage.mac.com/eravila/asmix862.html http://www.mitecnologico.com/Main/EstructuraProgramaEnEnsamblador
1 2

SimuProc

Introduccin a la Informtica

http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC11.html
Universidad Nacional de la Matanza SimuProc Introduccin a la Informtica (MANUAL DE SIMUPROC)

You might also like