c和汇编混合编程----main的反汇编
想看一下main函数的反汇编程序,分析一下:
int main()
{return 0;
}
反汇编:
1: int main()
2: {
00401010 55 push ebp ;将ebp压入栈
00401011 8B EC mov ebp,esp ;把esp赋值给ebp
00401013 83 EC 40 sub esp,40h ;esp减少40h
00401016 53 push ebx ;ebx也入栈
00401017 56 push esi ;esi压入栈
00401018 57 push edi ;edi入栈
00401019 8D 7D C0 lea edi,[ebp-40h] ;将ebp-40h的值赋值给edi
0040101C B9 10 00 00 00 mov ecx,10h ;ecx赋值为10h
00401021 B8 CC CC CC CC mov eax,0CCCCCCCCh ;eax赋值为0CCCCCCCCh
00401026 F3 AB rep stos dword ptr [edi]
3: return 0;
00401028 33 C0 xor eax,eax ;将eax赋值为0
4: }
0040102A 5F pop edi ;出栈的数据赋值给edi
0040102B 5E pop esi ;出栈的数据赋值给esi
0040102C 5B pop ebx ;出栈的数据赋值给ebx
0040102D 8B E5 mov esp,ebp ;将ebp的值传给esp
0040102F 5D pop ebp ;出栈的数据赋值给ebp
00401030 C3 ret
如果不认识rep和stor指令,可以看一下这篇文章
rep和stos指令
c和汇编混合编程----main的反汇编相关推荐
- C和汇编混合编程----实现浮点数的加减乘除
加法 C程序: #include "stdio.h"int main() {float a=1.0;float b=2.34;float c;c=a+b;printf(" ...
- c和汇编混合编程----shellcode----弹出计算器
先用c和汇编混合编程成功弹出计算器(在VC++里运行) #include "stdio.h" #include "windows.h"int main(int ...
- ARM中C和汇编混合编程及示例
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的.在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较 ...
- C和汇编混合编程---栈平衡
最近在搞C和汇编混合编程,对栈平衡有点小理解,记录一下 当我们调用一个API或者子程序时时,API和子程序可以理解为函数,我们不必在返回的时候平衡栈里面的函数参数,但C语言库函数要我们自己平衡栈数据, ...
- arm export 汇编_C/C++与汇编混合编程有什么好处?
1.导语 当需要C/C++与汇编混合编程时,可以有以下两种处理策略: 若汇编代码较短,则可在C/C++源文件中直接内嵌汇编语言实现混合编程. 若汇编代码较长,可以单独写成汇编文件,最后以汇编文件的形式 ...
- 51汇编与c语言混合编程,C51与汇编混合编程详解
C51与汇编混合编程详解 0750long | 2009-07-09 12:45:42 阅读:1257 发布文章 C51与汇编混合编程详解 C51和汇编混合编程(1)-C语言中嵌入汇编 1.在 ...
- arm汇编和c语言混合编程实验报告,实验三C语言和ARM汇编混合编程指导书.doc
实验三C语言和ARM汇编混合编程指导书 实验三 1. 实验目的 掌握C语言和ARM汇编混合编程方法. 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1. ...
- C和汇编混合编程---do while
环境:VC++ do while 会先执行do里面的循环体,执行完去执行while的条件判断,如果为真,继续执行do里面的循环体,如果为假,则结束循环 C程序: #include "stdi ...
- 嵌入式c语言汇编混合编程,嵌入式C语言和汇编语言的混合编程
此文章简单介绍 单片机 C语言和汇编语言混合编程的例子.主要用单片机汇编语言编写DS1302的底层驱动,在C语言里通过调用汇编语言,从而实现C和汇编的混合编程. ;汇编语言源文件 ;========= ...
最新文章
- html服务器显示,html显示服务器盘符
- java.awt.action 命令模式_java设计模式之命令模式
- VTK:Utilities之KnownLengthArray
- 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python上下文管理器)
- 我们变成了最小的,当我们发现不了最弱小的时候
- 拳王虚拟项目公社:通过网络卖虚拟产品,月入1W的全自动化推广引流技术
- 如何给python装库_python一键式装单机和RAC数据库
- 深圳爱思拓大数据 网站_建议收藏!13个大数据学习网站很少人知道!附大数据自学资料分享...
- python逻辑运算符例子_python运算符-实战中常用的三个逻辑运算符使用实例
- 安卓-利用android studio制作简单的QQ登陆login界面
- 推荐系统的常用算法原理和实现
- 「HEOI 2014」南园满地堆轻絮
- 修复华为移动服务器,移动app云服务器异常
- 加解密技术基本使用指南(Base64、Hex、AES、SM4、RSA 算法)
- ## KEIL 5在MDK注册过程中LIC无法添加的问题解决:
- MAC版本subline text快捷键大全
- cocos creater 使用.max文件/.max文件转换为.fbx文件
- 电路矢量图编辑器数据库设计
- 八年级上册历史知识点(第1课 鸦片战争)
热门文章
- 字符串、对象、数组操作方法、json方法
- 【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果
- 信息的Raid存储方式,更安全的保障,更花钱的保障!
- C# -- HttpWebRequest 和 HttpWebResponse 的使用
- Unicode与JavaScript详解 [很好的文章转]
- Freemarker宏和函数的用法和区别
- 步骤菜单使用css3实现
- amoeba mysql proxy_mysql proxy amoeba安装配置
- python怎样编写定时程序_Python如何实现定时器功能
- python控制台执行代码字符串_编写Python脚本以使用控制台命令执行