反汇编一个简单的C程序,分析汇编代码
来源:互联网 发布:淘宝论坛怎么进入 编辑:程序博客网 时间:2024/05/04 10:08
实验
源代码:
int g(int x){ return x + 4;}int f(int x){ return g(x);}int main(){ return f(10) + 3;}
输入:
gcc -S -o main.s main.c -m32
反汇编代码:
.file "201504411_\345\217\215\346\261\207\347\274\226.c" .text .globl g .type g, @functiong:.LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 movl 8(%ebp), %eax addl $4, %eax popl %ebp .cfi_def_cfa 4, 4 .cfi_restore 5 ret .cfi_endproc.LFE0: .size g, .-g .globl f .type f, @functionf:.LFB1: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $4, %esp movl 8(%ebp), %eax movl %eax, (%esp) call g leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc.LFE1: .size f, .-f .globl main .type main, @functionmain:.LFB2: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $4, %esp movl $10, (%esp) call f addl $3, %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc.LFE2: .size main, .-main .ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3" .section .note.GNU-stack,"",@progbits
g函数:
f函数:
main函数:
堆栈的变化
然后不断地出栈
计算机如何工作
如今的计算机处理器的结构主要分为两类,一类是冯·诺伊曼结构,一类是哈佛结构。
其中冯·诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的结构,哈佛结构是一种将程序指令和数据分开存储的结构,无论哪种结构,一般的流程都是cpu到存储器中读取程序指令,然后译码,执行,当需要数据时,再到存储器中读取数据。指令都是顺序执行,直到指令结束。
0 0
- 反汇编一个简单的C程序,分析汇编代码
- 反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 反汇编一个简单的C程序并分析
- 《Linux内核分析》(一)——反汇编一个简单的C程序并分析其汇编代码的执行
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的(原创)
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- Linux汇编代码学习,反汇编简单的c及分析汇编代码工作过程
- Linux内核分析-反汇编一个简单的C程序并简单分析
- 云课堂 Linux内核分析 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 云课堂-linux内核分析:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- Linu内核分析一 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- android移植技术
- linux ln
- mysql如何记录sql执行时间
- 在 CMD 小黑窗 窗口 中 复制 文字的方法
- Machine Learning - XVIII. Application Example Photo OCR应用实例-照片OCR(Week10)
- 反汇编一个简单的C程序,分析汇编代码
- 奶浴是什么啊
- 新建maven web project 出现The folder is already a source folder
- C++面试知识点总结
- 【C语言】从标准输入读取字符,并把它们写到标准输出,除了 大写字母转换成小写字母之外,其他的原样输出。
- 二进制位模式从左到右翻转后的值。 如在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 100110000000
- hdu5203
- 【iOS开发】检测联网状态 - Reachability
- google code jam 2015 A Standing Ovation