参考书籍《汇编语言》——王爽


Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。

命令 用途
Debug-R 查看、改变CPU寄存器的内容
Debug-D 查看内存中的内容
Debug-E 改写内存中的内容
Debug-U 将内存中的机器指令翻译成汇编指令
Debug-T 执行一条机器指令
Debug-A 以汇编指令的格式在内存中写入一条机器指令

Debug的由来?

主人公:Grace.Hoper(格雷斯.霍普)
1937年,美国青年霍德华.艾肯找到IBM公司为其投资200万美圆研制计算机,第一台成品艾肯把它取名为:马克1号,又叫“自动序列受控计算机”,从这时起IBM公司由生产制表机,肉铺磅秤,咖啡研磨机等乱七八糟玩意儿的行业,正式跨进“计算机”领地。
为马克1号编制程序的是一位女数学家雷斯.霍波,有一天,她在调试程序时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐的把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的”称呼“,竟成为后来计算机领域的专业行话。如DOS系统中的调试程序,程序名称就叫DEBUG.

实例讲解:
1. Debug-R命令
  话不多说,直接上图
  1. 查看寄存器中的内容
 
  2. 改变寄存器中的内容
 
2. Debug-D命令
  1. 查看内存中的内容,如果没有明确指出查看多少内存单元则默认为128字节存储单元。
 
 2.给出具体的查看范围,这里我要查看内存单元是2000:1000~2000:1009这10个存储单元。
 
  
 3.查看某一个具体的存储单元,情况类似,例如我查看2000:1024指向的存储单元中的内容。
   
3. Debug-E命令
 1. 连续改写内存中的内容,比如我要改写从2000:1000指向内存单元开始连续的6个字节。用E命令修改后,再用D指令显示内存单元中的数据。
 
 2. 逐个改写内存中的内容,比如我要改写从2000:1000指向内存单元开始连续的6个字节。
 (1)输入E 2000:1000 Enter键结束
 (2)光标停在“.”后面,“.”前面是以前内存单元中的数据,后面是要修改的值,输入值后点击空格键,跳到下一个内存单元进行修改,如果不输入直接点击空格键则表示不对当前内存单元进行修改(图中我并没有对2000:1001指向的内存单元进行修改)。
 (3)所有内存单元的值均修改完毕后,点击Enter键退出E命令。
 流程图展示步骤:
 
 最终结果:
 
  3.E命令向指定的内存单元中写入字符、字符串。D命令显示内存单元中的数据,显示的是其对应的ASCII码。
  
  4.E命令向内存中写入机器码,后面介绍U命令时,再用其查看机器码的含义。
 机器码      对应的汇编指令
   B80100      MOV AX,0001
   B90200      MOV CX,0002
   01C8       ADD AX,CX 
 
  
4. Debug-U命令
 1. 将内存中的机器指令翻译成汇编指令。用上面的例子进行说明:
 
5. Debug-T命令
 1. 执行一条机器指令。对上面给出的机器指令进行执行,结果如下:
 
6. Debug-A命令
 1. 命令以汇编指令的格式在内存中写入一条机器指令。用D命令显示,U命令将将内存中的机器指令翻译成汇编指令。
 
至此收官


