Beruflich Dokumente
Kultur Dokumente
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
-r
Aparecer algo como esto:
AX=0000 BX=0000
DS=151F ES=151F
151F:0100
0000
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
-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
8)
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
0CB7
00A7
1072
PUSH F
0CB7
00A7
1072
CALL 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
0CB7
00A7
1170
MOV (X,0004)
0000
00A7
1179
POP 51
0000
00A7
117
POP CX
0000
00A7
117B
POP ES
0000
00A7
117C
POP DS
0000
00A7
117D
RET
RETORNO DE PROCEDIMIENTO
0CB7
0CB7