Vous êtes sur la page 1sur 20

LENGUAJE

ENSAMBLADOR
Angie Paola Yanquen Yanquen
Yeison Javier Funeme Hernandez

Instructivo uso del Sistemas de Informacin ARCA - Docente

Cdigo: IN-GRI-004
Versin: 02
Fecha de Versin: 05-Sep-2014

CONTENIDO

Contenido
PRACTICA 1 ..................................................................................................................................... 2
Codificacin Primer Ejemplo Lenguaje Ensamblador ........................................................................ 2
Programa ........................................................................................................................................ 2
Instrucciones .................................................................................................................................. 2
Codificacin con nombres ............................................................................................................... 4
Programa con nombres .................................................................................................................... 4
PRACTICA 2 ..................................................................................................................................... 5
Programa Hola Mundo ................................................................................................................ 5
Codificacion con nombres ............................................................................................................... 5
Programa ........................................................................................................................................ 5
Registros ........................................................................................................................................ 6
Observaciones ................................................................................................................................ 6
PRACTICA 3 ..................................................................................................................................... 7
Codificacin ................................................................................................................................... 7
Programa ........................................................................................................................................ 7
Registros ........................................................................................................................................ 8
PRACTICA 4 ..................................................................................................................................... 9
Codificacin ................................................................................................................................... 9
Programa .......................................................................................................................................10
Registros .......................................................................................................................................11
PRACTICA 5 ....................................................................................................................................12
Codificacin ...................................................................................................................................12
Programa .......................................................................................................................................13
Registros .......................................................................................................................................14
Instrucciones .................................................................................................................................14
PRACTICA 6 ....................................................................................................................................15
Codificacin ..................................................................................................................................15
Programa .......................................................................................................................................17
Flags .............................................................................................................................................18
1

PRACTICA 1
Codificacin Primer Ejemplo Lenguaje Ensamblador

Programa

Instrucciones
Org

Esta directiva le indica al programa la direccin desde la que deben ensamblarse las instrucciones escritas. Si las
instrucciones del programa son ensambladas sin especificar ORG, el ensamblador toma por defecto ORG 0x0.
Jmp

Realiza un salto incondicional hacia la direccin, etiqueta o procedimiento especificado. A diferencia de la instruccin
JMP, la instruccin CALL realiza un salto a una subrutina con retorno. El salto puede ser cercano o lejano.

Db
La directiva DB reserva memoria para datos de tipo byte (8 bits), o para una variable de este tipo, inicializando o no dicho byte y los posteriores.
El nombre de la variable es opcional, y se asigna dicho nombre para el primer byte (recordar que el lenguaje mquina no entiende de variables,
si no de direcciones de memoria. Una variable es una etiqueta o referencia para el compilador, el cual sustituye cada referencia a esta variable
por la direccin de memoria correspondiente)
Offset
Devuelve el OFFSET (desplazamiento) de la variable o etiqueta especificada. El desplazamiento es la posicin desde el principio del segmento
hasta la expresin indicada.

Mov
Mueve o transfiere un byte o una palabra desde el operando fuente al operando destino. El dato transferido se copia, por lo que no desaparece
del operando fuente. Tanto el operando fuente como el operando destino pueden ser un registro o un elemento de memoria. El operando fuente
puede ser un valor inmediato.

Int 21h
Esta interrupcin tiene varias funciones, para accesar a cada una de ellas es necesario que el el registro AH se encuentre el nmero de funcin
que se requiera al momento de llamar a la interrupcin.

Int 20h
Esta funcin, equivalente en su efecto para la Interrupcin 21h, 00h Funcin, finaliza la ejecucin de un programa y devuelve el control al
DOS, que restablece el Ctrl-Break, y salir por terminado, sin errores crticos direcciones de la PSP. CS debe contener la direccin del segmento
de la PSP, y todos los archivos escritos por el programa deben estar cerradas antes 20h de interrupcin se llama.

Ax
Acumulador (AL:AH)

Dx
Registro de datos (DL:DH)

Ret
Devuelve el flujo del programa donde estaba antes de la llamada a la funcin. Primero saca de la pila 4 bytes, los pone en EIP y luego suma
4 a ESP

Codificacin con nombres

Programa con nombres

