汇编:Debug的常用命令_汇编debug命令-程序员宅基地

技术标签: 汇编  汇编语言  debug常用命令  

Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可
以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
请添加图片描述

1、Debug的常用功能

R命令:查看、改变CPU寄存器的内容;
D命令:查看内存中的内容;
E命令:改写内存中的内容:
U命令:将内存中的机器指令翻译成汇编指令:
T命令:执行一条机器指令;
A命令:以汇编指令的格式在内存中写入一条机器指令。
Q命令:退出debug
P命令:类似于step over(“t”命令类似于step into),可用于跳过loop循环
G命令:跳过前面的代码,停留到指定的代码位置

2、R命令

输入r:查看所有寄存器的值
输入r 寄存器名称:修改寄存器的值
输入r ax:将ax寄存器的值改为0100H
在这里插入图片描述

3、D命令

输入d:可以查看内存中的内容
输入d 段地址:偏移地址:查看特定位置的内存数据
输入d 段地址:起始偏移地址 结尾偏移地址:查看特定位置和特定范围的内存数据
输入d 偏移地址d 起始偏移地址 结尾偏移地址:会将DS的内容作为段地址
在这里插入图片描述右边是每个内存单元中的数据对应的可显示的ASCII码字符,如果没有对应的ASCII字符,就显示“.”。

4、E命令

1、输入e 段地址:偏移地址 数据串修改特定位置的内存数据:
在这里插入图片描述
2、输入e 段地址:偏移地址后按Enter也可以修改特定位置的内存数据,数据之间用空格隔开:
在这里插入图片描述

5、U命令

输入uu 段地址:偏移地址可以将内存中的内容翻译为对应的汇编指令:
在这里插入图片描述由3部分组成

1、最左边一列:是指令的地址段地址:偏移地址
2、中间那一列:是指令对应的机器指令
3、最右边一列:是汇编指令

6、A命令

输入a、a 段地址:偏移地址在这里插入代码片可以从某位置开始写入汇编指令:
在这里插入图片描述

应用拓展:
在这里插入图片描述

(2)用目前所学过的汇编指令,计算2的4次方(最多使用4条指令)
在这里插入图片描述

(3)查看内存中的内容。
PC机主板上的ROM中写有一个生产日期,在内存FFFOOH~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。
在这里插入图片描述
(4)向内存从 B8100H 开始的单元中填写数据,如:

-e B810:0000 01 01 02 02 03 03 04 04

请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。
在这里插入图片描述8086 的显存地址空间是 A0000H~BFFFFH,其中 B8000H~BFFFFH 为 80*25 彩色字符模式显示缓冲区,当向这个地址空间写入数据时,这些数据会立即出现在显示器上

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38633659/article/details/125166093

智能推荐

AndroidStudio无代码高亮解决办法_android studio 高亮-程序员宅基地

文章浏览阅读2.8k次。AndroidStudio 升级到 4.2.2 版本后,没有代码高亮了,很蛋疼。解决办法是:点开上方的 File,先勾选 Power Save Mode 再取消就可以了。_android studio 高亮

swift4.0 valueForUndefinedKey:]: this class is not key value coding-compliant for the key unity.'_forundefinedkey swift4-程序员宅基地

文章浏览阅读1k次。使用swift4.0整合Unity出现[ valueForUndefinedKey:]: this class is not key value coding-compliant for the key unity.'在对应属性前加@objc 即可。或者调回swift3.2版本_forundefinedkey swift4

Spring Security2的COOKIE的保存时间设置_springsecurity 设置cookie失效时间-程序员宅基地

文章浏览阅读1.3k次。http auto-config="true" access-denied-page="/common/403.htm"> intercept-url pattern="/login.**" access="IS_AUTHENTICATED_ANONYMOUSLY"/> form-login login-page="/login.jsp" defau_springsecurity 设置cookie失效时间

view滑动冲突解决实战篇2(外部拦截法)_viewpage2外部拦截事件-程序员宅基地

