汇编达人视频学习4(MOVS、STOS、REP、PUSH、POP、JMP、CALL、RET指令)
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指令)相关推荐
- 汇编达人视频学习6(汇编眼中的函数、CALL指令执行函数、堆栈传参、堆栈平衡、外平栈、内平栈)
title: 汇编达人视频学习6 date: 2021年8月4日 15点15分 tags: 汇编达人 categories: 汇编达人 21.汇编眼中的函数 1.什么是函数 函数就是一系列指令的集合, ...
- 汇编 movs stos rep df 等指令的作用
文章目录 MOVS 指令 STOS 指令 REP DF标志 MOVS 指令 MOVS 内存[EDI],内存[ESI] 将ESI地址中的值移动到EDI指向的地址中,每次移动X字节,同时 esi.edi增 ...
- 【Win32汇编】MOVS,STOS,REP 指令
MOVS MOVS 指令用于将一个内存操作数的值"复制"到另一个内存操作数,使用 MOVS 前要把目标内存的地址移入 EDI,源目标内存移入 ESI.(记忆方法:D表示destin ...
- android 键编译,Android 音视频学习系列 (四) 一键编译 32/64 位 FFmpeg 4.2.2
前言 2020/5/20 增加了硬件解码编译脚本 编译环境 Centos + NDK20b + FFmpeg4.2.2 + Android-21/16 2020/4/26 更新了编译 64 位脚本 编 ...
- 逆向入门(5)汇编篇-函数相关学习与JCC指令
0x01 函数 汇编眼中的函数,函数就是一系列指令的集合,为了完成某个会重复使用的特定功能. 可以使用JMP指令或者CALL指令来进行调用函数,先看JMP指令. JMP指令调用函数 假设定义一个函数功 ...
- 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...
- 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...
- 影像组学视频学习笔记(41)-如何使用软件提取组学特征、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/72186eb3e395 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(41)主要 ...
- 影像组学视频学习笔记(37)-机器学习模型判断脑卒中发病时间(文献报告)、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/3e7a2c84288e 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...
- 影像组学视频学习笔记(23)-主成分析PCA、降维和特征筛选的区别、Li‘s have a solution and plan.
本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(23)主要讲解: 主成分析PCA,影像组学降维和特征筛选的区别 0. PCA(Principal component analysis) ...
最新文章
- python脚本编写_【PyQGIS】编写用于处理框架(QGIS3)的Python脚本
- Ubuntu 14.04 64位上安装wps office软件
- 四层和七层负载均衡的区别
- LSTM终获「正名」,IEEE 2021神经网络先驱奖授予LSTM提出者Sepp Hochreiter
- oracle 学习小结11
- 机器学习小抄-(像背托福单词一样理解机器学习)
- java循环链表类_3、循环链表(java实现)
- 优先体验重播matlab_如何为深度Q网络实施优先体验重播
- pytorch基础(四):使用optim优化函数
- python基础练习之【求三角形周长和面积】
- asp实训报告摘要_ASP实训总结
- ipad上的人体模型_我拥有哪种iPad模型?
- redit高可用之集群
- 非常值得收藏的书签栏,程序员学习与设计相关的网站(有附件下载)
- Excel切片器的使用
- Criterion 用法
- 计算机在职双证博士的学校,国内在职双证博士5所高校是哪些
- 华东师大计算机全国排名,QS发布最新世界大学学科排名 华东师大表现活跃
- 深度学习视觉领域中的attention机制的汇总解读(self-attention、交叉self-attention、ISSA、通道注意、空间注意、位置注意、Efficient Attention等)
- 如何让matlab提速,[转载]matlab提速技巧(自matlab帮助文件)
热门文章
- 进程间的通信方式有哪些?
- 论文模型图全攻略——模型图就该有模型图的样子!
- 个人博客网站添加文章搜索功能
- 2022年,4款值得用的报表工具软件推荐!
- Sparrow 开发板化身电脑音量调节器
- java pdf合并_如何实用Java实现合并、拆分PDF文档
- html字体如何运用在ps上,PS文字排版工具的使用技巧
- imazing是什么?iPhone苹果第三方iOS设备管理软件
- python编程语言期中试题_MOOC Python编程的第六周测试,MOOCPython,语言,程序设计,测试题...
- oracle新增,删除字段,设置默认值