汇编语言Debug命令详解教程

目录
  • 1. Debug-R命令
  • 2. Debug-D命令
  • 3. Debug-E命令
  • 4. Debug-U命令
  • 5. Debug-T命令
  • 6. Debug-A命令

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

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. 王爽的《汇编语言》

3. Debug命令大全

4. 仅用于学习交流,如有侵权请告知,后会删除。

以上就是汇编语言Debug命令详解教程的详细内容,更多关于汇编语言Debug命令的资料请关注我们其它相关文章!

(0)

相关推荐

  • 汇编语言入门教程(这一篇足矣)

    汇编语言是一种最低级.最古老.不具有移植性的编程语言,它能够直接访问计算机硬件,所以执行效率极高,占用资源极少,一般用于嵌入式设备.驱动程序.实时应用.核心算法等. 汇编语言的缺点是开发周期特别长,实现一个简单的功能都非常麻烦,已经很少用来编写应用程序了. 1 本讲座以汇编初学者或对汇编一点也不了解的读者为对象,汇编高手不属于该范围,但强烈建议高手指导并增补.修改本文. 2 任何读者可以跟此贴,提出疑问,或解答其中的问题,但对于所有跟贴,水贴.内容有错.毫不相干贴将直接删除,有意义的贴可能会合并

  • 8086汇编开发环境搭建和Debug模式介绍(图文详解)

    1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语言.工欲善其事,必先利其器,在8086汇编语言正式开始学习之前,先介绍一下如何搭建8086汇编的开发环境. 汇编语言设计之初是用于在没有操作系统的裸机上直接操作硬件的,但对于大部分人来说,在8086裸机上直接进行编程将会面临各种困难.好在我们可以使用软件模拟器来模拟硬件进行8086的学习实践.在<汇编语言>中作者推荐通过windows环境下的masm和debug进行学习. masm介绍: masm是一款DOS下的汇编工具包,

  • 王爽 汇编语言学习笔记(详细)

    王爽汇编语言第三版是一款高清完整版的专业编程图书,该书结构设计合理,内容全面涵盖知识点丰富,适合自学者使用,有需要者快来 一.基础知识 1.指令 机器指令:CPU能直接识别并执行的二进制编码 汇编指令:汇编指令是机器指令的助记符,同机器指令一一对应. 指令:指令通常由操作码和地址码(操作数)两部分组成 指令集:每种CPU都有自己的汇编指令集. 汇编语言由3类指令组成. 汇编指令 伪指令:没有对应的机器码,由编译器执行,计算机并不执行 其他符号:如+.-.*./等,由编译器识别,没有对应的机器码.

  • 汇编语言中的segment

    一个正常的应用程序被由若干个 segment组成. 定义segment: SECTION .段名 SECTION 也可以小写 如: 定义数据段: section .data 定义代码段: section .text绝对的符号:Absolute symbols如: 在IDA中 有一行 _mh_execute_header = 1000h 这句话表示,此应用程序的 header 地址是0000000000001000 段寄存器: cs: 代码段寄存器 es: 附加段寄存器 ss: 堆栈段寄存器 ds

  • 汇编语言Debug命令详解教程

    目录 1. Debug-R命令 2. Debug-D命令 3. Debug-E命令 4. Debug-U命令 5. Debug-T命令 6. Debug-A命令 参考书籍<汇编语言>--王爽 Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询. 命令 用途Debug-R查看.改变CPU寄存器的内容Debug-D查看内存中的内容Debug-E改写内存中的内容Debug-U将内存中的机器指令翻译成汇编指令Debug-T执行一条机器指令Debug-A以汇编指令的格式在内存中写

  • DEBUG命令详解教程第1/2页

    DEBUG是DOS中的一个外部命令,从DOS 1.0起就带有此命令,因此可见此命令的重要性了.虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握.因此,现将DEBUG的命令详细介绍一番,以让大家知道它的使用. Debug:A(汇编) 直接将 8086/8087/8088 记忆码合并到内存. 该命令从汇编语言语句创建可执行的机器码.所有数值都是十六进制格式,必须按一到四个字符输入这些数值.在引用的操作代码(操作码)前指定前缀记忆码. a [address

  • DEBUG 命令详解

    启动DEBUG 1.打开Windows命令窗口 在Windows 95/98的环境中,打开命令窗口的步骤为:点击"开始"→"运行",输入"command"命令: 在WindowsXP及WIN7的环境中,打开命令窗口的步骤为:点击"开始"→"运行",输入"cmd"命令: 2.启动DEBUG 在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表].其中:文件名指定被调

  • DEBUG 命令详解

    Debug:A(汇编) 直接将 8086/8087/8088 记忆码合并到内存. 该命令从汇编语言语句创建可执行的机器码.所有数值都是十六进制格式,必须按一到四个字符输入这些数值.在引用的操作代码(操作码)前指定前缀记忆码. a [address] 参数 address 指定键入汇编语言指令的位置.对 address 使用十六进制值,并键入不以"h"字符结尾的每个值.如果不指定地址,a 将在它上次停止处开始汇编. 有关将数据输入到指定字节中的信息,请参看Debug E(键入). 有关反

  • 汇编语言入门汇编指令及寄存器详解教程

    目录 前言 什么是汇编语言 汇编语言产生的原因 汇编与二进制的关系 寄存器 寄存器作用 存取速度比较 寄存器分类 常用寄存器用途 寄存器EAX.AX.AH.AL的关系 汇编语言指令 数据传送指令 算术运算指令 逻辑运算指令 循环控制指令 转移指令 linux 和 windows 下汇编的区别 总结 前言 我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐步添加到各类高级语言之中,汇编作为最接近机器指令的低级语言,已经很少被直接拿来写程序了,不过我还真的遇到了一个,那是之前的一个同事,因为在

  • Linux curl命令详解

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 语法: # curl [option] [url] 常见参数: -A/--user-agent <string> 设置用户代理发送给服务器 -b/--cookie <name=string/file> cookie字符串或文件读取位置 -c/--cookie-jar <file> 操作

  • Ubuntu14.04搭建Caffe(仅CPU)详解教程

    首先吐槽一下本屌的笔记本,我现在的笔记本还是大一时候买的Dell INSPIRON 4010,没有Nvidia,没有Nvidia,没有Nvidia,没有Nvidia,重要的事情说四遍,呵呵. 操作系统: Ubuntu 14.04 是否使用PYTHON API: 是, 目标是安装后CAFFE能作为PYTHON MODULE来使用 硬件: 低端笔记本, 只使用CPU模式 1.安装依赖 sudo apt-get install libprotobuf-dev libleveldb-dev libsna

  • Linux Docker安装wordpress的方法详解教程

    安装mysql服务 下载mysql镜像: docker pull mysql 创建mysql容器并后台运行,指定数据库密码是123456.-e指定环境变量. docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql 使用官方的wordpress wordpress镜像daocloud.io: docker pull daocloud.io/daocloud/dao-wordpress:latest 拉取镜像前请先登录: d

  • Maven 配置文件 生命周期 常用命令详解

    当前,JVM生态圈主要的三大构建工具: Apache Ant(带着Ivy) Maven Gradle 对于初学者,Ant是最清晰的,只要读懂Xml配置文件你就能够理解它干了什么,但是ant文件很容易变的更加复杂.Maven有自己的工程目录规则和内置的构建生成周期,从而使构建文件更加简单.gradle有很多开箱即用的插件,语法更加短小精悍,易于理解. 在讲解maven之前这里我们先简单比较下Maven和Ant.下面是一个简单的Ant例子.这个例子可以看出我们需要明确的告诉Ant.我们想让他做什么.

  • python flask安装和命令详解

    Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架.Web框架可以让我们不用关 心底层的请求响应处理,更方便高效地编写Web程序.因为Flask核心简 单且易于扩展,所以被称作微框架(micro framework).Flask有两个主 要依赖,一个是WSGI(Web Server Gateway Interface,Web服务器网关 接口)工具集--Werkzeug(http://werkzeug.pocoo.org/),另一个是 Jinja2模

随机推荐