Anda di halaman 1dari 10

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

NOMBRE: Cristhian Fajardo


FECHA: 04 - 07 - 2016
to
CURSO: 5 A EIE-CRI
CODIGO: 577
ARQUITECTURA DE COMPUTADORES
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 direccininicial 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,

Seleccione,
analize
y
reporte
instrucciones, i.e. comando T

una

subrutina

Prepare Reporte escrito con listado y explicacin de la rutina

porciones
de

mn.

de
32

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

Anda mungkin juga menyukai