- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
debug_方法简介
DEBUG 学习
因为系统是win7 x64 , 需要下载DosBo 0.74 安装
并且下载放在下
DosBox 之后, 用指令
Z:\mount C: E:\masm5.0
Z:\C:
C:\debug
进入debug模式
debug命令的作用是测试和调试MS-DOS中的可执行文件。
命令格式:debug [盘符] [路径] [文件名] [parameters]
参数说明: parameters:表示指定要测试的可执行文件所需要的任何命令行信息。
Debug 命令功能如下:
debug a : 汇编8086/8087/8088记忆码。
debug c :比较内存的两个部分。
debug d :显示部分内存的内容。
debug e :从指定地址开始,将数据输入到内存。
debug f :使用指定值填充一段内存。
debug g 运行在内存中的可执行。
debug h:执行十六进制预算。
debug i:显示来自特定端口的1字节值。
debug l:将文件活磁盘扇区内容加载到内存。
debug m:复制内存快中的内容。
debug n:为1或w命令指定文件,或者指定正在测试的文件的参数。
debug o:向输入端口发送1个字节的值。
debug p:执行循环、重复的字符串指令,软件中断活子例程。
debug q:推出debug程序。
debug r:显示或改变一个或多个寄存器。
debug s:在部分内存中搜索一个或多个字节值的模式。
debug t:执行一条指令,然后显示所有寄存器的内容、所有标志的状态和debug下一步要执行的指令的加码形式。
debug u:反汇编字节并显示相应的原语句。
debug w:将被测试文件写入磁盘。
debug xa:分配扩展内存。
debug xd:释放扩展内存。
debug xm:映射扩展内存页。
debug xs:显示扩展内存的状态。
先在目录下面创建一个文档以下代码改为hello.asm首先进入masm5.0所在路径(装入-连接-调试均在masm5.0所在目录中进行)
路径E:\masm5.0\)
1、装入
格式:masm asm文件及路径1 obj文件目标路径
如:E:\masm5.0 masm .\MYDOC\hello.asm .\MYDOC\
结果:程序无错 在E:\masm5.0\MYDOC中增加文件HELLO.OBJ
2、连接
格式:link obj文件路径1
E:\masm5.0 LINK .\MYDOC\HELLO.OBJ
(此后当前目录就会出现HELLO.EXE)
格式:exe文件全名(即 HELLO.EXE)E:\masm5.0 HELLO.EXE
调试
-u 反汇编
-r 显示寄存器内容
-g [=address1][address2][address3] 执行到断点行,如:-g 12 为执行到第12行
-t [=address][value] 跟踪,配合-g使用 如:-t 12 1 为从第12行开始,每执行1条指令后停下来
-d 查看数据
-q 退出返回操作系统
作业二
在上次的作业中,介绍。
当时遇到了那个问题:
这个程序是没有办法运行的。
所以不同程序的反汇编的代码是一样的也就不足为奇了。但是当时没有找到答案,因为根本没有意识到这个是因为什么引起的。
经过老师课堂上的讲解,我知道了这是一个报错的过程。接下来我便对这个过程进行了探索。
的实验,对不同的代码进行反汇编。虽然运行但是发现了“This program cannot be run in DOS mode”后面有一段乱码。并且一段乱码之后,都会有一个的单词Rich”,那么中间的乱码是什么呢?“Rich”是什么?
这部分数据包含了一些加密数据,来标识编译这个PE文件的组件。可用来检举某些病毒程序所编译的程序来自哪台机器。
而Rich后面是 header部分。
为什么会出现这样的语句呢?
PE的意思是Portable Executable。他是环境自身的执行文件格式意味着格式似乎跨Win32的,即使在非Intel的CPU上任何32平台的PE都能识别和使用此文件格式。文件的,这些文件磁盘上存储的格式是有一定规律的。
如何去除使程序正常运行。
相应解决办法。
debug测试计算机端口
计算机串行端口不正常的时候,用debug进行。端口(RS-232C)接收端,为检查,讲和相连,用debug命令向COM1端口发送和接,只要看接收的数据和发送的是否。发送接收的两个寄存器的地址均为F8,用O发送数据,用I接收数据。
-I 3F8
00
-O 3F8 66
-I 3F8
xx
如果xx是则说明芯片是好的。同样可以用来检查其他芯片。
文档评论(0)