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

起因(本文内容)

今天在学习王爽老师的《汇编语言》,学到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命令:

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

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

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

结束语

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值