浅析计算机中汇编代码是怎么执行的
来源:互联网 发布:北京java培训那好 编辑:程序博客网 时间:2024/05/16 14:46
第一部分
程序代码:
通过如下指令
第二部分
生成main.s文件,即汇编代码
main.s文件汇编代码删掉部分无关代码,如下所示
g:pushl %ebpmovl %esp,%ebpmovl 8(%ebp),%eaxaddl $10,%eaxpopl %ebpretf:pushl %ebpmovl %esp,%ebpsubl $4,%espmovl 8(%ebp),%eaxmovl %eax,(%esp)call gleaveretmain:pushl %ebpmovl %esp,%ebpsubl $4,%espmovl $29,(%esp)call faddl $5,%eaxleaveret
第三部分
汇编代码如上,分析采用图解,如下所有图零.
一.
二.
三.
四.
五.
六.
七.
八.
九.
十.
十一.
十二.
十三.
十四.
十五.
十六.
十七.
十八.
十九.
二十.
二十一.
图终于贴完了,二十几张图有点害怕。。。
以上每幅图解释了指令的执行,和esp等寄存器的指向及堆栈的变化
第四部分
总结:程序编译生成汇编代码,然后eax,esp,ebp,eip等寄存器结合堆栈实现汇编代码的执行,
由eip寄存器可以发现是不断的从内存中取出代码指令,然后CPU执行,通过esp记录当前堆栈的位置,
通过ebp记录当前函数的基地址,通过call指令实现函数之间的调用跳转,通过ret指令实现函数的返回等等。
所以综上,计算机的运行就是不断的取指令,执行指令的过程。
王宣原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
0 0
- 浅析计算机中汇编代码是怎么执行的
- 汇编一个简单的C程序,分析代码理解计算机是怎么工作的
- 通过一个简单的C程序汇编代码理解计算机是怎么工作的
- 计算机是如何执行程序的(以汇编一个简单的C程序,分析汇编代码为例)
- 计算机是怎么执行机器语言的?即机器是怎么执行010101的?
- 单任务计算机是怎样工作的————(以一段汇编代码执行过程为例)
- 计算机是如何工作的——汇编代码分析
- 通过汇编代码来理解计算机是如何工作的
- 计算机基础,数字在计算机中是怎么表示的
- 黑马论坛--异常中catch代码块中有return时finally是怎么执行的讨论
- 反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 程序是怎么从代码到执行的
- 程序是怎么从代码到执行的
- 计算机是怎么工作的?
- 通过一段反汇编代码浅析计算机工作方式
- 浅谈智能指针
- Java---Eclipse中Server Locations灰色,无法修改
- VS2015在release模式下进行调试
- LeetCode:求两个整数的汉明距离
- 获取linux下CPU、网卡、硬盘ID
- 浅析计算机中汇编代码是怎么执行的
- 二叉树的构造与遍历
- 实现单向链表的有关操作
- LBP简介
- C++第1次实验-标准体重
- Android安全之不安全日志输出
- TCP流量控制-滑动窗口
- 给你的安卓app添加下拉刷新功能吧!
- 人工蚁群算法