Sie sind auf Seite 1von 2

Memorias y Perifricos

Prctica 7

Prctica de laboratorio:
Visualizar y Modificar Contenido de Registros de Memoria
CARBALLO GUAREROS CHRISTIAN
Introduccin
En esta prctica de laboratorio podrs familiarizarte con los registros de memoria, especialmente
los que contienen las direcciones de instrucciones y de datos (puntero de instruccin y puntero de
datos).
Tambin se ver como modificar el contenido de un registro y como ejecutar la instruccin a la que
apunta el registro de instrucciones
Instrucciones.
1) Primero debes abrir una terminal (smbolo del sistema). Para ello debers hacer clic en el men
de inicio -> Todos los Programas Accesorios Smbolo del Sistema
2) Una vez que se abra la terminal, haremos uso del siguiente comando

C:\user\JUAN

CARLOS> debug

aparecer el siguiente simbolo


lo cual significa que estamos en el debug
3)Una vez dentro del debug, escribimos
registros del microprocesador

el comando r (register), con el cual podemos visualizar los

-r
Aparecer algo como esto:
AX=0000 BX=0000
DS=151F ES=151F
151F:0100
0000

CX=0000 DX=0000 SP=FFEE


SS=151F CS=151F IP=0100
ADD [BX+SI],AL

BP=0000 SI=0000 DI=0000


NV UP EI PL NZ NA PO NC
DS:0000=CD

En los primeros 2 renglones estn los distintos registros (AX, BX, CX, ..., CS, IP) con el valor
que almacenan, seguidos del valor del registro de flags (NV UP EI PL NZ NA PO NC). Este es un
registro especial que almacena informacin de estado del proceso en ejecucin.
- Los registros CS:IP forman lo que se denomina puntero de instruccin y su valor (151F:0100) es la
posicin de la memoria en que se encuentra la prxima instruccin que se ejecutar para esta
ventana. En el tercer rengln podemos ver el contenido de esa posicin de memoria (como
instruccin) en los lenguajes mquina (0000) y ensamblador (ADD [BX+SI],AL)
Si notas, en el ejemplo la instruccin realiza la suma del contenido de 2 registros: BX y SI
- El registro DS se denomina puntero de datos. En el ejemplo, podemos ver la posicin de memoria y
su contenido (DS:0000=CD)
4) A continuacin vamos a ver como se modifica el contenido de un registro.
Con r (registro) podemos modificar el valor almacenado en algn registro. Por ejemplo, del BX:
-r BX
BX 0000

Memorias y Perifricos

Prctica 7

:0001
5)Una vez hecho esto comprobaremos nuevamente el estado de los registros con el comando r
r
AX=0000 BX=0001
DS=151F ES=151F
0001:0100
0000

CX=0000 DX=0000
SS=151F CS=151F
ADD AL,D5

SP=FFEE
IP=0100

BP=0000 SI=0000 DI=0000


NV UP EI PL NZ NA PO NC

Como puedes notar cambi el valor del registro BX


6)

Ahora modifica el contenido del registro IP

-r IP
IP 0100
:0000
7) Observa nuevamente como cambian los valores de IP (escribiendo el comando r) y puesto que este
registro es parte del puntero de instrucciones, tambien cambi la instruccin a ejecutarse
r
AX=0000 BX=0010
DS=151F ES=151F
151F:0100
0000

CX=0000 DX=0000 SP=FFEE


SS=151F CS=0001 IP=0000
ADD [BX+SI],AL

BP=0000 SI=0001 DI=0000


NV UP EI PL NZ NA PO NC
DS:0011=0D

8)

Para ejecutar la instruccin actual y pasar a la siguiente escribe el comando t (trace)


t
Veras que nuevamente cambia el contenido de los registros asi como la instruccion a ejecutarse.

9)

Prueba escribir el comando t (trace) varias veces y anota en el siguiente cuadro los valores de
CS, IP y DS asi como las instrucciones que vayan apareciendo y su significado (Te puedes
auxiliar del documento INSTRUCCIONES ENSAMBLADOR

CS

IP

Instruccin

Significado

DS

00A7

1072

CALL 115B

IR AL PROCEDIMIENTO CUYO INICIO ES 115B

0CB7

00A7

1072

PUSH F

ALMACENA LOS FLAGS EN LA PILA

0CB7

00A7

1072

CALL 1161

IR AL PROCEDIMIENTO CUYO INICIO ES 1161

0CB7

00A7

1072

PUSH D6

ALMACENA D6 EN LA PILA

0CB7

00A7

1072

NOP

00A7

1072

PUSH E

ALMACENA E EN LA PILA

0CB7

00A7

1165

PUSH D1

ALMACENA D1 EN LA PILA

0CB7

00A7

1166

CS/LDS

SEGMENTO DE CODIGO/REGISTRO DE MEMORIA 32

0CB7

00A7

1170

MOV (X,0004)

COPIA EL CONTENIDO DE X EN LA LOCACION 0004

0000

00A7

1179

POP 51

RETIRA EL VALOR DEL TOPE DEL STACK AL VALOR INDICADO

0000

00A7

117

POP CX

RETIRA EL VALOR DEL TOPE DEL STACK AL VALOR INDICADO

0000

00A7

117B

POP ES

RETIRA EL VALOR DEL TOPE DEL STACK AL VALOR INDICADO

0000

00A7

117C

POP DS

RETIRA EL VALOR DEL TOPE DEL STACK AL VALOR INDICADO

0000

00A7

117D

RET

RETORNO DE PROCEDIMIENTO

0CB7

0CB7

10) Por ultimo para salir escribe q (quit):


-q

Das könnte Ihnen auch gefallen