程序调试技术课件.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序调试技术课件

8086/8088宏汇编语言程序设计 汇编程序实验 汇编语言源程序编写好以后, 必须经过下列几个步骤才能在机器上运行: 1、用编辑程序EDIT建立汇编语言源程序文件(ASM文件) 例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。 也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如: C: edit hello.asm MASM命令之后建立3个文件: (1) .OBJ的目标文件,必须建立的,包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。 (2) .LST的列表文件,包含了源程序的全部信息(包括注释)和汇编后的目标程序,可以打印输出,可供调试检查。 (3) .CRF的交叉索引文件,用来了解源程序中各符号的定义和引用情况的。 .LST和.CRF两个文件不是必须建立的,可有可无,可以通过汇编时的命令加以选择。 以上过程也可使用masm hello;一步完成。最后的;表示masm命令全部用默认选项,不出现三个提示。 汇编过程中发现源程序有语法错误,则列出有错误的语句和错误的代码。 警告错误(Wraning Errors)和严重错误(Severe Errors)。 警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数及行号、错误的性质等。这时,就要对错误进行分析,找出问题和原因,然后再调用编辑程序加以修改,修改后重新汇编,直到汇编后无错误为止。 3、 连接程序LINK生成可执行程序文件(EXE文件) Link命令之后生成3个文件: (1) .EXE的可执行文件 (2) .LIB的库文件,主要是为高级语言提供的。 (3).MAP 的内存分配文件,给出每个段在存储器中的分配情况,该文件可有可无。 以上过程也可使用link hello;一步完成。最后的;表示link命令全部用默认选项,不出现三个提示。 以上汇编masm和链接link可用ml命令一步完成 ml hello 但注意,ml命令不是所有masm版本中都有的 4、当建立了可执行文件HELLO.EXE后,就可直接在DOS下执行该程序: MASM编译源文件后,用DEBUG调试可执行文件。 在“命令提示符”窗口下执行“DEBUG文件所在路径+文件名”指令 程序调试DEBUG DEBUG的进入和退出 输入DEBUG然后回车,就能进入DEBUG状态了,出现提示符“-”。 1、显示内存单元内容:D命令 1)-D 起始地址 如 –D 1AF5:100;从1AF5:100起始的位置上显示128字节。 2、显示寄存器命令-R命令 输入R然后回车,在屏幕上将会显示各寄存器的内容。 第一行显示的是各寄存器的内容。 在第二行后半段显示标志寄存器的各标志位状态。 第三行表示现在CS:IP指向的一条指令,也就是下一条即将执行的指令。 修改某个寄存器的值 如-R CX,在”:“后输入100,即可修改CX值为100。 3、显示源程序指令(反汇编)-U命令 显示机器代码对应的汇编指令 命令格式: 1)U 地址 (从指定地址开始显示32个字节目标代码) 如-U CS:100 把CS:100开始的32字节的目标代码转成汇编指令 2)U 范围(指定起始地址和结束地址) 如:-U CS:12 28 表示显示从CS:12到CS:28代码反汇编 4、修改内存单元内容-E命令 E命令有两种格式: (1)用内容表修改内存单元 格式: -E 地址 字节值表 字节值表为内存单元的新数据,各字节单元的数据以空格分开。 例如 –E DS:0 56 ‘ABC’ 23 表示将以DS:0为起始地址的连续5个字节单元中依次存放数据56H,字符‘A’,‘B’,‘C’的ASCII码和数据23H。 (2)逐个内存单元修改 命令格式:-E 地址 如输入 –E DS:00 在原值后输入修改后新值即可 新值输入后: 1)键入空格:屏幕上显示下一个高字节单元的内容,并等待输入新数据,如果再键入空格则显示更高一个字节的内容。 2)键入连接号“-”:屏幕显示上一个低字节单元内容,并等待输入新数据,可从高字节到低字节修改。 3)键入回车:结束这次内存修改。如果前两种操作未输入新数据就回车,则此单元数据未做修改。 5、用指定字节值表来填充内存区域-F命令 格

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档