Está en la página 1de 9

Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

INGRESANDO CODIGO EN DEBUG

Comando A, se utilizará para ingresar código, y vamos a ingresarlo en el CS

- A CS: 0200 e inmediatamente pedirá el código a ingresar:

¿QUE HACE LA MOV BX,200? Indica un movimiento desde la base 200 hacia arriba, contando
desde el segmento de datos
Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Ahora revisaremos el valor de BX que es igual a 0 y el de todos los demás puesto que todavía no
ingresamos datos, ni sea ejecutado el programa que se ingresó.

Ingresamos los siguientes valores en la posición del segmento de datos

Ahora ejecutaremos las instrucciones que hemos agregado. Para eso comenzaremos modificando
el puntero IP, para que señale la primera instrucción que hemos ingresado.

Utilizamos el comando A, con el segmento y el desplazamiento que se indicó, si no recordamos


donde se colocó, utilizamos el comando U para mostrar el código y las direcciones donde se ubicó.

Si queremos hacer que estas instrucciones se ejecuten, debemos hacer que IP que es el que
apunta se quede fijo en una de ellas. ¿Entonces cuánto debe valer IP? IP deberá valer 200
Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Por lo que, si visualizamos los registro, deberá aparecer la primera instrucción que se debe
ejecutar

¿Y qué es BB0002? Es la instrucción, pero en número.

¿5FA0:0200? Representa el segmento de código y el IP

Comenzamos a ejecutar con el comando T


Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Seguimos ejecutando y veremos como los valores de los registros, van cambiando conforme se
ejecutan las instrucciones

Los registros que se han modificado son: BX, DI,BP, SI

Y ahora, ¿ por qué se despliega DS:0200=6735?. Esto sucede cuando la instrucción hace referencia
a un dato, en este caso BX entre [ ] es el desplazamiento BX, sobre el segmento de datos y como
BX, vale 200 , me dice el debug, que dato es el que vamos a mover al AX.

Ahora si no me dijera debug, que vamos a mover, lo podríamos visualizar con el comando D, y en
este caso se muestra 67 35
Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Al momento de moverlo a AX, va a identificar cual es el mas significativo y el menos significativo. El


35 es el byte que esta en la posición 200 y el 67 es el byte que esta en la posición 201, como el mas
significativo es el 67, AX quedará como 6735.

Al ejecutar el programa el valor de AX, se modifica, quedando:

Al seguir ejecutando llegamos a la instrucción PUSH AX, y vemos cuánto vale SP que vale 0OFD, al
ejecutar la instrucción PUSH, SP modificara su valor 2 bytes abajo, llegando a 00FB

Ahora veremos el valor de la pila


Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Contamos los valores de las posiciones de 0 hasta llegar a B y C, cuyos valores son de 35, 67, que
son los que se movieron.

Al llegar a la instrucción POP DX, Dx tomara el valor del ultimo PUSH, es decir el valor de 0035

Seguimos ejecutando
Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Verificamos el valor que se anexara a BP, el cual será 3567

Al ejecutar con T se ejecutara la instrucción MOV [BP+SI], CL que quiere decir que que al
desplazamiento 302 del segmento de pila, allí se va almacenar el valor que tiene CL. CX es 00FA, CL
vale FA. ¿Por qué 302?, porque BP vale 300 y SI 2, ejecutamos y resulta

Comprobamos el movimiento con el comando D SS:302


Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

Ahora MOV CL, [BX+SI+02] , tomando en cuenta que BX vale 200, SI vale 2 y otros 2 adicional y ahí
esta 57, y eso se va a pasar a CL, o sea, tiene que dar un valor de 0057
Practica 2 Lenguaje de interfaz Dra Sorelly Ramírez Romero

También podría gustarte