Mov dword ptr ds:[内存地址],eax
把寄存器存入内存,
Movs 可以操作把内存的值存入内存
标志位EFL有32位,每一位的1或0标志不同的作用
八个十六进制位,每一位的数字代表一组bcd码的四位值。DF位也就是从后往前的第10位,当为0时在movs操作是会自动把内存地址相应自动加位,而为1时则为减。
STOS dword ptr ds:[]将al/ax/eax中的值传入【】中的内存地址,默认用edi存。
REP 用于 重复之后紧跟的操作 按ecx中指定的次数重复。
执行之后被传入的地址会自动加1.
Push pop 操作堆栈
相当于一次mov进入栈,再移动esp寄存器指针的位置。
不能直接用mov操作eip,可以用jmp等效于 mov eip
Call 调用函数,将下一行 地址压入栈中,并将eip+4字节,也就是指向当前的返回地址
Ret 弹出栈顶,回到存的地址
利用push pop使用堆栈传参,当想要操作例如add mov时直接用dword ptr ds:[]调用栈中的相应地址
堆栈平衡 :操作堆栈时要有放有取
1.堆栈内部使用堆栈存变量时,要在返回前,将变量清除,不然eip指向变量的地址则会报错
2.压入栈中的子函数的变量,要在函数过程结束后pop掉,否则会在栈顶留下垃圾
Ret x相当于结合两个操作 ret 和pop掉变量