stosb,stosw,stosd区别和功能解读
来源:互联网 发布:linux 编辑文本命令 编辑:程序博客网 时间:2024/04/30 04:59
在vs2013下的控制台运行如下代码
#include "stdafx.h"void fun(int x, int y, int z, int c){int b =x + y + z + c;}int _tmain(int argc, _TCHAR* argv[]){ //这个位置下个断点(就是{前点一下)执行 然后按alt+8进入反汇编 按F11单步执行fun(1, 2, 3, 4); return 0;}
首先会出现这段代码:
一个简单的主程序中含有的反汇编代码
push ebp mov ebp,esp sub esp,0C0h push ebx push esi push edi lea edi,[ebp-0C0h] mov ecx,30h mov eax,0CCCCCCCCh rep stos dword ptr es:[edi] 主要解读stos的功能
解读如下:
mov eax,0CCCCCCCCh mov ecx,30h rep stos dword ptr es:[edi] //rep相当于重复操作 edi每次执行会自动增加4字节长度 ecx会自动减少1次 stos的操作隐含如下: stos dword ptr es:[edi] <=> mov es:[edi],eax 两者等价 rep (ecx= ecx-1 if(ecx==0) break;
同理可以推论出如下操作:
stosb <=> stos byte ptr es:[di] //隐藏的操作数 al
stosw <=> stos word ptr es:[di] //隐藏的操作数 ax
stosd <=> stos dword ptr es:[edi] //隐藏的操作数 eax
stosw <=> stos word ptr es:[di] //隐藏的操作数 ax
stosd <=> stos dword ptr es:[edi] //隐藏的操作数 eax
感谢常杰同学的耐心指导!
0 0
- stosb,stosw,stosd区别和功能解读
- Stosb stosw stosd
- stosb, stosw, stosd 汇编基础
- stosb, stosw, stosd 汇编基础
- stosb, stosw, stosd 汇编基础
- stosb, stosw, stosd 汇编指令
- stosd,stosb,stosw汇编指令
- STOS/STOSB/STOSW/STOSD/STOSQ---存储字符串
- 汇编指令lodsb和stosb、lodsd和stosd
- stosB、stosw等命令的用法
- lodsb 和 stosb 指令
- lodsb和stosb完成串的拷贝
- 【C++】(++a)和(a++)区别解读
- STOSB指令的使用方法
- stosb指令解析
- UITextField 常用功能解读
- 辛星解读活动图、流程图和状态图的区别
- [源码解析]HashMap和HashTable的区别(源码分析解读)
- swig node-webkit addon 编译相关问题
- 数据结构与算法
- Google Hacking作业
- Problem 016 —— UVa 232 - Crossword Answers
- 机器学习好文章推荐
- stosb,stosw,stosd区别和功能解读
- 九度OJ之1001题 A+B for Matric
- iOS -C语言day01知识点总结
- vb常用函数
- Android Message和obtainMessage的区别
- 从反转字符串中看指针魅力
- Javascript中最常用的55个经典技巧
- 数据结构——队列及循环队列
- unity学习之异常,修饰符