汇编mov指令的操作对象都可以是什么、一些debug指令的介绍

5 篇文章 0 订阅
订阅专栏
4 篇文章 0 订阅
订阅专栏

起因(本文内容)

今天在学习王爽老师的《汇编语言》,学到mov指令的时候,我注意到王爽老师在书中列出了几个mov指令的操作对象,但是他并没有完全列出来,本着求证的态度,我使用了xp虚拟机进行了一波试验,来探究mov的操作对象究竟可以是什么

先放结论(省流小助手)

以下命令是可行的

mov 通用寄存器,通用寄存器
mov 通用寄存器,常量数据
mov 通用寄存器,内存单元
mov 内存单元,通用寄存器
mov 段寄存器,通用寄存器
mov 通用寄存器,段寄存器
mov 段寄存器,内存单元
mov 内存单元,段寄存器
mov 内存单元,内存单元

以下命令是不行的

mov 段寄存器,常量数据
mov 内存单元,常量数据
mov 段寄存器,段寄存器

对以上几个不常用命令的测试过程截图

“mov 段寄存器,内存空间” 、 “mov 内存空间,段寄存器”

测试截图上述ds:0200的值被放入了es寄存器中,而ss寄存器中的值被放入了ds:0200的位置

“mov 段寄存器,段寄存器”、“mov 段寄存器,常量数据”、“mov 内存单元,常量数据”

截图

截图

在这里插入图片描述

尝试写入命令,结果直接报错

求证过程中出现了一个有意思的问题

在求证"mov 段寄存器,内存空间"这一指令时,发生了如图所示的奇怪事情:

在这里插入图片描述
这里,之前通过d命令查看的[0100]内存空间的值明明是CD42,但是mov到段寄存器却变成了068E,显得有点奇怪,我刚开始毫无头绪,以为是环境的特性,但是后来我突然注意到,ds的值竟然和a命令的默认段地址是一致的,到这里我先打住,大家请看下图和后续的分析:

在这里插入图片描述
我的xp虚拟机debug环境下初始进入之后各寄存器的初始值是这样的(我不知道其他环境下是不是这样)

然后当我尝试使用a命令写入汇编指令的时候,我a命令后面没有接指定地址,而是使用的默认地址,我发现默认地址中的段地址和各段寄存器的地址是一样的,而且偏移地址的值和ip值是一样的。
我在想a命令的默认地址是不是受到某个段寄存器和ip值的影响,于是我使用r命令更改了各段寄存器和ip的值。

在这里插入图片描述
结果我发现a命令的默认地址还是不变,说明a的默认地址不受段寄存器的影响,而是系统提前指定好的。

回到上面的问题中,我们也就可以推出问题的答案了,一开始我们查看的ds:0100是CD42不错,但是a命令的默认初始地址就是0AE3:0100,也就是和ds:0100是一致的,所以在后续我们将汇编指令写入的时候,汇编指令就会将原本的数据给覆盖掉,那么后面mov给ss的值自然也就是变化后的了。

问题解决!

一些debug指令的介绍

关于debug的指令:

  1. r命令:裸命令可以查看寄存器的值,后面接寄存器的话可以以提问的方式修改寄存器的值,不能在寄存器后面直接加值。在这里插入图片描述

  2. t命令:单步执行汇编指令,上面图中有演示,这里就略过。

  3. d命令:查看内存中的数据,裸命令默认地址为ds:0100,后可接起始地址和终止地址。在这里插入图片描述

  4. a命令:裸命令在默认地址写入汇编指令,后可接指定地址在指定位置写入指令,上面也有演示,这里略过。

  5. u命令:后接地址,将该位置的机器指令翻译为汇编指令,不接地址翻译默认位置的指令即cs:ip的地址,但是在我的环境下,修改ip后要先用一下r命令,然后u命令才会翻译cs:ip位置的指令(我不知道为什么,很神奇)。在这里插入图片描述
    在这里插入图片描述

  6. e命令:

    • 后接地址,可以以覆盖的方式向内存中写入数据在这里插入图片描述

    • 后接地址直接回车,会一个个地修改数据,按空格进行下一个,按回车结束在这里插入图片描述

    • 后接地址再接数据,数据中间以空格隔开,可以批量修改在这里插入图片描述

结束语

