1、Debug安装使用教程启动DebugWin7 32位&xp可以点开始运行输入cmd输入debug没找到运行的可以同时按键盘上的WIN图标键+R启动运行输入debug回车Win7 64位&win8&win10网上下载DOSbox及Debug文件我已经上传群里了把Debug文件放在D盘根目录下,不要放文件夹里而DOSbox直接安装虽然写的是win7 32位但是win8 win7 64位也可以用如果你懂DOS怎么打开文件,那你可以直接关闭这个文档了安装后点运行软件有2个窗口,上面的那个窗口别管他,是一个虚拟运行程序然后依次输入Mount c d: 回车(注意/ 别搞错了)C:回车Debug 回车De
2、bug教程看的懂英语的同学可以直接输入?就可以打开帮助,里面有debug所有的命令? 显示 Debug 命令。 a 输入并汇编 8086/8087/8088 汇编源程序。c 比较内存的两个部分。d 显示内存单元的内容。 e 从指定地址开始,修改内存的内容。f 使用指定值填充一段内存。 g 连续运行在内存中的机器指令程序。h 执行十六进制运算。i显示来自特定端口的 1 字节值。l 将文件或磁盘扇区内容加载到内存。m 复制内存块中的内容 n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。o 向输出端口发送 1 个字节的值。 p 执行循环、重复的字符串指令、软件中断或子例程。q 退出
3、Debug。 r 显示或改变一个或多个寄存器内容。 s 在部分内存中搜索一个或多个字节值的模式。 t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。 u 反汇编机器指令成汇编指令并显示相应的源程序指令。w 将被测试文件写入磁盘。xa分配扩展内存。xd释放扩展内存。xm映射扩展内存页。xs显示扩展内存的状态。我依次解释一下每个命令的意义和用法A命令输入A后回车即可进入汇编模式前面是逻辑地址,可直接在后面输入汇编命令注意:输入的命令中不能带16进制符号H,debug默认为16进制退出汇编模式直接按回车如果A后面带有地址就会在地址处开始汇编可输入
4、:a073F:0000 a0000 a000 a00 a0这几个都是一个意思,系统会自动识别的如果不加地址,就会接着上次汇编后面继续开始C命令C命令是将2块内存的内容进行比较如这条信息的内容就是C 起始地址(073F:0100)终止地址(073F:0140)对比的地址(073F:0130)逻辑地址可省略高位0和DS地址2块长度一样,对比地址只用写出起始端就是把100到140的数据逐个和130到170的数据进行对比找出不一样的数据一样的数据不会列出来,列出来的都是不一样的数据或者这样输C 起始地址(073F:0100)长度(L10)对比段的起始地址(073F:0130)含义是一样的D命令显示内存
5、中的数据D命令默认看8*16=128个数据,每一行开始是前面标的地址,然后依次加一如第一行073F:0100的数据是B0,073F:0101的数据是20,073F:010F的数据是00还可以这样输D 起始地址0 终止地址3 然后显示储存在073F:0000到073F:0003的4个数据或者这样D 起始地址073F:0000 长度L100 就显示073F:0000后100个内存单元内的数据接着是E命令E命令和D命令是一起用的如是修改内存中073F:0100 即途中圈住的那个位置的数据,直接在点后输入你想改的参数就可以修改,如果不想修改,按回车退出073F:0100处的数据被修改了F命令使指定的数
6、据值存入指定的为之中,如Error可以忽略了_!可以看到F 起始地址100 终止地址103 数据21 22 23 24然后内存中相应位置的数据就被更改了G命令用DOSbox运行debug的同学切记不要用这条命令,会死机的用CMD运行的可以无视上面那句话G命令是执行命令即执行你指定地址段的汇编程序运行如先编汇编程序从a100开始编然后g=100就是从100开始执行程序,一直到执行完连着的所有程序,即程序断点下面那句话是说程序已经执行完了如果输入g=100 10b 则只执行100到10b之间的程序,由于是断点形式,下面默认会打出执行完10b之后的个寄存器数据状态H命令计算两个十六进制数的和与差如前
7、面的是和后面的是差I命令从计算机输入端口读取数据并显示如从3F8号端口读取数据并显示的命令为:I3F8M命令将指定内存区域的数据复制到指定的地址去如M 起始地址100 终止地址13F 目标地址140即把100到13F的数据复制到140以后N命令和W命令N设置文件名,为将刚才编写的汇编程序存盘做准备W 将刚刚编写的汇编程序存盘N 路径W 直接写由于我是用DOSbox运行的debug,没用设置磁盘,所以储存时找不到磁盘,不过用WIN7 32位和XP直接运行的不会出现这行字L命令从磁盘中将文件或扇区内容读入内存同样的原因找不到磁盘,如果找到了会在之后的内存中直接加载刚刚存的文件O命令向计算机输出端口
8、送出数据如向90号端口发出数据20H:o9020T命令执行汇编程序,单步跟踪。看刚执行命令的个寄存器数据的变化每输入一个T执行下一步输入T2就是连续执行2步T3 T4 T10同理P命令执行汇编程序,单步跟踪与T命令不同的是:P命令不会跟踪进入子程序或软中断P命令的使用方式与T命令的使用方式完全相同Q命令退出DOSbox是退出到DOSR命令读取命令,读取当前寄存器的值如果输入R +寄存器名称,如R ax输入16位数据可以更改AX的值如FFFFAX已更改S命令在指定的内存区域中搜索指定的串先输入D100查内存中数据然后输入S 起始地址100 终止地址140 数据串 21 22 23 24意思是在100到140 2个区间内搜索是否存在数据串21 22 23 24连着的4个数据然后把其起始地址即21的地址显示出啊来U命令对机器代码反汇编显示U后面接地址就是从那个地址开始读汇编码机器码u0从0000开始读机器码一般读16个字节即XXX0到XXXF还有这种U100 10b就是读100到10B的汇编码机器码剩下的4个XA,XD,XM,XS没必要了解,上面有翻译然后就没用然后了
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1