- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
此刻,再按下Enter键即可结束键入符号指令的操作。从屏幕的提示可以看出DEBUG已经决定了每一条指令的起始位置即地址。但在执行此程序之前,应先检查所产生的机器指令,确认刚输入的汇编语言指令没有差错。 2.3.2 U命令 用DEBUG的U命令,就可以检查你所输入的符号指令或机器指令是否正确。DEBUG的U命令是反汇编命令,是将机器指令反汇编成为汇编语言的助记符指令。使用U命令时,你必须告诉DEBUG,你想看到的第一条指令与最后一条指令的地址。上例中分别为100与106。键入: U 100,106[并按下Enter键] 屏幕将会提示下列内容: xxxx: 0100 B025 MOV AL , 25 xxxx: 0102 B332 MOV BL , 32 xxxx: 0104 00D8 ADD AL , BL xxxx: 0106 90 NOP 下面开始执行程序。首先键入R命令以显示所有寄存器的内容与第一条指令,然后键入T命令以追踪这些指令的执行。 到目前为止,你已知道如何以机器语言及汇编语言输入一段程序。当你不知道指令机器码时,一般是以汇编语言的形式来输入的,而当执行阶段中需要修改程序内容时,一般是以机器码的形式来输入的(E命令),这样比较快速。 2.3.3 在DEBUG中存储一个程序 在下列两种情况下,你可能要使用DEBUG存储一个程序到磁盘中。 1. 用DEBUG输入一个小程序且你要将它存入磁盘 (1) 装入DEBUG程序。 (2) 使用A命令或E命令建立此程序。 (3) 对此程序命名:N 文件名.COM[并按下Enter键]。此文件的扩展名必须为.COM。例如: -N L23.COM (4) 修改寄存器CX的内容为程序的长度。 (5) 使用U命令你可以知道程序的结束点,所以你要告诉DEBUG此程序的长度,在前面例子中,最后一条指令为: xxxx:0106 90 NOP 最后一条指令的长度为一个字节,所以程序的长度为106(程序的结束点)减去100(程序的起始点)再加1,其结果为7。 (6) 键入R CX[并按下Enter键],准备修改CX的内容。 DEBUG回复:CX 0000 (7) 此时,你输入程序的长度7,所以CX的内容变成7。 (8) 存储此程序:W[并按下Enter键]。DEBUG会提示:“Writing 0007 bytes”。 (9) 返回DOS,用DIR命令可以观察到你所存储的文件名L23.COM。 2. 读取一个程序、修改它并将它存入磁盘 (1) 将此程序读入内存:DEBUG 文件名.COM[并按下Enter键]。 (2) 使用U命令检查程序内容,并以E命令或A命令来输入需修改的内容。 (3) 修改寄存器CX的内容为程序的长度。 (4) 将修正过的程序写入磁盘:W[并按下Enter键]。 对以上两种方法,DEBUG都会提示:“Writing nnnn bytes”。若此数值为0,表示你未能存入此程序,再试一次。若你使用的机器是80586以上的微处理器,则必须将BX清为0000,因为它是以BX:CX来记录程序长度的。 2.4 机器语言程序的建立与调试 这一节是对本章内容的练习,通过练习与操作,使你进一步认识CPU各寄存器的作用,深入了解8086/8088存储器的管理方式,帮助你学习使用DEBUG调试程序。 练习中所使用的DEBUG命令如下: E 修改内存单元内容命令 D 显示内存单元内容命令 A 汇编命令 U 反汇编命令 R 检查和修改寄存器内容命令 T 程序追踪命令 Q 退出DEBUG状态命令 图2-2列出了命令D CS:100所操作的部分结果。只要看你自己的机器指令分布,从CS:100至CS:111的机器码即可,而紧接在这些机器指令码之后的存储单元内
文档评论(0)