一、实验目的
- 掌握Debug常见指令的使用,以及跟踪程序的运行。
- 掌握待执行指令地址的形成方法。
- 掌握物理地址的形成方法。
- 掌握数据段段基址的设置方法。
二、实验过程和结果
- 1:用“
d 段寄存器:偏移地址
”的格式查看内存单元。 能不能用另外的格式查看呢,例如:
d ds:偏移地址
d es:偏移地址
d ds:ax
d cs:偏移地址
d cs:ip
d cs:ax
d ss:偏移地址
d ss:ip
d ss:ax
d ax:偏移地址
dds:bp
思考1:请总结,那种类型可以实现,哪种类型不能实现
d ds:偏移地址 ——可以实现
d es:偏移地址 ——可以实现
d ds:ax ——不可以实现
d cs:偏移地址 ——可以实现
d cs:ip ——不可以实现
d cs:ax ——不可以实现
d ss:偏移地址 ——可以实现
d ss:ip ——不可以实现
d ss:ax ——不可以实现
d ax:偏移地址 ——不可以实现
d ds:bp ——不可以实现
2: 尝试e命令、a命令、u命令后加上“段寄存器:偏移地址”的形式执行。
可执行
3:在内存中15F0:0120处写入如下汇编指令,并执行。
- 思考2:用T命令执行指令前,需要完成什么设置?
R 命令修改CS和IP的值为15F0:0120
A命令写入汇编指令
4:完成上题后,输入q命令,退出debug,再进入。在内存中15F0:0120处写入如下汇编指令:
- 思考3:用T命令执行上图中第一条
(mov ax,1234h)、第三条(mov cx,12h)和第四条(mov dx,34h)指令,不执行第二条(mov bx,5678h)指令,如何操作?(能用jmp吗)
用T 命令执行完第一条指令之后,强行修改IP的值为0126,
在接着用T命令执行后面的汇编指令
5:在内存14F0:0110处中写入如下数据:
- 思考4:可以将这些数据当作指令执行吗,怎么做?(可截图,也可以文字描述)
先用e 命令修改内存数据,在14F0:0110 处写入数据
再用 r 命令修改CS和IP的值为14f