大概就写这么多吧,后面再学习过程中发现什么或者有什么总结的话还会发出来的(大概吧~

为什么要学习汇编?学习汇编有哪些好处?
dvlinker的技术专栏
05-29 4万+
本文详细讲述一个从汇编代码的角度去理解多线程编程问题实例,并详细介绍熟悉汇编代码都有哪些用处。
windows debug下验证汇编指令中的mov指令传送数据
Arithmetic-logic
04-03 3059
知识储备 1.8086CPU是 16 位结构,有16根数据线,所以,可以一次性传送16位数据,也就是两个字节(这里相当于一个字)。 什么是字? 在这个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组。一个字的位数(即字长)是计算机系统结构中的一个重要特性。 2.CPU要读写一个内存单元时,必须给出这个内存单元的地址,内存地址由段地址和偏移地址组成。 DS 存放要访问数据的段...
mov指令
Daisy_Chain的专栏
01-11 1747
参考:http://blog.lanyue.com/view/87/1885071.htm mov指令的格式:mov 目标操作数,源操作数 可行的操作如下(此处所说的寄存器不包括IP): mov 寄存器,立即数 (除段寄存器) mov x ptr 存储单元,立即数(mov 段地址:[立即数],立即数)(必须指定x ptr) mov 寄存器,寄存器(所有寄存器) mov 存储单元,寄存器
COMMAND(命令)—对象行为型模式
bas_ball的专栏
07-14 535
命令模式【command】 什么是命令模式 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。稍后我会以代码加文字的形式给大家解释清楚。别名(动作( Action ),事务(Transation )) 什么场景会用到命令模式 我们模拟一下这个场景。用户去一个餐厅,可以点菜,并且可以取消之前点过的菜,原型图如下: 流程如下,用户下达...
试水汇编指令对象
阿鲲的专栏
07-30 909
mov, sub, add 指令操作对象mov   寄存器, 数据mov   寄存器, 寄存器mov   寄存器, 内存单元mov   内存单元, 寄存器mov   段寄存器, 寄存器mov   寄存器,  段寄存器mov   内存单元, 段寄存器mov   段寄存器, 内存单元------------------add,sub有:sub   寄存器,
指令定义对象--进阶阶段
weixin_30664539的博客
07-06 171
指令定义对象 每个指令定义的工厂函数,需要返回一个指令定义对象,编译器/$compile 在编译时就根据这个定义对象指令进行展开。 指令定义对象的常用属性如下: link link函数负责实现DOM和scope的数据绑定,通常在link里执行DOM事件监听和数据变化监听。 link函数在template执行后被调用。link是最常用的属性,一个指令的逻辑通常在link函数 里实现...
汇编语言指令Debug调试命令
12-31
在IT领域,汇编语言是计算机科学的基础之一,它是一种低级编程语言,与机器语言直接对应,每个指令都对应着计算机硬件的操作。对于程序员来说,掌握汇编语言能更深入地理解计算机的工作原理。本篇文章将围绕"汇编...
利用debug环境进行初级汇编程序调试与指令操作
本教程详细介绍了在debug环境下进行汇编编程的基础操作,适合初学者入门。首先,用户需要通过`C:\debug`进入debug环境。在此环境中,编写简单的汇编代码如下: 1. 用户编写了两个程序示例: - 第一个程序(地址0AF...
汇编语言基础教程:快速掌握DEBUG与核心指令
"这篇教程是针对汇编语言入门的学习者,旨在简化复杂的汇编命令,让初学者能够快速掌握基础知识,特别是关注一些核心指令如CMP、LOOP、MOV、JNZ等。作者建议学习汇编不一定要从编写程序开始,而是可以通过使用DEBUG...
Debug的使用 (一)
windyuan~
09-26 2106
我们以后所有的实验中,都将用到Debug程序,首先学习一下它的主要用法。 什么是Debug? Debug是DOS、windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。 我们用到的Debug功能 用Debug的 R 命令查看、改变CPU寄存器的内容; 用Debug的 D 命令查看内存中的内容; 用Debug的 E 命令改写内存中的内容; 用Debug的 U 命令将内存中的机器指令翻译成汇编指令; 用Debug的 T 命令
常见debug指令和使用
qq_53083285的博客
10-22 2984
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
汇编语言》第3章 寄存器(内存访问)
chenyijun的专栏
01-01 671
第2章中,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。这一章中,我们从访问内存的角度继续学习几个寄存器。
mov、add、sub指令
最新发布
简单的笔记本
05-05 1125
它们可以对段寄存器进行操作吗?比如:“add ds, ax”。请自行在debug实验。我们知道mov, add, sub指令,它们都带有两个操作对象。注:下面验证的指令是我们之前没有遇到过的。③ mov 段寄存器,内存单元。
【胡思乱想】命令模式中,命令对象如何解耦Invoker和Receiver
dieqiuxie4160的博客
10-28 252
首先,我们得清楚为何要解耦?   耦合的坏处就是,牵一发而动全身,比如,当我更改了类A或其子类的时候,类B也要进行修改。这里,解除耦合,就意味着,即使你Receiver怎么改,添加了多少,删除了多少。我Invoker都不需要做什么改动。 有人会说,这不是很好办吗,我定义一个接口,每个Receiver都实现这个接口,然后我Invoker针对这个接口编程不就好了?   这样有两个...
汇编:CPU结构 - 段寄存器
chenzimin_blog
06-07 7294
8086在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。 是什么部件提供段地址? 段地址在8086的段寄存器中存放。 8086有4个段寄存器:CS、DS、SS、ES,当CPU需要访问内存时由这4个段寄存器提供内存单元的段地址: CS (Code Segment):代码段寄存器 DS (Data Segment):数据段寄存器 SS (Stack Segment):堆栈段寄存器 ES (Extra Segment):附加段..
第三章 寄存器(内存访问)
记录自己
03-14 1980
3.1 内存中字的存储 CPU中,用16位寄存器来存储一个字(1个字有2个字节,即16个比特)。高8位存放高位字节,低8位存放低位字节。又因为一个内存单元只能存储一个字节,因此需要两个连续的内存单元来存储一个字。 用0、1两个内存单元存放数据20000(4E20H)。这两个内存单元可以看做一个起始地址为0的字单元。 字单元:即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。 3.2 DS和[address] 以下三条指令将10000H(1000:0)中的数据读到al中 mov bx,
寄存器(内存访问)01 - 零基础入门学习汇编语言13
weixin_34389926的博客
11-08 168
第三章:寄存器(内存访问)01 让编程改变世界 Change the world by program 引言 在第2章中,我们主要从 CPU 如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。 这一章中,我们从访问内存的角度继续学习几个寄存器。 内存中字的存储 在0地址处开始存放20000(4E20H): [captio...
寄存器(内存访问)---汇编学习笔记
qq_37340753的博客
07-21 5785
寄存器(内存访问) 序言 第二章,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。 这一章,我们从访问内存的角度继续学习几个寄存器。 3.1 内存中字的存储...
mov 寄存器,段寄存器
weixin_33736649的博客
07-25 160
mov 寄存器,段寄存器 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/25/3845600.html
写文章

热门文章

  • 解决虚拟机无法识别USB设备的问题 17343
  • 关于C++三角函数的使用与注意总结 12137
  • 汇编mov指令的操作对象都可以是什么、一些debug指令的介绍 1051
  • 使用phpstudy搭建安装xhcms靶场环境 894
  • C++函数部分学习笔记——概念与定义 319

分类专栏

  • 经验分享 3篇
  • 笔记 5篇
  • 问题解决 2篇
  • 编程 4篇

最新评论

  • 解决虚拟机无法识别USB设备的问题

    qq_31713405: 先生真乃孔明也

  • 解决虚拟机无法识别USB设备的问题

    拿了个杯嘚: 先生大义

  • 解决虚拟机无法识别USB设备的问题

    RMBCN: 不错按照说明操作成功

  • 使用phpstudy搭建安装xhcms靶场环境

    CSDN-Ada助手: 恭喜您成功写出第7篇博客!使用phpstudy搭建安装xhcms靶场环境这个主题非常实用,对于学习网络安全的朋友们一定很有帮助。接下来,建议您可以尝试分享一些关于靶场环境的实际应用案例或者使用心得体会,让读者更加深入地了解这个领域。希望您能继续保持创作的热情,期待您更多的精彩文章!谢谢您的分享!

  • 解决虚拟机无法识别USB设备的问题

    赛博苦修士: 看看你手机有没有开发者模式,没有的话进一下,然后连接模式选择传输文件,不要选仅充电

最新文章

  • 使用phpstudy搭建安装xhcms靶场环境
  • phpstudy自定义网站无法通过谷歌浏览器打开
  • 解决虚拟机无法识别USB设备的问题
2024年2篇
2023年1篇
2022年1篇
2021年3篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家信阳玻璃钢花盆花器一个商场美陈费用大概多少滁州玻璃钢动漫卡通雕塑设计合肥玻璃钢雕塑公司招聘沅江玻璃钢马雕塑菏泽玻璃钢雕塑制作厂家品质玻璃钢人物雕塑生产西湖玻璃钢雕塑厂家庆阳玻璃钢卡通雕塑制作有创意的商场美陈东莞玻璃钢植物雕塑制作过程河南欧式玻璃钢雕塑制作玻璃钢彩绘雕塑咨询电话贵州玻璃钢牛动物雕塑制作工厂张家界商场美陈优质玻璃钢雕塑厂家货真价实江西步行街玻璃钢雕塑定做价格衢州卡通玻璃钢雕塑工艺泉州商场美陈制作鹤壁玻璃钢雕塑制作福建开业商场美陈怎么样大型玻璃钢雕塑销售秋季商场美陈销售企业福建大型商场美陈价格江苏花钵玻璃钢雕塑制作苏州玻璃钢广场雕塑厂家供应玻璃钢辣椒雕塑视频青海人物玻璃钢雕塑订做重庆商场节庆美陈雕塑大型玻璃钢雕塑龍图片香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化