好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验一汇编实验Debug命令的使用.doc

5页
  • 卖家[上传人]:平***
  • 文档编号:16616740
  • 上传时间:2017-11-08
  • 文档格式:DOC
  • 文档大小:45.24KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验一 Debug 命令的使用一、 知识点1、 DEBUG 简介DEBUG.EXE 是 DOS 提供的用于调试可执行程序的一个工具软件在汇编语言程序调试中很常用DEBUG 的提示符是“-” ,所有 DEBUG 调试命令军在此提示符下输入DEBUG 命令都是一个字母,后跟一个或多个参数,也可使用默认参数DEBUG 命令的使用注意问题:(1) 字母不分大小写(2) 只使用十六进制数,但没有带后缀字母“H ”(3) 命令如果不符合 DEBUG 的规则,则将以“error” 提示,并以“^”指示出错位置4) 每个命令只有按下回车键后才有效,可以用 Ctrl+Break 终止命令的执行2、 Debug 的调入和退出以 WIN2000 环境为例,点击“开始/ 运行…” ,在“运行” 对话框中输入命令:cmd ,然后点击“确定” ,进入 DOS 命令行状态:C:\Documents and Settings\lfy>然后输入命令:>Debug 进入 Debug 调试状态,出现 Debug 命令提示府“- ”,在此提示符下可运行所需要的Debug 命令了退出 Debug 的命令:Q3、 Debug 常用命令(1) 汇编命令 A,格式为: - A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。

      若不指定地址,则系统从默认的地址开始存放按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段2) 显示和修改寄存器命令 R,格式为:- R [寄存器名 ]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健若未指定寄存器,则默认为显示所有寄存器的内容应用:常用于通过寄存器的值查看指令的执行结果3) 内存单元内容的命令 E,格式为:- E 地址 [内容表 ]功能:若指定内容表,则用内容表中的内容代替指定地址开始的存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待用户修改,按空格键则继续显示下一单元的值,按回车键结束例如:-E 100184E: 0100 89,78其中,184E 是数据段的段地址,0100 是要修改的单元的偏移地址,89 为该单元的值,78为程序员键入的值结果 0100 单元的值由 89H 改变为 78H应用:常用于在调试程序的过程中改变变量的初始值4) 显示内存单元内容的命令 D,格式为: - D [地址] 或 –D [范围]功能:前者为显示从指定地址开始的一段存储单元的值;后者为显示指定范围内的存储单元的值。

      例如: - D 200 ;显示从 DS:200 单元开始的各单元的值- D 200 L10 ; 显示从 DS:200 单元开始的 10 个字节单元的值应用:常用于在调试过程中检查变量的值 (5) 单步执行命令 T,格式为:- T [=地址 ]功能:从指定地址执行一条指令后停下来,显示寄存器内容和状态值若未指定地址,则执行当前指令的下一条指令6) 反汇编命令 U ,格式为:-U [地址] 或 -U 范围功能:从制定地址开始,反汇编 32 个字节,或对指定范围内的主存内容进行反汇编若没有指定地址,则接着上一个 U 命令的最后一个单元开始;若还没有使用过 U 命令,则从当前 CS:IP 开始例如:-U 100,1061343:0100 B80302 MOV AX,02031343:0103 BB0540 MOV BX,40051343:0106 01D8 ADD AX,BX其中,屏幕最左边是主存逻辑地址(段地址:偏移地址) ,中间是该指令的机器代码,右边是对应指令的汇编语句格式7) 运行命令 G, 格式为: -G[ = 起始地址] [断点地址 1,断点地址 2,……,断点地址 10]功能:从等号后的起始地址开始运行,直到遇到断点或程序正常结束。

      例如:-G=100 106则程序执行从 100 开始的程序段,到断点 106 停止此时指令 ADD AX,BX 并未执行二、 实验目的及要求1、编语言调试环境 Debug 的使用,重点掌握常用命令( A R D E T)的使用,其他指令在以后的学习中逐步掌握 2、利用 Debug 命令,调试采用不同寻址方式的指令的执行结果,从实践中加深对寻址方式和 MOV 指令的理解三、 实验内容1、 Debug 程序的调入和退出2、 Debug 常用调试命令的使用3、 MOV 指令、XCHG 指令的调试四、 实验步骤1、 先进行简单的指令练习:1)D 命令(显示):-d, -d 0af9:0100 , -d 0af9:0100 0107,-d ds :0100 0107 , -d 0100 0107,-d 0100 L 82)E 命令(修改):-e 0af9 : 0100 41 ‘a’ , -e 0100 ‘ABCD’修改后,用-D 查看!3)-R 寄存器显示修改命令:-r -r ax 并修改 ax 中内容 4)汇编命令-A:做下面题通过-r 查看寄存器变化,-t 单步调试(看下题)-a 执行后默认地址,-a 段地址:偏移地址 是指定地址编写程序5)-U 反汇编命令:-a 后编写语句,-d 查看,-u 进行反汇编6)-T 单步执行(看下题)7)-Q 退出命令2、练习:首先输入以下程序段,然后单步执行并查看结果;改变寄存器 AX 的初始值后再运行,并查看结果。

      带下划线的部分为程序员输入的内容在 DEBUG 环境下,所有的数据均以十六进制输入和显示A137B:0100 mov ax,20137B:0103 mov bx,ax137B:0105 add ax,bx137B:0107 mov [2000],ax137B:010A-T=0100AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=137B ES=137B SS=137B CS=137B IP=0103 NV UP EI PL NZ NA PO NC137B:0103 89C3 MOV BX,AX-T=0103AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=137B ES=137B SS=137B CS=137B IP=0105 NV UP EI PL NZ NA PO NC137B:0105 01D8 ADD AX,BX-TAX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=137B ES=137B SS=137B CS=137B IP=0107 NV UP EI PL NZ NA PO NC137B:0107 A30020 MOV [2000],AX DS:2000=000-TAX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=137B ES=137B SS=137B CS=137B IP=010A NV UP EI PL NZ NA PO NC137B:010A 0000 ADD [BX+SI],AL DS:0020=FF-D 2000 L2137B:2000 40 00 .;修改 0100 处的指令 mov ax,20 将 AX 的初始值改为 10,并重新运行-A 0100137B:0100 mov ax, 10137B:0103;最后一条指令执行的结果如下:AX=0020 BX=0010 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=137B ES=137B SS=137B CS=137B IP=010A NV UP EI PL NZ NA PO NC137B:010A 0000 ADD [BX+SI],AL DS:0010=DF;查看 2000 单元的值为 0020H-D 2000 l2137B:2000 20 00 .;修改 2000 单元的值,由 20h 改为 30h 并重新显示-E 2000137B:2000 20.30-D 2000 l2137B:2000 30 00 五、 拓展题MOV、XCHG 的调试。

      要求:用汇编命令 A 输入以下源程序段,用 T 命令单步执行,查看执行结果:寄存器或存储单元的值提示:在 DEBUG 环境下输入程序段时要省掉立即数后面的字符 “H”1、MOV 指令的调试:程序段:MOV AL, 55HMOV AH, ALMOV BX, 1000HMOV BYTE PTR[BX], 66H(将 66H 放到以寄存器间接寻址的 字节单元中,-d 查看) MOV WORD PTR[BX+2], 77H (将 77H 放到以寄存器间接寻址的字单元中,-d 查看)MOV [BX+4], AX2、 XCHG 指令的调试:程序段:MOV AX, 0203HMOV BX, 0405HXCHG AX, BXXCHG BL, BH 3、 练习寻址方式:首先用-r 先查看寄存器的内容,通过-a 进行 mov 语句输入,然后通过-t 查看寻址后寄存器的变化mov dl,20h (-a,-t)mov al,bl (-r,-a,-t)mov al,[1234] (-a,-r,-t)mov al,[bx] (-a,-r,-t)mov al,[bx]+2 (-a,-r,-t)mov al,[bi][si] (-a,-r,-t)六、 实验报告写出在 DEBUG 状态下编写、运行程序段的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.