另附:
1. 关于Windows 64 位系统下如何安装配置 DosBox 及 debug.exe。请参考以下文章:(https://blog.csdn.net/Plus_RE/article/details/60761467)
2. 王爽的《汇编语言》网盘链接 密码:qvci
3. Debug命令大全网盘链接 密码:7y9j
4. 仅用于学习交流,如有侵权请告知,后会删除。

汇编语言之Debug教程篇相关推荐

  1. Java断点调试 idea断点调试 debug教程

    IDEA断点调试 Java程序断点调试 文章目录 IDEA断点调试 Java程序断点调试 前言 一.什么情况下需要debug 二.使用idea如何进行debug 三.假设案例分别进行debug教程 1 ...

  2. NAS群晖DSM 进阶教程 篇三:DSM 4458 升级 DSM 4493 update7

    WOW唤醒NAS手机APP: Windows Phone 8.1测试可用"Wake my PC"的详细信息  http://www.windowsphone.com/s?app ...

  3. VCS-bilibili教程篇1-Debug Basic

    文章目录 VCS debug 本篇文章将会介绍如何学会VCS debug VCS debug 针对VCS的debug,很少会用命令来debug,是用DVE来debug,另外其实很多公司会采用verdi ...

  4. 使用Xcode 4编译器设定Release/Debug教程

    使用Xcode4编译器设定Release/Debug教程是本文要介绍的你内容,主要是来学习xcode 4的相关内容,让我们更一步的去熟悉.了解xcode 4,内容不多,不过真的可以帮助友们去解决xco ...

  5. vscode自定义HTML、vue等模板内容(一个、多个)- 教程篇

    文章目录 vscode自定义HTML模板内容(一个.多个)- 教程篇 操作如下: 注意事项:`参考上图所示`: 如何调用? `如下图示` 附:参考文章 vscode自定义HTML模板内容(一个.多个) ...

  6. phpcmsV9 添加内容:如何“增加复选框、下拉菜单”(含案例、截图)- 教程篇

    文章目录 phpcmsV9 添加内容:如何"增加多选框.下拉菜单"(含案例.截图)- 教程篇 步骤: 效果截图:省略 phpcmsV9 添加内容:如何"增加多选框.下拉菜 ...

  7. phpcmsV9 如何开启“会员注册” - 教程篇

    phpcms 如何开启"会员注册"功能 ? 步骤 · 图文教程: 步骤 · 图文教程: [后台]–> [用户] --> [会员模块配置] --> [允许新会员注册 ...

  8. node.js安装express(零起点搭建本地测试服务器)- 教程篇

    (含图文教程.代码对比,等)node.js安装express(零起点搭建本地测试服务器)- 教程篇 原教程 · 参考地址 执行step3之后,结果截图 · 如下图2 : 之后,执行step4,截图如下 ...

  9. DreamweaverCS6搭建配置php本地站点(图文教程)- 教程篇

    通过Dreamweaver.exe 配置PHP本地服务站点 一.软件安装说明: Dreamweaver_CS6.exe 二.步骤图解: 第一步: 第二步: 第三步: 第四步: 三.其他版本: Drea ...

最新文章

  1. squid缓存服务器
  2. 关于Java实现去除连续空格的延伸
  3. thinkphp-权限控制
  4. 金蝶kis商贸采购单商品代码_金蝶KIS商贸版流程
  5. 数组工具类Arrays
  6. 小电商的延时队列设计概要
  7. 【分享-免费下载】免费下载配乐/视频/平面设计/游戏素材
  8. python可以参加哪些竞赛_找出Python竞赛中可达到的分数的程序
  9. Android 垃圾回收机制★★★
  10. 脑洞啊!3D打印数字式日晷,原理简单,设计巧妙
  11. WPS Office 2005的评议
  12. 华为鸿蒙爆出惊天骗局,华为鸿蒙系统爆出惊天骗局!
  13. 阿里云 oss 存储临时Token访问
  14. 有中英文摘要的LaTeX中文模板!!!超实用
  15. 计算机24点游戏音调,24点游戏,任意点游戏在线计算器,4个数加减乘除算24点,任意点_三贝计算网_23bei.com...
  16. [循证理论与实践] Meta分析系列之五:贝叶斯 Meta 分析与 WinBUGS 软件
  17. Django channels摄像头实时视频传输
  18. iOS配置证书:Provisioning profile xx_Distribution doesn't include signing certificate iPhone Developer
  19. 物联网开放平台使用总结
  20. 图结构解决农夫过河问题(二附源代码)

热门文章

  1. android学习笔记(2)--RxJava
  2. 一个完整的SEO优化方案
  3. 计通网实验的准备工作(C语言实现)
  4. Javaweb之核心技术(绘话技术)
  5. 《当程序员的那些狗日日子》(五十九)凤凰涅磐
  6. 2021北京信息科技大学光电学院调剂复试经历
  7. python的CANOpen
  8. 文件的上传和下载(一)
  9. 简述3D点云配准算法
  10. html恋爱纪念页面,HTML5适合的情人节礼物有纪念日期功能