• No se han encontrado resultados

Ejercicios Debug Fajardo 577

N/A
N/A
Protected

Academic year: 2021

Share "Ejercicios Debug Fajardo 577"

Copied!
10
0
0

Texto completo

(1)

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO NOMBRE:

NOMBRE: Cristhian Cristhian Fajardo Fajardo FECHA: FECHA: 04 04 - - 07 07 - - 20162016 CURSO: 5

CURSO: 5toto“A”“A”EIE-CRI EIE-CRI CODIGO: CODIGO: 577577

 ARQUITECTURA D

 ARQUITECTURA DE COMPUTADORE COMPUTADORESES Ejercicios

Ejercicios 1.

1. IntroducIntroducir el ir el siguiente código siguiente código para la para la suma de suma de 2 2 números:números: Código de Máquina: 01D8 Código de Máquina: 01D8  Asignar a AX=5  Asignar a AX=5  Asignar a BX=3  Asignar a BX=3 2.

2. IntroducIntroducir el ir el siguiente código siguiente código para la para la resta de resta de 2 2 números.números. Código de Máquina: 29F8 Código de Máquina: 29F8  Asignar a AX=5  Asignar a AX=5  Asignar a BX=3  Asignar a BX=3 3.

3. IntroducIntroducir el ir el siguiente código siguiente código para la para la multiplicacmultiplicación de ión de 2 2 números:números: Código de Máquina: F7E3

Código de Máquina: F7E3  Asignar a AX=5

 Asignar a AX=5  Asignar a BX=3  Asignar a BX=3

(2)

4. Introducir el siguiente código para la división de 2 números: Código de Máquina: 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, multiplicación y división, en ese orden, los valores originales del registro AX y BX son los que deseen.

(3)

Ensamblando un programa

Para crear al instante un programa en ensamblador con debugger se utiliza el comando “A” (Assemble), este comando permite introducir código en forma de nemónicos y su sintaxis es “A[dirección]”, donde dirección es la ubicación de memoria a partir de la cual se empezara a ensamblar, sino se especifica la direccióninicial 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 instrucción a ensamblar, cada instrucción se ensambla en el momento de ser digitada y cada byte generado se almacena en la memoria en la dirección 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 [dirección]”, que ejecuta instrucciones a partir de una dirección. 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 instrucción 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 interrupción 20 “int 20” termina el programa y regresa el control al DOS.

(4)

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 código digitado con nemotécnicos como el código en hexadecimal de cada instrucción.

(5)

Existe también un comando que ayuda a rastrear la ejecución del programa haciendo un paso a paso este comando es el “Trace (t)”.

Guardar y c argar un pro grama

Lo hecho hasta ahora ha sido operar un programa en memoria, para guardarlo en disco y recuperarlo después, siga los siguientes pasos, tomando el código ya trabajado:

1. Averigüe la longitud del programa restando la dirección final (ultima

instrucción del programa) de la dirección inicial (primera instrucción 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 vía y la extensión.  - n c:primprog.com. no más 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 dirección final 010A de la inicial 0100 que se obtiene 000A, se digita “:000A”.

(6)

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 ubicación antes de entrar a debug ejecute el comando “dir” para mostrar los archivos presentes en el lugar donde guardo el archivo.

(7)

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

 Seleccione un archivo pequeño .exe o .com de máx. 4Kb y desensámblelo con

el DEBUG

Visualize porciones de código, i.e. comando U, y porciones de datos, i.e. comando D

Seleccione, analize y reporte una subrutina de mín. 32 instrucciones, i.e. comando T

(8)

 HACER UN PROGRAMA QUE MUESTRE EN TODA LA PANTALLA LA LETRA

 A(MAYUSCULA). Resolución de pantalla en modo texto es de (80 x 35 caracteres)

Código ASCII La letra A mayúscula 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 encontraría en la dirección lógica B800:0041

(9)
(10)

Referencias

Documento similar

En el capítulo de desventajas o posibles inconvenientes que ofrece la forma del Organismo autónomo figura la rigidez de su régimen jurídico, absorbentemente de Derecho público por

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Tal y como contemplamos en la Figura 7, las búsquedas que realizan los usuarios de YouTube sobre Jabhat al Nusrah están asociadas con un contenido eminentemente violento (63,40% de

La primera opción como algoritmo de compresión para secuencias biológicas que sugirió la directora del proyecto fue la adaptación de los algoritmos de Lempel-Ziv al alfabeto formado

En esta sección se tratan las características que debe tener un compresor de secuencias biológicas para poder ser usado como herramienta en la construcción de los árboles de

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

A diferencia del comando cadena.inicia_con, este comando nos permite buscar en una cadena de texto si esta termina con un carácter especificado y devuelve un valor buelano. Este

a) Introducir alguno de los factores de la operación que se desea realizar de forma aproximada. Para ello basta con poner en forma decimal algún factor. Con este comando