Manual de Asembler
Manual de Asembler
Manual de Asembler
Nivel: 3 Sistemas
Tema: Asembler
1. INTRODUCCIÓN
Los ensambladores son programas que procesan los enunciados del programa origen en
lenguaje ensamblador y los traducen en archivos en lenguaje máquina que son ejecutados
por un microprocesador o un micro controlador.
Los ensambladores permiten que los programas origen se escriban y se editen en una
computadora para generar un código ejecutable en otra computadora. El archivo en
lenguaje objeto ejecutable resultante se carga y se ejecuta en el sistema destino.
Asembler es un código que maneja las funciones del procesador, memoria, mediante líneas
de comando, es el primer lenguaje de programación, base para los developers actuales
como C++, Visual Basic, C# entre otros.
El lenguaje simbólico que se utiliza para codificar los programas origen que se procesan
por el ensamblador es llamado lenguaje ensamblador.
Una vez que el código origen ha sido escrito, el archivo origen es ensamblado mediante su
procesamiento a través de algún ensamblador. 1
3. ESTRUCTURA DE UN PROGRAMA
; HOLA.ASM
; Programa clásico de ejemplo. Despliega una leyenda en pantalla.
4. INSTRUCCIONES BÁSICAS
60 - ADDF [mem]: Suma números de 32 bits: En BX y AX queda el resultado de la suma de estos más el
contenido de [mem] y mem+1
11 - AND [dest,orig]: Y lógico, hace un Y lógico entre todos los bits de los dos operandos escribiendo el
resultado en el destino. Los parámetros pueden ser direcciones de memoria o Registros.
04 - CLA: Hace AX = 0
25 - CLC: Limpia el Carry Flag. C = 0
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
99 – HLT: Terminar Programa (todo programa lleva esta instrucción para indicarle al simulador que el
programa ha terminado su ejecución)
08 - INC [dest]: Incrementa en 1 el destino especificado, el parámetro puede ser una dirección de memoria o
un registro.
64 – ITOF: Conversión de Entero a Real: Convierte un número entero (16bits) almacenado en AX al mismo
número pero representado en Real IEEE754(32bits), el Resultado de la conversión queda en BX (bits mas
significativos) y AX. Los registros de control cambian de acuerdo al numero convertido: "Z" si el número es
cero, "N" si el numero es negativo.
30 - JMP [mem]: Salto incondicional. PC = dirección de memoria donde esta la siguiente instrucción a
ejecutar"
01 - LDA [mem]: Cargue en AX el contenido de la dirección de Memoria especificada. (hay casos donde es
mejor usar MOV si se desea pasar datos sin tener que pasarlos por AX)
55 - LDF [mem]: Carga en BX y AX un número de 32 bits (IEEE) que esta almacenado en la dir [mem] y
mem+1. En BX quedan los digitos más Significativos
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 combinación de estos.
12 - NOT [destino]: NO lógico, invierte los bits del operando formando el complemento del primero.
13 - OR [dest,orig]: O inclusive lógico, todo bit activo en cualquiera de los operándoos será activado en el
destino
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.
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.
03 - XAB: Intercambia los valores de los registros AX y BX (Esta instrucción no necesita parámetros.)
14 - XOR [dest,orig]:O exclusivo, realiza un O exclusivo entre los operándos y almacena el resultado en
destino.2
5. EJERCICIOS
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;
MULTIPLICACIÓN
cla;
ldt;
mov 9,ax;
msg *;
ldt;
mul 9;
msg =;
eap ;
hlt;
DIVISIÓN
cla;
ldt;
mov B,ax;
msg /;
ldt;
mov C,ax;
mov ax,B;
div C;
msg =;
eap;
hlt;
6. BIBLIOGRAFÍA
7. LINKOGRAFÍA
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
http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC11.html
2
Universidad Nacional de la Matanza SimuProc Introducción a la Informática (MANUAL DE SIMUPROC)