实验一 DEBUG调试工具的熟悉.doc
文本预览下载声明
实验1 DEBUG的使用及程序调试方法
实验目的? 通过本实验使学生掌握调试工具DEBUG的使用方法、理解汇编指令、存储单元和寄存器等有关概念,能对简单的汇编语言程序进行调试。?
二、实验原理?
DEBUG是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具,在DOS方式下工作。使用它可以读写、传送、查看CPU各种寄存器中的内容、显示内存单元的内容、设置程序起始执行地址或断点、机器码级跟踪程序的运行。用DEBUG编程简单、方便和直观,可以直接查看程序的执行情况,便于熟悉和理解指令,掌握基本编程技巧。?
DEBUG只使用十六进制表示数据(十六进制后面不加H),且对字母的大小写不敏感。?
常用到的DEBUG功能:?
用DEBUG的R命令查看、改变CPU寄存器的内容用DEBUG的D命令查看内存中的内容?用DEBUG的E命令修改内存中的内容? 用DEBUG的U命令将内存中的机器指令翻译成汇编指令?用DEBUG的T命令执行一条机器指令? 用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令
三、实验内容?
(1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。?
(2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、 存储单元地址与内容的概念和作用,以及程序的执行。
四、实验方法与步骤
1.DEBUG的进入与退出?
DEBUG是在DOS方式下使用的程序。在进入DEBUG前,应先以从WINDOWS?2000/XP中进入DOS方式(进入的是虚拟8086模式的DOS)。?
选择【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“cmd”后,单击【确定】按钮或按下键盘上的【Enter】键。”debug” 后按下键盘上的【Enter】键
2.?显示寄存器命令?R?
用于查看和改变CPU寄存器的内容?
格式:R?[寄存器]?
说明:当R命令后面不指定寄存器时,显示所有寄存器的内容?
例1-1?显示所有寄存器的内容?
-r?
AX=0200??BX=0000??CX=0000??DX=0041??SP=FFEE??BP=0000??SI=0000??DI=0000?
DS=138A??ES=138A??SS=138A??CS=138A??IP=0100???NV?UP?EI?PL?NZ?NA?PO?NC?
138A:0100?B241??????????MOV?????DL,41?
例1-2?修改寄存器的内容?
-r?ax?
AX?0200?
100?
-r
AX=0100??BX=0000??CX=0000??DX=0041??SP=FFEE??BP=0000??SI=0000??DI=0000?
DS=138A??ES=138A??SS=138A??CS=138A??IP=0100???NV?UP?EI?PL?NZ?NA?PO?NC?
138A:0100?B241??????????MOV?????DL,41?
用RF命令可以显示和修改标志寄存器FR中的标志位,无论修改哪一位标志位,只需要键入该标志位的表示符号(如表1.1所示),并且标志位值的键入顺序可任意。?
-rf?
NV?UP?EI?PL?NZ?NA?PO?NC??-?
-rf?
NV?UP?EI?PL?NZ?NA?PO?NC??-OV?CY?DI
-RF?
OV?UP?DI?PL?NZ?NA?PO?CY??-?
3.?存储器单元访问命令??
①显示存储器单元命令?D?
格式:D[地址范围]?
功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII码字符显示。?
1-3?显示从段地址1000中偏移量从10H~3fh存储单元的内容?
-d?1000:10?3f?
1000:0010??C0?E8?84?00?B0?2C?AA?F6-06?A6?56?FF?75?1E?E8?F3???.....,....V.u...?
1000:0020??FE?EB?28?57?BF?9D?56?E8-12?00?5F?E8?0E?00?B0?3A???..(W..V..._....:?
1000:0030??AA?BE?9D?56?B9?04?00?AC-AA?E2?FC?C3?E8?D5?FE?8A???...V............?
可以使用?D?段寄存器(段地址):偏移地址的格式显示内存中从指定地址单元开始的128个内存单元的内容。?
1-4?显示从物理地址从10010开始的存储单元的内容?
-d?1000:10?
1000:0010??C0?E8?84?00?B0?2C?AA?F6-06?A6?56?FF?75?1E?E8?F3???.....
显示全部