Sei sulla pagina 1di 13

Ejercicios:

1.- Introducir el siguiente cdigo para la suma de 2 nmeros:


Cdigo de Mquina: 01D8
Asignar a AX=5
Asignar a BX=3

2.- Introducir el siguiente cdigo para la resta de 2 nmeros:


Cdigo de Mquina: 29F8
Asignar a AX=5
Asignar a BX=3

3.- Introducir el siguiente cdigo para la multiplicacin de 2 nmeros:


Cdigo de Mquina: F7E3
Asignar a AX=5
Asignar a BX=3

4.- Introducir el siguiente cdigo para la divisin de 2 nmeros:


Cdigo de Mquina: F7F3
Asignar a AX=8
Asignar a BX=4

5.- Utilizando los ejercicios del 1 al 4 realice un programa que genere secuencialmente
la suma, resta, multiplicacin y divisin, en ese orden, los valores originales del registro
AX y BX son los que deseen.

Ensamblando un programa
Para crear al instante un programa en ensamblador con debugger se utiliza el comando A
(Assemble), este comando permite introducir cdigo en forma de nemnicos y su sintaxis es
A[direccin], donde direccin es la ubicacin de memoria a partir de la cual se empezara a
ensamblar, sino se especifica la direccin inicial a partir de la cual se debe ensamblar, ensambla a
partir de la localidad especificada por CS:IP.
Ejecutado el comando A, debug preguntar en forma sucesiva y secuencial por la siguiente
instruccin a ensamblar, cada instruccin se ensambla en el momento de ser digitada y cada byte
generado se almacena en la memoria en la direccin inicial y en secuencia sucesiva.

Digite A [enter], como resultado se obtiene:

-A
17A3:0100
Debug se encuentra listo para aceptar las instrucciones:
mov ah, 8 [enter]
add ah, 3 [enter]

sub ah, 4 [enter]


int 20 [enter]
[enter]
Las localidades de memoria o segmento pueden ser distinto en cada PC.
Para ejecutar el programa anterior se usa el comando G [direccin], que ejecuta instrucciones a
partir de una direccin. Se observa que nuestro programa comienza en el segmento 17A3:0100
y termina en el segmento 17A3:0108, si se desea ejecutar todas las instrucciones a partir de CS:IP
(17A3:0100) hasta la instruccin en 17A3:0108, se digita g108, como resultado se obtiene:

Debug despliega los registros con los resultado intermedios, se observa comparando el estado
inicial y final de los registros con respecto a AX en su parte alta, es decir, AH que tiene un valor
inicial AX=0000, pasando por AX=0800, sumando 3, AX=0B00 y restando 4, AX=0700 que es el
resultado final de este programa. Debug ejecuta la interrupcin 20 int 20 termina el programa y
regresa el control al DOS.

Desensamblar

Para desensamblar un programa que se acaba de escribir se utiliza el comando U que


desensambla lo que se digita partiendo de la localidad de memoria especificada y la cantidad de
bytes especificados con L que significa longitud (length), lo que muestra tanto el cdigo digitado
con nemotcnicos como el cdigo en hexadecimal de cada instruccin.

Existe tambin un comando que ayuda a rastrear la ejecucin del programa haciendo un paso a
paso este comando es el Trace (t).

Guardar y cargar un programa


Lo hecho hasta ahora ha sido operar un programa en memoria, para guardarlo en disco y
recuperarlo despus, siga los siguientes pasos, tomando el cdigo ya trabajado:
1. Averige la longitud del programa restando la direccin final (ultima instruccin del programa) de la
direccin inicial (primera instruccin del programa), la longitud se expresa en hexadecimal. - h
10A 100, lo que resulta en 020A 000A.
2. Crear un nombre para el programa, que incluya la va y la extensin. - n c:primprog.com. no ms de
ocho caracteres para el nombre.
3. Poner la longitud del programa en el registro CX. - rcx, lo que despliega el contenido del registro
CX, CX 0000, se coloca la longitud del programa restando la direccin final 010A de la inicial 0100
que se obtiene 000A, se digita :000A.
4. Darla orden de escritura. La orden de escritura se da con w, - w aparece el mensaje writing 000A
bytes, escribe la cantidad de byte en el registro CX.

Para cargar el archivo anterior u otro archivo, se debe seguir los siguientes pasos:
1. Proporcionar el nombre del programa que se cargar usando el comando n. -n c:\ primprog.com
2. Cargarlo mediante comando (L) load. -l
3. Para verificar que fue cargado, desensamble a partir de la localidad 100H. -u 100 L9.
Para estar seguro de la ubicacin antes de entrar a debug ejecute el comando dir para mostrar los
archivos presentes en el lugar donde guardo el archivo.

Salir de debug, para salir de debug digite el comando q, es decir, -q

Seleccione un archivo pequeo .exe o .com de mx. 4Kb y desensmblelo


con el DEBUG

Visualize porciones
datos, i.e. comando D

de

cdigo, i.e. comando U,

porciones

de

Seleccione, analize y reporte una subrutina de mn. 32 instrucciones, i.e. comando T

Prepare Reporte escrito con listado y explicacin de la rutina

HACER UN PROGRAMA QUE MUESTRE EN TODA LA PANTALLA LA


LETRA A(MAYUSCULA). Resolucin de pantalla en modo texto es de (80 x 35
caracteres)

Cdigo ASCII La letra A mayscula es igual a (65 decimal) y (41 en


Hexadecimal) Como debug solo usa el sistema hexadecimal usaremos A=41
Segmento de memoria de la pantalla: Esta es igual a B800 donde la letra A se
encontrara en la direccin lgica B800:0041

Potrebbero piacerti anche