PRACTICA 2
Programa Hola Mundo

Codificacion con nombres

Programa

Registros

Observaciones
1. Al tener la necesidad de agregar ms letras era necesario agregar ms valores segn los nmeros Hexadecimales
y el cdigo ASCII
2. Para lograr cambiar el color de las letras y el sombreado se debe colocar el cdigo de color de sombreo junto
al color de letra.
3. Se coloca el nmero de letras o espacios que se van a sombrear, y as mismo desde que letra se desea el
sombreado
4. Al correr el Programa se evidencian unos cambios en los registros:
IP = Cuando cambia las instruccin hay movimiento en este registro.
CX = Va disminuyendo cada vez que quedan menos letras por Subrayar
DI = Registro ndice destino

PRACTICA 3
Codificacin

Programa

Registros
Al correr el Programa se evidencian unos cambios en los registros:

IP = Cuando cambia las instruccin hay movimiento en este registro.


CX = Va disminuyendo cada vez que quedan menos letras por Subrayar
DI = Registro ndice destino
AX= Operaciones que implican entrada/salida

PRACTICA 4
Codificacin

Programa

10

Registros

Al correr el Programa se evidencian unos cambios en los registros:

IP = Cuando cambia las instruccin hay movimiento en este registro.


CX = Va disminuyendo cada vez que quedan menos letras por Subrayar
DI = Registro ndice destino
AX= Operaciones que implican entrada/salida

11

PRACTICA 5
Codificacin

12

Programa

13

Registros

AX= Operaciones que implican entrada/salida


DX = registro de datos a veces se usa junto con AX para determinadas operaciones por ejemplo la
multiplicacin exigen que los operandos estn en registros especficos.
IP = Cuando cambia las instruccin hay movimiento en este registro.

Instrucciones

Putc: Posicion
Putc 8: Retroceso
too_big2 JC: Salto para nmeros muy grandes
PUSH :almacena valor de 16 bits en la pila
PUSH y POP realizan las operaciones de apilado y desapilado en la pila del procesador respectivamente,
admiten todos los tipos de direccionamiento (excepto inmediato). Los operandos deben ser siempre de 16 bits
Ejemplos:

PUSH AX ; enva a la pila AX

POP DS ; carga el primer elemento de la pila en DS


PUSHF y POPF apila y desapila el registro de estado, respectivamente.

Macro: Ahorrar cdigo cuando se quiere hacer un proceso repetitivo.


Menos errores al momento de realizar cdigo repetitivo.
Permite hacer uso de variables que son pasados como parmetros.
Mayor seguridad en el cdigo, se pueden invocar desde un archivo externo al programas ASM.
Jz: saltar si el resultado es 0
ENDM: Indica fin del macro
ADD: Esta instruccin realiza la suma de los dos operandos, almacenando el resultado en el primero de ellos
14

JO etiqueta: Salta si hay desbordamiento (overflow).


JNE etiqueta: Salta si no es igual o salta si no es cero.
JMP destino: Esta instruccin se utiliza para desviar el flujo de un programa sin tomar en cuenta las condiciones
actuales de las banderas ni de los datos.
DIV La instruccin DIV realiza la multiplicacn (sin signo) entre AX y otro registro, quedando el resultado en
AL y el modulo en AH, es decir, el algoritmo es AL=AX/registro, AH= (modulo).
JAE etiqueta de salto corto si primer operando es superior o igual al segundo operando (segn lo establecido
por la instruccin CMP). . Sin signo Algoritmo: si CF = 0 y luego salta
JBE etiqueta de salto corto si primer operando es inferior o igual al segundo operando (segn lo establecido
por la instruccin CMP). . Sin signo Algoritmo: si CF = 1 ZF = 1, entonces saltan
SUB Esta instruccion realiza una resta entre los operandos.Aparte de eso, sus caracteristicas y restricciones
son las mismas del ADD

PRACTICA 6
Codificacin

15

16

Programa

17

Flags

IF (Interruption flag, Interrupcion): Indica que una interrupcin externa, como la entrada desde el teclado sea procesada
o ignorada.
ZF (Zero flag, Zero): Indica el resultado de una operacin aritmtica o de comparacin
PF (Parity flag, Paridad): Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden (mas a la
derecha).

18

19