文章浏览阅读1.1k次。继上篇内部拦截法需求还是跟上篇一样。只不过这次用外部拦截法来解决;只要在父容器添加如下代码就可以解决了滑动冲突,很简单,套模板就行 // 分别记录上次滑动的坐标(onInterceptTouchEvent) private int mLastXIntercept = 0; private int mLastYIntercept = 0; @Override public bo_viewpage2外部拦截事件

汇编 堆栈 变量存储 指针_汇编语言栈指针-程序员宅基地

文章浏览阅读2.5k次,点赞7次,收藏9次。本文章系作者原创,未经许可,不得转载。汇编 堆栈 变量存储 指针先说栈的概念,栈其实也是一种。。。。。先说内存的概念吧。。。。。额 先说计算机吧,简单来说的话,可以把计算机理解成由CPU,内存,硬盘组成,而CPU内部又包括一种叫做内部寄存器的东西,包括 数据寄存器: AX,BX,CX,DX; 段寄存器: CS,DS,ES,SS; 指针与变址寄存器SP,BP,SI,DI; ..._汇编语言栈指针

架构师之路:从码农到架构师你差了哪些_web架构师-程序员宅基地

文章浏览阅读1w次,点赞14次,收藏56次。转载自 架构师之路:从码农到架构师你差了哪些 Web应用,最常见的研发语言是Java和PHP。 后端服务,最常见的研发语言是Java和C/C++。 大数据,最常见的研发语言是Java和Python。 可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。有..._web架构师

随便推点

超级简单的Python爬虫入门教程(非常详细),通俗易懂,看一遍就会了_爬虫python入门-程序员宅基地

文章浏览阅读7.3k次,点赞6次,收藏36次。超级简单的Python爬虫入门教程(非常详细),通俗易懂,看一遍就会了_爬虫python入门

python怎么输出logistic回归系数_python - Logistic回归scikit学习系数与统计模型的系数 - SO中文参考 - www.soinside.com...-程序员宅基地

文章浏览阅读1.2k次。您的代码存在一些问题。首先,您在此处显示的两个模型是not等效的:尽管您将scikit-learn LogisticRegression设置为fit_intercept=True(这是默认设置),但您并没有这样做statsmodels一;来自statsmodels docs:默认情况下不包括拦截器,用户应添加。参见statsmodels.tools.add_constant。另一个问题是,尽管您处..._sm fit(method

VS2017、VS2019配置SFML_vsllfqm-程序员宅基地

文章浏览阅读518次。一、sfml官网下载32位的版本 一样的设置,64位的版本我没有成功,用不了。二、三、四以下这些内容拷贝过去:sfml-graphics-d.libsfml-window-d.libsfml-system-d.libsfml-audio-d.lib..._vsllfqm

vc——类似与beyondcompare工具的文本比较算法源代码_byoned compare 字符串比较算法-程序员宅基地

文章浏览阅读2.7k次。由于工作需要,要做一个类似bc2的文本比较工具,用红色字体标明不同的地方,研究了半天,自己写了一个简易版的。文本比较的规则是1.先比较文本的行数,2.再比较对应行的字符串的长度3.再比较每一个字符串是否相同。具体代码如下:其中m_basestr和m_mergestr里面存放是待比较的字符串int basecount=m_basestr.GetLength(); int mergec_byoned compare 字符串比较算法

aetna java_pom.xml-程序员宅基地

文章浏览阅读79次。xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">org.apacheapache174.0.0org.apache.atlasapache-atlas3.0.0-SNAPSHOTMetadata Management and Data Govern..._atlas.pom

生成随机数_<math.h>随机数-程序员宅基地

文章浏览阅读1.5k次。C语言中有可以产生随机数据的函数,需要添加 stdlib. h头文件与time.h头文件。首先在main函数开头加上“ srand(unsigned)time(NULL));",这个语句将生成随机数的种子(不懂也没关系,只要记住这个语句,并且知道 srand是初始化随机种子用的即可)。然后,在需要使用随机数的地方使用 rand()函数。下面是一段生成十个随机数的代码:程序代码:#incl..._随机数