汇编实验:DEBUG命令调试

目录

实验名称:DEBUG命令调试

一、实验目的及要求

二、实验环境

三、实验内容

四、实验过程

r 命令:查看寄存器的值

2.d 命令查看内存地址之中的数字

4.e命令:把给定的数据送到指定地址开始连续的内存单元

5.u命令:反汇编 ;  

6.a 修改内存单元汇编代码

7.  t命令:从指定地址开始执行指令

8.g 命令:

9.q命令:退出debug;

五、实验体会


西安财经大学信息学院

实验名称:DEBUG命令调试

一、实验目的及要求

1.熟悉debug的 应用,为学习指令系统打好基础;

2.利用debug观察寄存器的值;

3.直接汇编指令,单步调试,编辑数据

二、实验环境

硬件环境:一台微型计算机;

软件环境:windows 10,  dosbox,   debug环境,masm

三、实验内容

练习dos环境下debug命令;

四、实验过程

  1. r 命令:查看寄存器的值

 

 

上面就可以看到当前寄存器的状态(数值)

当前的指令指针位于CS:IP 073F:0100

数据段从073F0K开始

r 如果命令带上寄存器这个参数可以修改寄存器的数值,如下将ax的数字修改成24

 

2.d 命令查看内存地址之中的数字

使用方法

  1. 无参数

当不带参数的时候显示当前ds:ip内容,如过在一次执行会显示后续内容

 

  1. 段地址:偏移地址

当参数为段地址:偏移地址时,默认显示包括该地址的后续128个字节

 

上面显示的是1000:0 -1000:006F的地址

 

  1. 段地址:偏移地址 最大显示地址

 

如上显示的内存单元为1000:0 - 1000:f 共十六个字节的内容

 

4.e命令:把给定的数据送到指定地址开始连续的内存单元

如下图,然后用d命令查询内存单元的内容,如下图,把20h送到1000:0000单元,用d命令指令查看1000:0000单元的内容为20;

 

 

 

5.u命令:反汇编 ;  

这个命令可以将内存区域反汇编代码之后显示,例如显示当前区域的汇编代码

也可以通与段地址:偏移地址为参数显示,如下将1000:0段显示为汇编代码

 

6.a 修改内存单元汇编代码

可以加上参数段地址:偏移地址,

一下是为a,指令将当前的代码修改成

mov ax,2

mov bx,3

mov ax,bx

add ax,bx

add ax,1

add ax,1

add ax,1

mov ax,1000

mov ds,ax

mov ax,2000

mov bx,10

mov ss,ax

mov sp,10

通过u命令显示反汇编代码

7.  t命令:从指定地址开始执行指令

也可以指定执行指令的条数,如下图,执行后显示每条指令执行完后的所有寄存器内容和标志为的状态;

下面为执行的4中修改的命令

mov ax,2

mov bx,3

mov ax,bx

add ax,bx

add ax,1

add ax,1

add ax,1

mov ax,1000

mov ds,ax

mov ax,2000

mov bx,10

mov ss,ax

mov sp,10

 

8.g 命令:

从指定地址开始执行程序,直到程序结束或遇到int3;或者是从指定的地址开始,到指定的终止地址执行;

将2000:0内存区域的代码修改成

mov ax,3

mov bx,5

mov cx,bx

mov bx,ax

mov ax,cx

int 3

;交换ax,bx的值

g 2000:0命令执行之后

程序崩溃

9.q命令:退出debug;

 

 

五、实验体会

在本次实验之中我学会debug的环境的命令操作,掌握了一些基本汇编命令操作,将直接汇编指令,单步调试,编辑数据操作的十分熟练。理解了8086CPU的原理。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章