电气工程及其自动化1003计算机综合实践9002邱晓帆
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川大学网络教育学院
实践课程报告
实践课程计算机综合实践9002
校外学习中心重庆黔江奥鹏学习中心[20]VIP
专业电气工程及其自动化
层次专升本
年级 1003 学生姓名邱晓帆
学号 aDH1001g1003 2011 年 8 月 10 日
实验内容:
一、熟悉、使用DEBUG调试工具
[摘要] 借助DEBUG调试工具来发现汇编语言程序的错误所在并加以改正。通过实验,掌握DEBUG的常用基本命令,学会如何在windows的命令模式下启动DEBUG,进而学会如何使用DEBUG查看CPU 和内存,以及进行程序的跟踪调试等。
1 实验目的
1.1学习如何在Windows的命令模式下启动DEBUG。
1.2掌握DEBUG的常用基本命令。
1.3学习如何使用DEBUG查看CPU和内存以及进行跟踪调试。
2 实验设备及软件环境
装有DOS系统及MASM6.X的微机一台。
3 预备知识
3.1 什么是DEBUG?
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。
3.2 常用的Debug命令及其含义
表1.1 Debug命令及其含义
4 启动DEBUG
4.1打开Windows命令窗口
选择“开始”→“运行”→输入“cmd”命令
4.2启动DEBUG
在命令窗口中启动DEBUG,将显示连接符“-”,这时可输入各种DEBUG命令。
4.3关于使用命令的几点说明:
在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行;
●命令是单个字母,命令和参数的大小写可混合输入;
●可用F1、F2、F3、Ins、Del、→等编辑键来编辑本行命令;
●当命令出现语法错误时,将在出错位置显示“^Error”;
●在DEBUG中使用的数都是以十六进制来表示的。
5 实验内容
5.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命令,查看修改后的寄存器值。
5.2 D命令
作用:查看指定范围内的内存中的内容
(1)直接输入D命令
DEBUG将输出3部分内容,查看执行结果。
说明:
●左边是每行的起始地址,用“XXXX:YYYY”表示,其中XXXX
表示内存单元的段地址,YYYY表示内存单元的偏移量;
●中间以十六进制的形式显示从指定地址开始的128个内存单
元的内容,每行显示16个字节的内容;
●右边显示每个内存单元中的数据对应的可显示的ASCII码字
符,若没有对应可显示的ASCII码字符,DEBUG用“.”来代
替。
(2)执行带参数的D命令
若执行带参数的命令D,DEBUG将显示指定地址范围的内容。带参数的方式有三种。
●方式一:D 起始位置
⏹DEBUG从起始位置开始显示128个字节的内容。
⏹输入命令:D 1AF5:100
●方式二:D 起始位置结束位置
⏹DEBUG从起始位置开始一直显示到结束位置。
⏹输入命令:D DS:100 11F
●方式三:D 起始位置 L长度
⏹DEBUG命令从起始位置开始显示指定长度内容。
⏹输入命令:D DS:100 L10
使用带参数的D命令后,接着使用D命令,可列出后续的128个内存单元的内容。
5.3 E命令
格式:E 起始地址字节值表
或 E 起始地址
作用:用值表中的值替换从“起始地址”开始的内存单元中的内容
例1:将内存1000:0~1000:9单元中的内容分别写为0、1、2、3、4、5、6、7、8、9,可用“E 起始地址数据数据数据数据数据……”的格式来进行。
步骤:
①用D命令查看1000:0~1000:f单元的内容:D 1000:0 f
②用E命令修改从1000:0开始的10个单元中的内容:E 1000:
0 0 1 2 3 4 5 6 7 8 9
③用D命令查看1000:0~1000: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:0~1000:f单元中内容的变化:D 1000:
0 f
例3:用E命令向内存中写入字符串。从内存1000:0开始写入:
数值1,字符串“a+b”,数值2,字符串“c++”,数值3,字符“IBM”。步骤:
①用D命令查看1000:0处的内容:D 1000:0
②用E命令输入:E 1000:0 1 ‘a+b’ 2 ‘c++’ 3 ‘IBM’
③用D命令查看1000:0~1000: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.,然后光标停在“.”的后面,提示输入想要写入的数据,此时有两种选择:其一输入数据,完后按空格键,即用输入的数据改写当前的内存单元;其二不输入数据,直接按空格键,则表示不对当前内存单元进行改写
④当前单元处理完成后(不论是改写或者没有改写,只要按了空
格键,就表示处理完成),DEBUG将显示下一个内存单元的原始内容,并提示进行修改,可以用同样的方法进行处理
⑤所有希望改写的内存单元改写完毕后,按ENTER键,E命令结束
⑥用D命令查看1000:10单元中内容的变化:D 1000:10