汇编语言之Debug教程篇

参考书籍《汇编语言》——王爽Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。命令用途Debug-R查看、改变CPU寄存器的内容Debug-D查看内存中的内容Debug-E改写内存中的内容Debug-U将内存中的机器指令翻译成汇编指令Debug-T执行一条机器指令…

大家好,又见面了,我是你们的朋友全栈君。

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


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. 仅用于学习交流,如有侵权请告知,后会删除。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128431.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js中正则表达式的用法_iperf使用方法

    js中正则表达式的用法_iperf使用方法首先必须说明的是,这类文章(js正则表达式)在c站或者整个it类论坛是很多人写过的,而我认为我这篇的不同之处在于更加“小白”化,这也与我一贯的风格有关吧。关于JavaScript正则表达式,其他的文章大多一上来就太过激进,不利于初学者学习(我当粗就是这么被劝退的),这也是我为什么要坚持写这篇文章,希望小白在看了这篇文章后,不管能不能完全掌握JavaScript正则表达式,但至少对JavaScript正则表达式能有一个比较深刻的印象吧。

    2022年9月20日
    1
  • 自动化测试平台(三):用户token验证及用户增删改查接口开发

    自动化测试平台(三):用户token验证及用户增删改查接口开发上一篇我们实现了用户登录的验证并返回token。那如何去校验请求的token是否有效呢?这篇内容为你讲解token的验证及用户管理(增删改查)的功能。

    2022年6月29日
    25
  • 2021年电厂锅炉考试题及答案_电厂锅炉考试题及答案

    2021年电厂锅炉考试题及答案_电厂锅炉考试题及答案题库来源:安全生产模拟考试一点通公众号小程序2022G2电站锅炉司炉考试试题系G2电站锅炉司炉考试题模拟预测卷!2022G2电站锅炉司炉操作证考试题库及在线模拟考试根据G2电站锅炉司炉新考试大纲。G2电站锅炉司炉复审模拟考试通过安全生产模拟考试一点通上章节练习。1、【多选题】固体未完全燃烧热损失与下列哪些因素有关()。(ABCD)A、燃煤品质B、燃烧方式C、燃料与空气混合的程度D、炉膛温度2、【多选题】循环流床锅炉影响物料回送量的因素较多,主要有()。(BCD…

    2025年9月2日
    7
  • Pycharm-用鼠标滚轮放大缩小字体大小[通俗易懂]

    Pycharm-用鼠标滚轮放大缩小字体大小[通俗易懂]1,pycharm字体放大设置:①,File—>setting—>Keymap—>在搜寻框中输入:increase—>IncreaseFontSize(双击)—>在弹出的对话框中选择AddMouseShortcut②,在弹出的对话框中按住ctrl键,鼠标滚轮向上滑动后点击OK。2,Pycharm字体缩小设置:①,File—>setting—>Keymap—>在搜寻框中输入:decrease—>DecreaseFontSize(双击)—>在弹出的对

    2025年7月6日
    1
  • spring 注解验证@NotNull等使用方法「建议收藏」

    spring 注解验证@NotNull等使用方法「建议收藏」常用标签@Null被注释的元素必须为null@NotNull被注释的元素不能为null@AssertTrue被注释的元素必须为true@AssertFalse被注释的元素必须为false@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值@DecimalMin(

    2022年6月13日
    31
  • Java面向对象三大特征的理解

    Java面向对象三大特征的理解面向对象三大特征的理解初始理解封装继承多态初始理解其实这些知识很早就有接触,而且一些概念也牢记于心了。自己叙述面向对象的特征会是这样的:面向对象的三大特征是封装、继承和多态。封装是对代码的封装以实现迪内聚高耦合的设计,使代码更安全且具有良好的扩展性。继承是父类产生子类的过程,子类可以使用父类的非私有的属性和方法。多态是一个对象在不同时刻可以表现出不同状态的现象。外加Animal和Cat的例子。这一段时间敲了不少的Java代码,在敲代码的过程中想了无数次的面向对象这几个概念,对他们有了更深的了解,在这

    2022年7月15日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号