汇编语言Debug命令详解教程
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>1. Debug-R命令</li><li>2. Debug-D命令</li><li>3. Debug-E命令
</li><li>4. Debug-U命令
</li><li>5. Debug-T命令</li><li>6. Debug-A命令</li></ul></div><p>参考书籍《汇编语言》——王爽</p>
<p>Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。</p>
<table>
<thead>
<tr>
<th align="left">命令</th>
<th align="center">用途</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Debug-R</td>
<td align="center">查看、改变CPU寄存器的内容</td>
</tr>
<tr>
<td align="left">Debug-D</td>
<td align="center">查看内存中的内容</td>
</tr>
<tr>
<td align="left">Debug-E</td>
<td align="center">改写内存中的内容</td>
</tr>
<tr>
<td align="left">Debug-U</td>
<td align="center">将内存中的机器指令翻译成汇编指令</td>
</tr>
<tr>
<td align="left">Debug-T</td>
<td align="center">执行一条机器指令</td>
</tr>
<tr>
<td align="left">Debug-A</td>
<td align="center">以汇编指令的格式在内存中写入一条机器指令</td>
</tr>
<tr>
<td align="left">…</td>
<td align="center">…</td>
</tr>
</tbody>
</table>
<p>Debug的由来?</p>
<p>主人公:Grace.Hoper(格雷斯.霍普)<br />
1937年,美国青年霍德华.艾肯找到IBM公司为其投资200万美圆研制计算机,第一台成品艾肯把它取名为:马克1号,又叫“自动序列受控计算机”,从这时起IBM公司由生产制表机,肉铺磅秤,咖啡研磨机等乱七八糟玩意儿的行业,正式跨进“计算机”领地。<br />
为马克1号编制程序的是一位女数学家雷斯.霍波,有一天,她在调试程序时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的”称呼“,竟成为后来计算机领域的专业行话。如DOS系统中的调试程序,程序名称就叫DEBUG.</p>
<p>实例讲解:</p>
<p class="maodian"></p><h2>1. Debug-R命令</h2>
<p>话不多说,直接上图 </p>
<p>1. 查看寄存器中的内容</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014333961.jpg" /></p>
<p>2. 改变寄存器中的内容</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014333962.jpg" /></p>
<p class="maodian"></p><h2>2. Debug-D命令 <br />
</h2>
<p>1. 查看内存中的内容,如果没有明确指出查看多少内存单元则默认为128字节存储单元。</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014333963.jpg" /></p>
<p>2.给出具体的查看范围,这里我要查看内存单元是2000:1000~2000:1009这10个存储单元。</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334064.jpg" /> </p>
<p>3.查看某一个具体的存储单元,情况类似,例如我查看2000:1024指向的存储单元中的内容。 </p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334065.jpg" /></p>
<p class="maodian"></p><h2>3. Debug-E命令 <br />
</h2>
<p>1. 连续改写内存中的内容,比如我要改写从2000:1000指向内存单元开始连续的6个字节。用E命令修改后,再用D指令显示内存单元中的数据。</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334066.jpg" /></p>
<p>2. 逐个改写内存中的内容,比如我要改写从2000:1000指向内存单元开始连续的6个字节。</p>
<p> (1)输入E 2000:1000 Enter键结束 <br />
(2)光标停在“.”后面,“.”前面是以前内存单元中的数据,后面是要修改的值,输入值后点击空格键,跳到下一个内存单元进行修改,如果不输入直接点击空格键则表示不对当前内存单元进行修改(图中我并没有对2000:1001指向的内存单元进行修改)。 <br />
(3)所有内存单元的值均修改完毕后,点击Enter键退出E命令。 <br />
流程图展示步骤:</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145254664.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145433805.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145514176.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145805329.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145854806.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110145932745.jpg" /></p>
<p>最终结果:</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334068.jpg" /> </p>
<p>3.E命令向指定的内存单元中写入字符、字符串。D命令显示内存单元中的数据,显示的是其对应的ASCII码。</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334069.jpg" /></p>
<p>4.E命令向内存中写入机器码,后面介绍U命令时,再用其查看机器码的含义。</p>
<blockquote>
<p>机器码 对应的汇编指令 <br />
B80100 MOV AX,0001 <br />
B90200 MOV CX,0002 <br />
01C8 ADD AX,CX </p>
</blockquote>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334070.jpg" /></p>
<p class="maodian"></p><h2>4. Debug-U命令 <br />
</h2>
<p>1. 将内存中的机器指令翻译成汇编指令。用上面的例子进行说明:</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334071.jpg" /></p>
<p class="maodian"></p><h2>5. Debug-T命令</h2>
<p>1. 执行一条机器指令。对上面给出的机器指令进行执行,结果如下:</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110150242098.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110150316046.jpg" /></p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/20211110150350409.jpg" /></p>
<p class="maodian"></p><h2>6. Debug-A命令</h2>
<p>1. 命令以汇编指令的格式在内存中写入一条机器指令。用D命令显示,U命令将将内存中的机器指令翻译成汇编指令。</p>
<p style="text-align: center"><img title="" alt="这里写图片描述" src="https://img.jbzj.com/file_images/article/202111/2021111014334173.jpg" /></p>
<p>至此收官</p>
<p>另附: <br />
1. 关于Windows 64 位系统下如何安装配置 DosBox 及 debug.exe。请参考以下文章:</p>
<p><font color="#333333">汇编语言DOSBox及debug.exe在Windows64下环境搭建</font></p>
<p>2. 王爽的《汇编语言》</p>
<p>3. Debug命令大全</p>
<p>4. 仅用于学习交流,如有侵权请告知,后会删除。</p>
<p>以上就是汇编语言Debug命令详解教程的详细内容,更多关于汇编语言Debug命令的资料请关注琼殿技术社区其它相关文章!</p>
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>8086汇编开发环境搭建和Debug模式介绍(图文详解)</li><li>汇编语言DOSBox及debug.exe在Windows64下环境搭建</li><li>汇编语言学习手把手的Debug教程</li><li>汇编:Debug的常用命令</li><li>汇编语言 masm5与debug命令使用方法小结</li><li>汇编语言中debug命令使用小结</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]