Laboratorio 2 OAC - Debug PDF

Title Laboratorio 2 OAC - Debug
Course Org Y Arquitectura De Computadora
Institution Universidad Tecnológica de Panamá
Pages 11
File Size 1.1 MB
File Type PDF
Total Downloads 103
Total Views 125

Summary

Debug ...


Description

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Licenciatura en Sistemas y Computación II semestre 2017 Organización y Arquitectura de Computadoras Laboratorio #2 Debug - Parte II

Grupo: 1IL-132

Fecha de entrega: Martes 12 de septiembre del 2017

Desarrollo del Laboratorio #2 Como recordará, en la parte 1 de este laboratorio, usted introdujo un programa ejemplo con los valores ( datos ) asignados inmediatamente en las instrucciones del CS. Ahora, le asignará los valores a las instrucciones desde el DS, con diversos direccionamientos, y para eso, debe definir dicha área primeramente, junto con los valores respectivos. A continuación, veremos cómo crear el Segmento de Datos (DS) y cómo asignarle datos: 

Teclee: a ds:0100 siguiente:

“enter”.

Al lado del 0100 teclee la primera instrucción

dw 0125 “enter” dw 0038 “enter” dw 0050 “enter” 

( dw valor ... define los datos ) ( dos veces … para terminar )

Calcule cuántos bytes ocupa cada valor. Utilice la técnica de verificación de bytes según los desplazamientos ocupados. NO utilice el comando “u”, cuya utilidad se aplica a instrucciones. Además, indique los desplazamientos ocupados por cada valor. Punto (A).

073F: 0100 dw 0125 = 2 bytes 073F: 0102 dw 0038 = 2 bytes 073F: 0104 dw 0050 = 2 bytes Ocupa un total de 6 bytes.



Vamos a utilizar los registros SI y DI para los direccionamientos, por lo cual, asígneles: 0102 y 0103, respectivamente. Utilice el comando r si “enter” y r di “enter” para cambiarle los valores.



Teclee las siguientes instrucciones para definir ahora el Segmento CS: a cs:0106 “enter” e introduzca el programa de ejemplo modificado. Observe que ahora, donde iban los datos del programa del lab1, se colocan los desplazamientos del DS, con direccionamientos, para referenciar donde se guardaron realmente los valores. Debe colocar las referencias a memoria entre corchetes. ALT 91 y ALT 93 respectivamente. mov ax, [0100] ( mueve el valor residente en el desplazamiento 0100 a AX ) add bx, [si]

por SI a BX )

( suma el valor residente en el desplazamiento indicado

mov cx, ax ( mueve el contenido de AX a CX ) sub ax, [di +1] ( resta el valor residente en el desplazamiento indicado por

la operación mov dx, ax mul dx div cx nop



di + 1, al reg. AX ) ( mueve AX al reg. DX ) ( multiplica AX por DX, resultado en AX y borra DX) ( divide AX entre CX, resultado en AX, residuo en DX ) ( no operar )

Traduzca su programa con u inicio, final ( ya ud. sabe ) para obtener las instrucciones en hexadecimal; anote las direcciones que ocupa; calcule el tamaño de cada instrucción y el total de bytes del programa. Punto (B).

073F:0106 A10001 073F:0106 031C 073F:0106 89C1 073F:0106 2B4501 073F:0106 89C2 073F:0106 F7E2 073F:0106 F7F1 073F:0106 90

MOV ADD MOV SUB MOV MUL NOP

AX, [0100] BX, [SI] CX,AX AX, [DI+01] DX,AX DX DIV CX

= 3 bytes = 2 bytes = 2 bytes = 3 bytes = 2 bytes = 2 bytes = 2 bytes = 1 bytes

Total de bytes= 17



Ahora ejecute su programa desde 0106 en adelante con el comando t, porque allí inicia su programa. Verifique que el IP contenga ese valor con r, de lo contrario, asígnelo. Copie cada resultado y explique lo que sucede en cada caso. Punto (C).

Tarea

Tarea: Utilizando los registros generales del CPU y el DEBUG, resuelva la siguiente operación aritmética en lenguaje simbólico. Haga su propio programa creando su DS y CS. ( 30 ptos ) Este programa se sustentará en el lab junto con este informe. ( A-B ) / (C+D*E)

Valores: Utilice los siguientes valores para probar la operación. Recuerde que están en decimal y Debug trabaja hexadecimal...El resultado final debe aparecer en el registro AX. A= 195, B= 75, C= 24, D= 12, E= 3 NOTA 1:   

Salve su programa con el nombre Problema.com Recuerde que el programa debe contener tanto el DS como el CS guardado uno a continuación del otro. Imprima los resultados de su programa y agréguelos al informe.

Desarrollo 

Asignamos los valores en hexadecimal y calculamos las posiciones de los valores.



Introducimos instrucciones



Programa en memoria traducido con el valor hexadecimal

Total de bytes: 33 

Verifique que el IP contenga ese valor (0106) con r.



Ejecutamos las instrucciones desde 0106 en adelante con el comando t.



Muestra del resultado en AX

Preguntas: Compare el programa original del lab1 vs la versión modificada del lab2, línea x línea., y responda las siguientes preguntas. (30 ptos) 1. 2. 3.

¿Cuál de los dos programas tiene más instrucciones simbólicas? ¿Ocuparon las instrucciones los mismos desplazamientos para ambos casos? Qué observa usted, explique. ¿Encontró alguna diferencia en la ejecución de ambos programas? ¿Los resultados son diferentes? Explique qué ocurre. ¿Cuál programa cree usted que se ejecutará más rápido y por qué?

Desarrollo R.1. El programa del laboratorio #2 tiene más instrucciones simbólicas. El laboratorio 1 contiene 8 instrucciones simbólicas, mientras que el laboratorio 2 contiene 13. Las instrucciones no ocuparon los mismos desplazamientos. Podemos decir que no ocuparon los mismos desplazamientos, ya que el tamaño total de bytes es distinto y el tamaño de cada instrucción individualmente varía. R.2. Luego de realizar este laboratorio, podemos decir que comparado con el primer laboratorio son bastante similares en lo que son los pasos a realizar al inicio, la diferencia que encontramos es que en este laboratorio buscábamos probar una operación y guardar dicho resultado en una ubicación específica, por lo que la diferencia del primer laboratorio, ya que esta parte no había que hacerla en dicho laboratorio. R.3. Bueno nosotros consultamos en grupo y pensamos que el programa que ocupe menos espacio o sea el de menor tamaño es posiblemente el que se ejecute más rápido. En este caso sería el programa del laboratorio 1, porque su tamaño es de 18 bytes, mientras que el otro es de 33 bytes.

Conclusión Durante la realización de este laboratorio podemos decir que al inicio fue un poco confuso, el comprender ciertas partes de la guía, pero consultando entre los del grupo pudimos sacar adelante este laboratorio. Pudimos repasar la mayoría de los comandos aprendidos en el laboratorio anterior, así como también probar una operación y guardar el resultado en una dirección de memoria especifica. Este fue el mayor aprendizaje del laboratorio. También gracias al cuestionario de preguntas al final, pudimos hacer comparaciones con el programa anterior y sacar ciertas conclusiones y algunos otros datos....


Similar Free PDFs