版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 调试工具DEBUG的使用1.1 实验目的(1)学习如何在Windows的命令模式下启动DEBUG。(2)掌握DEBUG的常用基本命令。(3)学习如何使用DEBUG查看CPU和内存以及进行跟踪调试。1.2 实验设备及软件环境装有DOS系统及MASM6.X的微机一台。1.3 预备知识1 什么是DEBUG? Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。2 常用的Debug命令及其含义表1.1 Debug命令及其含义命令格式 功能说明R 寄存器名 查看、改变CPU寄存器的内容D 范
2、围 查看指定范围内的内存中的内容E 起始地址 字节值表 用值表中的值替换从“起始地址”开始的内存单元中的内容U 范围 反汇编,将内存中的机器指令翻译成汇编指令T 地址指令数 执行一条机器指令A 地址 以汇编指令的格式在内存中写入一条机器指令Q 退出Debug,回到DOS状态3 启动DEBUG(1)打开Windows命令窗口选择“开始”“运行”输入“cmd”命令(2)启动DEBUG在命令窗口中启动DEBUG,将显示连接符“”,这时可输入各种DEBUG命令。(3)关于使用命令的几点说明:l 在提示符“”下才能输入命令,在按“回车”键后,该命令才开始执行;l 命令是单个字母,命令和参数的大小写可混合
3、输入l 可用F1、F2、F3、Ins、Del、等编辑键来编辑本行命令l 当命令出现语法错误时,将在出错位置显示“Error”l 在DEBUG中使用的数都是以十六进制来表示的1.4 实验内容1 R命令作用:查看、改变CPU寄存器的内容(1)显示所有寄存器之中的内容:输入R我们重点关注AX、BX、CX、DX、CS及IP寄存器的内容,其他寄存器SP、BP、SI、DI、ES、SS及标志寄存器先不予理会。此外,并列出了CS:IP所指向的内存单元处所存放的机器码,并将它翻译为汇编指令。(2)改变寄存器中的内容:输入R AX在提示符“:”后输入1111,即可将AX的值设置为1111。在输入R命令,查看修改后
4、的寄存器值。练习:(1)用R命令修改IP的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;(2)用R命令修改CS的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;2 D命令作用:查看指定范围内的内存中的内容(1)直接输入D命令DEBUG将输出3部分内容,查看执行结果。说明:l 左边是每行的起始地址,用“XXXX:YYYY”表示,其中XXXX表示内存单元的段地址,YYYY表示内存单元的偏移量;l 中间以十六进制的形式显示从指定地址开始的128个内存单元的内容,每行显示16个字节的内容;l 右边显示每个内存单元中的数据对应的可显示的ASCII码字符,若没有对应可显示
5、的ASCII码字符,DEBUG用“.”来代替。(2)执行带参数的D命令若执行带参数的命令D,DEBUG将显示指定地址范围的内容。带参数的方式有三种。l 方式一:D 起始位置n DEBUG从起始位置开始显示128个字节的内容。n 输入命令:D 1AF5:100l 方式二:D 起始位置 结束位置n DEBUG从起始位置开始一直显示到结束位置。n 输入命令:D DS:100 11Fl 方式三:D 起始位置 L长度n DEBUG命令从起始位置开始显示指定长度内容。n 输入命令:D DS:100 L10使用带参数的D命令后,接着使用D命令,可列出后续的128个内存单元的内容。练习:(1)使用D命令,查看
6、内存10000H处的内容;(2)使用D命令,查看1000:01000:9中的内容(3)采用三种不同的段地址和偏移地址查看同一物理地址10000H中的内容3 E命令格式:E 起始地址 字节值表 或 E 起始地址作用:用值表中的值替换从“起始地址”开始的内存单元中的内容例1:将内存1000:01000:9单元中的内容分别写为0、1、2、3、4、5、6、7、8、9,可用“E 起始地址 数据 数据 数据 数据 数据”的格式来进行。步骤: 用D命令查看1000:01000:f单元的内容:D 1000:0 f 用E命令修改从1000:0开始的10个单元中的内容:E 1000:0 0 1 2 3 4 5 6
7、 7 8 9 用D命令查看1000:01000:f单元中内容的变化:D 1000:0 f例2:用E命令向内存中写入字符。从内存1000:0开始写入:数值1,字符“a”,数值2,字符“b”,数值3,字符“c”。步骤: 用D命令查看1000:0处的内容:D 1000:0 用E命令输入:E 1000:0 1 a 2 b 3 c 用D命令查看1000:01000:f单元中内容的变化:D 1000:0 f例3:用E命令向内存中写入字符串。从内存1000:0开始写入:数值1,字符串“a+b”,数值2,字符串“c+”,数值3,字符“IBM”。步骤: 用D命令查看1000:0处的内容:D 1000:0 用E命
8、令输入:E 1000:0 1 a+b 2 c+ 3 IBM 用D命令查看1000:01000:f单元中内容的变化:D 1000:0例4 用E命令以提问的方式来逐个地修改从某一地址开始的内存单元中的内容。以从1000:10单元开始为例。 步骤: 用D命令查看1000:10处的内容:D 1000:10 用E命令输入:E 1000:10,按Enter键 DEBUG将显示起始地址1000:0010以及第一个单元(即1000:0010单元)的原始内容:00.,然后光标停在“.”的后面,提示输入想要写入的数据,此时有两种选择:其一输入数据,完后按空格键,即用输入的数据改写当前的内存单元;其二不输入数据,直
9、接按空格键,则表示不对当前内存单元进行改写 当前单元处理完成后(不论是改写或者没有改写,只要按了空格键,就表示处理完成),DEBUG将显示下一个内存单元的原始内容,并提示进行修改,可以用同样的方法进行处理 所有希望改写的内存单元改写完毕后,按ENTER键,E命令结束 用D命令查看1000:10单元中内容的变化:D 1000:104 U命令格式:U范围作用:反汇编,即显示机器码所对应的汇编指令命令执行完后,DEBUG显示的输出内容包括3个部分:每一条机器指令的地址、机器指令、机器指令所对应的汇编指令。l 若命令中不写“范围”参数,则把从CS:100开始的20H个字节内容反汇编成汇编指令,并显示出
10、来;l 若命令中只有“起始地址”,则把从该“起始地址”开始的20H个字节内容反汇编成汇编指令;l 若命令中只有“起始地址”和“终止地址”,则把从“起始地址”到“终止地址”之间的字节内容反汇编成汇编指令。例1:执行命令 U 100,查看执行结果例2:执行命令 U 100 10C,查看执行结果。表示对从CS:100到10B的内存单元进行反汇编。例3:用E命令向内存中写入机器码,用U命令查看内存中机器码的含义。 机器码 对应的汇编指令 b8 01 00 mov ax,0001 b9 02 00 mov cx,0002 01 c8 add ax,cx 用E命令输入E 1000:0 b8 01 00 b
11、9 02 00 01 c8 用D命令查看1000:0单元内容:D 1000:0 用U命令查看1000:0单元中机器码的含义:U 1000:05 T命令格式:T=地址指令数作用:跟踪执行,从起点(或当前点)执行若干条指令若不写“地址”,则T命令从CS:IP处开始执行,“指令数”是要执行的指令数。若只用T命令,则从CS:IP处执行一条指令。例:简单地使用T命令,可以执行CS:IP指向的指令。 首先用E命令向1000:0开始的内存单元中写入8个字节的机器码:E 1000:0 b8 01 00 b9 02 00 01 c8 用R命令查看CPU中寄存器的状态:R (可以看到CS=? IP?,指向CS:I
12、P) 用R命令修改CS,IP中的内容,使CS:IP指向1000:0 使用T命令执行写入的指令 (执行T命令后,CPU执行CS:IP指向的指令,则1000:0处的指令b8 01 00即mov ax,0001得到执行,指令执行完后,DEBUG显示输出CPU中寄存器的状态) 用T命令继续执行后面的指令,注意每条指令执行后,CPU相关寄存器内容的变化。6 A命令作用:以汇编指令的形式向内存中写入指令(1)简单地使用A命令,从一个预设的地址开始输入指令 例:输入A,写入指令:mov ax,1 mov bx,2 mov cx,3 add ax,bx add ax,cx add ax,ax(2)给出起始地址
13、的A命令 例:A 1000:0,写入指令:mov ax,1 mov bx,2 mov cx,3 add ax,bx add ax,cx add ax,ax1.5 实验任务(1)使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行完后,CPU中相关寄存器中内容的变化。提示:可以用E命令和A命令以两种方式将指令写入内存。并注意用T命令执行时,CS:IP的指向。机器码 汇编指令B8 20 4e mov ax,4e20h05 16 14 add ax,1416hBb 00 20 mov bx,2000h01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,
14、bxB8 1a 00 mov ax,001ahBb 26 00 mov bx,0026h00 d8 add al,bl00 dc add ah,bl00 c7 add bh.alB4 00 mov ah,000 d8 add al,bl04 9c add,9ch(2)向内存从B8100H开始的单元中填写数据,如: e b810:0000 01 02 03 04 05 05 06 注意:先填写不同的数据,观察产生的现象;再改变填写的的地址,观察产生的现象。(3)使用DEBUG,讲下面的程序段写入内存,逐条执行,根据指令执行后的实际情况填空。Mov ax,ffffMov ds,axMov ax,2000Mov ss,axMov sp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院收发室年终工作总结
- 建筑行业农民工劳动合同管理与权益维护
- 2026年智能学习机行业分析报告及未来发展趋势报告
- 2024-2025学年广东深圳31校九年级下学期2月质量检测数学试题含答案
- 2026年居家鞋行业分析报告及未来发展趋势报告
- 2026年吧台行业分析报告及未来发展趋势报告
- 2025年武警眼力测试题及答案
- 2026年民生银行秋招面试题及答案
- 2026年ICL行业分析报告及未来发展趋势报告
- 广安市广安区(2026年)社区工作者考试题库及答案
- 2026年北京市大兴区初三一模物理试卷(含答案)
- 法院机关灶管理制度
- 毕业设计(论文)-液压挖掘机驾驶室方案设计
- 《工程水文学》习题册全解1
- 2025年江苏扬州市扬子工程质量检测有限公司招聘笔试参考题库含答案解析
- 劳动项目五 《制作劳动作品集》 (教学设计)2023-2024学年人教版《劳动教育》五年级下册
- 医院安全知识培训课件
- DBJ15-22-2021-T 锤击式预应力混凝土管桩工程技术规程(广东省)
- 国开2024年秋《机械制图》形考作业1-4答案
- 年产10万吨正丁醇生产工艺的设计
- GJB438B《软件需求规格说明》
评论
0/150
提交评论