title: 汇编达人视频学习4
date: 2021年8月3日 09点35分
tags: 汇编达人
categories: 汇编达人

17、常用汇编指令(MOVS指令、STOS指令)

1、MOVS指令:移动数据 内存 - 内存

从内存到内存的指令

EDI:地址编号,要把这个数据复制到哪里去。

ESI:地址编号,要复制的数据在哪里

MOVS指令执行一次,EDI 和 ESI 的地址编号,会自加。

EFL是标志寄存器,它是32位的。在它的第十位,是DF方向位,如果DF位是0,那么执行一次MOVS之后,EDI,ESI就自加1 2 4,如果DF位是1,那么执行一次MOVS之后,EDI,ESI就自减1 2 4,加减多少取决于是byte word dword

2、STOS指令

将AL,AX,EAX的值存储到【EDI】指定的内存单元

同样的,EDI在执行完STOS指令之后,会自加或者自减,这也同样取决于DF位是1 还是 0

3、REP指令

按计数寄存器(ECX)中指定的次数重复执行字符串指令

18、堆栈相关的指令

1、什么是堆栈

别的内存需要程序员去申请,堆栈是操作系统分配好的。

怎么查看堆栈的范围和地址呢。

首先在寄存器窗口,可以看到有一个FS 00AFE000的地址,这个地址就是操作系统为这个程序分配的堆栈。

我们在内存窗口通过dd 00AFE000 就可以查看到,堆栈。也就是四块窗口,反汇编窗口,寄存器窗口,内存窗口,堆栈窗口。

在右下角的就是堆栈窗口。

堆栈窗口的内存地址 从00D3FF5C 到 00D40000

2、ESP是栈指针寄存器

ESP是栈指针寄存器,ESP中存储了当前的堆栈用到哪里了,需要注意的是,堆栈内存空间,是从大地址往小地址用

3、堆栈的使用

1.存储数据

2.修改栈顶指针

利用命令mov dword ptr ds:【0x18ff88】,1 //把1 存放到堆栈里面

sub ESP,8 //把ESP的值减去8个,因为刚刚用了8个

需要注意的是,当用完堆栈之后,需要让ESP指向现在的栈顶,原因是如果不指向栈顶,后面程序可能会把你写的数据,覆盖掉。

4、PUSH指令

注意不要只记住指令的格式,而是需要去明白它真正的含义

5、pop指令

19、修改EIP的指令

EIP里面存放的是下一次CPU执行的地址。

1、JMP指令

JMP指令,修改EIP的地址。

2、CALL指令

注意,其他代码单步执行的时候是F8,而遇到CALL指令的时候,单步执行需要按F7

CALL指令所做的事情:

1.把CALL指令后面的那个地址,存到了EIP里面。

2.会把当前CALL指令的下一行地址,存到堆栈中。

3.ESP的值减4

3、RET指令

RET指令做的事情:
1.把当前栈顶的这个值,放入EIP里
2.同时栈顶指针加4

汇编达人视频学习4(MOVS、STOS、REP、PUSH、POP、JMP、CALL、RET指令)相关推荐

  1. 汇编达人视频学习6(汇编眼中的函数、CALL指令执行函数、堆栈传参、堆栈平衡、外平栈、内平栈)

    title: 汇编达人视频学习6 date: 2021年8月4日 15点15分 tags: 汇编达人 categories: 汇编达人 21.汇编眼中的函数 1.什么是函数 函数就是一系列指令的集合, ...

  2. 汇编 movs stos rep df 等指令的作用

    文章目录 MOVS 指令 STOS 指令 REP DF标志 MOVS 指令 MOVS 内存[EDI],内存[ESI] 将ESI地址中的值移动到EDI指向的地址中,每次移动X字节,同时 esi.edi增 ...

  3. 【Win32汇编】MOVS,STOS,REP 指令

    MOVS MOVS 指令用于将一个内存操作数的值"复制"到另一个内存操作数,使用 MOVS 前要把目标内存的地址移入 EDI,源目标内存移入 ESI.(记忆方法:D表示destin ...

  4. android 键编译,Android 音视频学习系列 (四) 一键编译 32/64 位 FFmpeg 4.2.2

    前言 2020/5/20 增加了硬件解码编译脚本 编译环境 Centos + NDK20b + FFmpeg4.2.2 + Android-21/16 2020/4/26 更新了编译 64 位脚本 编 ...

  5. 逆向入门(5)汇编篇-函数相关学习与JCC指令

    0x01 函数 汇编眼中的函数,函数就是一系列指令的集合,为了完成某个会重复使用的特定功能. 可以使用JMP指令或者CALL指令来进行调用函数,先看JMP指令. JMP指令调用函数 假设定义一个函数功 ...

  6. 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...

  7. 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...

  8. 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/72186eb3e395 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(41)主要 ...

  9. 影像组学视频学习笔记(37)-机器学习模型判断脑卒中发病时间(文献报告)、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/3e7a2c84288e 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  10. 影像组学视频学习笔记(23)-主成分析PCA、降维和特征筛选的区别、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(23)主要讲解: 主成分析PCA,影像组学降维和特征筛选的区别 0. PCA(Principal component analysis) ...

最新文章

  1. python脚本编写_【PyQGIS】编写用于处理框架(QGIS3)的Python脚本
  2. Ubuntu 14.04 64位上安装wps office软件
  3. 四层和七层负载均衡的区别
  4. LSTM终获「正名」,IEEE 2021神经网络先驱奖授予LSTM提出者Sepp Hochreiter
  5. oracle 学习小结11
  6. 机器学习小抄-(像背托福单词一样理解机器学习)
  7. java循环链表类_3、循环链表(java实现)
  8. 优先体验重播matlab_如何为深度Q网络实施优先体验重播
  9. pytorch基础(四):使用optim优化函数
  10. python基础练习之【求三角形周长和面积】
  11. asp实训报告摘要_ASP实训总结
  12. ipad上的人体模型_我拥有哪种iPad模型?
  13. redit高可用之集群
  14. 非常值得收藏的书签栏,程序员学习与设计相关的网站(有附件下载)
  15. Excel切片器的使用
  16. Criterion 用法
  17. 计算机在职双证博士的学校,国内在职双证博士5所高校是哪些
  18. 华东师大计算机全国排名,QS发布最新世界大学学科排名 华东师大表现活跃
  19. 深度学习视觉领域中的attention机制的汇总解读(self-attention、交叉self-attention、ISSA、通道注意、空间注意、位置注意、Efficient Attention等)
  20. 如何让matlab提速,[转载]matlab提速技巧(自matlab帮助文件)

热门文章

  1. 进程间的通信方式有哪些?
  2. 论文模型图全攻略——模型图就该有模型图的样子!
  3. 个人博客网站添加文章搜索功能
  4. 2022年,4款值得用的报表工具软件推荐!
  5. Sparrow 开发板化身电脑音量调节器
  6. java pdf合并_如何实用Java实现合并、拆分PDF文档
  7. html字体如何运用在ps上,PS文字排版工具的使用技巧
  8. imazing是什么?iPhone苹果第三方iOS设备管理软件
  9. python编程语言期中试题_MOOC Python编程的第六周测试,MOOCPython,语言,程序设计,测试题...
  10. oracle新增,删除字段,设置默认值