反汇编学习--1寻址方式
1.立即寻址
mov EAX ,56H
作用:通常用于赋值
2.直接寻址
mov EAX , [12344456H]
作用:通常用于处理变量
3.寄存器寻址
mov EAX,[EDI]
作用:地址在寄存器中。
4.寄存器相对寻址
mov EAX,[EDI+32H]
作用:用于访问数组和结构
5.基址加变址寻址
mov EAX,[EBP+ESI]
作用:常用于访问数组
6.相对基址加变址寻址
mov EAX,[EBX+EDI-10H]
作用:常用于访问结构
寄存器简介:
1.通用寄存器
EAX:累加器,算数运算,布尔运算,逻辑操作,返回函数结果。
EBX:基址寄存器,常用于存档内存地址
ECX:计数寄存器,常用于循环的计数,字符串操作也常用
EDX:数据寄存器,常与EAX一起使用
2.变址寄存器
ESI:源变址寄存器,常放要处理的数据的内存地址
EDI:目的变址寄存器,处理后的数据的内存地址
作用:
3.指针寄存器
EBP:基址寄存器,可用做通用寄存器,用来存放操作数。常用来代替堆栈指针访问堆栈中的数据
ESP:堆栈指针寄存器,不可作为通用寄存器,用于存放当前堆栈栈顶的地址---一般EBP和ESP结合起来访问局部变量和参数
作用:
4.标识寄存器
EFLAGS一共有32位,一般情况,只要知道32位的低16位中的8位就可以了
OF Overflow Flag 溢出标志
DF Direction Flag 方向标志
IF Interrupt Flag 中断标志
AF Auxiliary carry Flag 辅助进位标志 有进位的时候置1
ZF Zero Flag 零标志,运算结果为0时ZF位置置1,否则置0
SF Sign Flag 符号标志,结果为负时置1
CF Carry Flag 进位标志,进位时置1,
PF Parity Flag 奇偶标志,结果操作数中1的个数为偶数时置1