附录3:DEBUG使用浅析.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LOGO 在编写和运行汇编程序的过程中, 会遇到一些错误和问题, 需要对程序进行分析和调试, 调试程序 DEBUG 就是专为小汇编和宏汇编语言设计的一种调试工具。 它在调试汇编语言程序 时有很强的功能,能使程序设计者接触到机器内部,能观察和修改寄存器和存储单元内容, 并能监视目标程序的执行情况, 使用户真正接触到 CPU 内部,与计算机产生最紧密的工作联 系。 1.DEBUG 的主要特点 (1)能够在最小环境下运行汇编程序 在Dos状态下运行汇编程序, 必须将程序经过ASM或MASM汇编程序, 而后还要经过LINK 连接程序产生可执行程序,才能最终运行。在 DEBUG状态下,为用户提供了调试、控制测试 的环境,可以在此环境下进行编程、调试、监督、执行用户编写的汇编程序。因此调试周期 短,使用方便。 (2)提供极简单的修改手段 DEBUG 提供了修改命令,可以修改内存单元内容,修改寄存器的内容,为调试程序、修 改程序带来了方便。 (3)提供用户与计算机内部联系的窗口 DEBUG 具有显示命令,它既可以使用户看到某内存单元或某一块单元内容,也可以看到 CPU 内部各寄存器的内容。用单步执行命令实现跟踪执行,每执行一步都能使用户看到各寄 存器的内容的变化,以便分析和调试程序。 附录 3:DEBUG 使用资料 (4)可装入、修改或显示任何文件 当然在 DEBUG 状态下运行汇编程序也具有一定局限性: ? 在 DEBUG 状态下运行的程序不能使用宏汇编程序中的宏指令,大部分伪指令也不能使用,因此只能把程序分段调试。 ? 不能调试太长的程序,只能分块进行程序设计。 ? 在 DEBUG 状态下调试好的程序不能形成可执行文件(.EXE),因此调试好的程序只能记下,到编辑环境下重新键入调试好的程序,通过汇编程序(ASM或 MASM),再通过连接程序 (LINK)形成可执行文件(.EXE)。 2.通过 DEBUG 编写、运行汇编程序 下而通过例子使大家了解在 DEBUG状态下编写、运行汇编程序的过程, [例] 用汇编语言编写一个计算“3 十 5”的加法程序。 MOV AL,33H ;持 3 的 ASCII 码送AL 寄存器中 MOV DL,35H ;将 5 的 ASCII 码送DL 寄存器中 ADD DL,AL ;做 3+5 结果送DL 寄存器 SUB DL,30H ;将 3十 5 的结果进行调整,得到8 的 ASCII 码,送DL 寄存器 MOV AH ,2 ; INT 21H ;输出DL 寄存器中的字符 INT 20H ;中断当前执行程序 该程序是将两个十进制数_3_和5_的_ASCII码送入寄存器_AL和_DL,当_ASCII码进行相加时必须通过调整后才能得到其结果。如例中:33H十_35H_等于_68H,68H一_30H=38H,_ 38H_才是十进制_8的_ASCII码,在将结果在显示器上输出时,采用_INT_21H,为_DOS_功能 调用,即为_21_号中断调用,功能号为_2,是要求在显示器上显示_DL_寄存器中的字符,该字符应该是将字符的_ASCII码放在_DL寄存器中。INT20H_是中断正常结束程序。运行步骤如下: (1)进入DEBUG_状态 系统已经装入_DEBUG.COM_程序,因此,进入_DOS_状态,输入如下内容:_ C>debug_ 屏幕显示:―_ “一”为已进入_DEBUG_状态,在该提示符下可键入DEBUG_命令。下划线部分为用户键入的字符或命令。 (2)键入程序并汇编 用_DEBUG_的_A命令送入程序 一_a_l00_ 0A47:0100__MOV_AL,33H_ 0A47:0102__MOV_Dl,35H_ 0A打;0104__ADD_DL,AL_ 0A47:0l06__SUB_DL,30H_ 0A47:0109__MOV_AH,2_ 0A47:010B__INT_21_ 0A47:010D__INT_20_ 0A47:010F_ 一 当键入_A_命令时,自动产生程序所送内存单元的段地址和偏移地址。通过偏移地址可以看到每条指令占内存单元多少个字节、如“MOVAL,33”占两个字节,“SUB_DL,30”占_3_个字节。 当程序段送完时,只键人回车键,就退出汇编状态(A状态)回到_DEBUG_状态 “―” 。其中送入数据为十六进制数,DEBUG_状态下程序中的数据均按十六进制处理,不 需要键入H_来表示数据为十六进制数。 (3)执行程序 用_DE3UG_的G_命令执行刚刚汇编的程序: ―g_ 8 Program__terminated_normally_

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档