re2学习笔记

数据窗口的数据是从低位到高位,跟汇编窗口和反汇编窗口相反
lea指令 储存的是地址编号

什么是堆栈:
 一种内存的读写方式
堆栈的优点:
临时储存大量的数据,便于查找,能记录存入数据的量

堆栈操作
两个寄存器,一个是栈底,一个是栈顶,栈底一般都是永远不变的,栈顶会变(可以用sub,add或者是lea来改变栈顶指向的值),找需要的值时可以用栈底或栈顶加偏移的方法
可以先存数据再更换栈顶地址,也可以先换地址再存数据
存入数据可以成为压入数据或者压栈,入栈
push和pop指令:
push指令可以同时存入数据和改变栈顶地址,
1.)如果push后面是一个立即数或者是一个32位的寄存器,无论多大地址都会减4,
2)push后面不能是8位的
3.)push16位的寄存器地址减2
4.)push后面也可以是地址,跟寄存器的规律相同
pop指令可以同时弹出数据和改变栈顶地址
pop指令的使用和push相同,只不过是地址会加
pushad和popad指令:
pushad就是把八个通用寄存器的数据存到堆栈中
popad就是把堆栈的数据放回八个通用寄存器中
可以称为保存堆栈
标志寄存器:
CF:进位标志 :如果运算结果的最高位产生了一个进位或错位,那么其值为1,否则其值为0
PF:奇偶标志:奇偶标志PF用于反应运算结果中“1”的个数如果“1"的个数为偶数,则PF的值为1,否则为0(看1的个数时一定要转成二进制)
AF:辅助进位标志:在发生以下情况时辅助进位的值为1否则为0
1.)在字操作时,发生低字节向高字节进位或错位时
2.)在字节操作时,发生低4位向高4位进位或错位时
ZF:零标志:零标志用来反映运算结果是否为0,如果运算结果为0,则ZF变成1否则为0
SF:符号标志:反映运算结果的符号位,与运算结果的最高位相同
OF:溢出标志:用来反映有符号数加减运算所得结果是否溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值为1否则为0(与CF的区别在于运算是否是有符号的,有符号的看OF,无符号的看CF)
正+正=正 如果结果是负数,则说明有溢出
负+负=负 如果结果是正数,则说明有溢出
正+负 永远都不会溢出
都要转换为二进制数
ADC指令:带进位加法,两边不能同时为内存,宽度要一样
SBB指令:带错位减法,两边不能同时为内存,宽度要一样
XCHG指令:交换数据,两边不能同时为内存,宽度要一样
MOVS指令:移动数据 内存-内存,宽度要一样
STOS指令:将AL/AX/EAX的值储存在指定的单元格
JUP指令可以修改EIP的值,无条件修改
CALL指令也能修改EIP的值,一般跟RETN成对出现,寄存器的值也会发生变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值