Debug的使用

1、debug的功能

R命令:查看、改变CPU寄存器的内容

                格式:r——查看各个寄存器的内容;r+寄存器名称——修改寄存器的内容

D命令:查看内存中的内容

                格式:d 段地址+偏移地址——查看以此内存单元开始的128个内存单元内容

                           d ——查看Debug预设地址的内容

E命令:改写内存中的内容

                格式:e 起始地址 数据 数据......——修改从起始地址开始的内存单元的内容

                           e 起始地址——逐个修改输入从起始地址开始的内存单元的内容

U命令:将内存中的机器指令翻译成汇编指令

                格式:U 起始地址——翻译起始地址开始的内存单元的内容并翻译为汇编语言

T命令:执行一条机器指令

                格式:t——执行CS:IP指向的指令,IP会随之改变

A命令:以汇编语言指令的格式在内存中写入一条机器指令

                格式:a 起始地址——从起始地址开始写入命令

2、实验任务(1)

挂载文件夹到虚拟目录并切换到对应盘符,打开debug程序

汇编语言中test指令_jvm

用e命令将指令写入以1000:0为起始地址的内存

汇编语言中test指令_java_02

将1000:0开始的内存单元的内容并翻译为汇编语言

汇编语言中test指令_jvm_03

修改CS:IP的指向,使其指向起始地址1000:0

汇编语言中test指令_数据_04

执行从1000:0开始的指令

汇编语言中test指令_jvm_05

3、实验任务(2)

使用a命令输入指令,修改CS:IP指向2000:0

汇编语言中test指令_服务器_06

不断执行指令即可得到2的8次方

汇编语言中test指令_jvm_07

汇编语言中test指令_jvm_08

汇编语言中test指令_数据_09

4、实验任务(3)

使用D命令查看FFF00-FFFFF内存单元的内容,发现生产日期存在于FFFF0-FFFFF中 

 

汇编语言中test指令_服务器_10

 用e命令修改FFFF0-FFFFF中的内容,用d命令查看,发现其不变!

汇编语言中test指令_jvm_11

因为在8086PC机中,内存单元C0000-FFFFF是只读储存器ROM的地址空间,而ROM只能读出而不能写入数据,所以我们对ROM的地址空间写入的数据都是无效的。

5、实验任务(4)

 

汇编语言中test指令_数据_12

 由于A0000-BFFFF是显存储存器的地址空间,可以发现,地址空间的数据不会被改变,且输入的数据会直接显示在显示器上 ,且输入第一个01时,图案会出现,输入第二个时颜色会改变,此后都是。

 第一篇笔记,记录一下学习汇编语言的过程,巩固一下知识~