一个简单函数的C代码和汇编代码
2011-08-19 22:58
225 查看
int exchange(int *xp,int y)
{
int x=*xp;
*xp=y;
return x;
}
省略了栈的建立和完成部分的汇编代码如下:
//xp at %ebp+8,y at %ebp+12
1 movl 8(%ebp),%edx
2 movl (%edx),%eax
3 movl 12(%ebp),%ecx
4 movl %ecx,(%edx)
注:
1.int x=*xp;表示将读存储在xp所指位置中的值,并将它存放在名字为x的局部变量中;
2.*xp=y;表示将参数y的值写到xp所指向的位置;
3.间接引用指针就是将该指针放在一个寄存器中(movl 8(%ebp),%edx),然后在存储器引用中使用这个寄存器(movl (%edx),%eax);
4.像x这样的局部变量时存放在寄存器中的,而不是存储器中;
5.声明变量语句是不产生相应的汇编语句的;
6.函数参数的值存放中存储器中。
{
int x=*xp;
*xp=y;
return x;
}
省略了栈的建立和完成部分的汇编代码如下:
//xp at %ebp+8,y at %ebp+12
1 movl 8(%ebp),%edx
2 movl (%edx),%eax
3 movl 12(%ebp),%ecx
4 movl %ecx,(%edx)
注:
1.int x=*xp;表示将读存储在xp所指位置中的值,并将它存放在名字为x的局部变量中;
2.*xp=y;表示将参数y的值写到xp所指向的位置;
3.间接引用指针就是将该指针放在一个寄存器中(movl 8(%ebp),%edx),然后在存储器引用中使用这个寄存器(movl (%edx),%eax);
4.像x这样的局部变量时存放在寄存器中的,而不是存储器中;
5.声明变量语句是不产生相应的汇编语句的;
6.函数参数的值存放中存储器中。
相关文章推荐
- 对一个简单C 函数的汇编代码分析
- 一个简单函数的反汇编
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 1、通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 云课堂 Linux内核分析 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 计算机是如何执行程序的(以汇编一个简单的C程序,分析汇编代码为例)
- 反汇编一个简单的C程序,分析汇编代码
- 分析一个简单C程序的汇编代码,理解计算机是如何工作的
- 汇编一个简单的C程序,分析代码理解计算机是怎么工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机工作原理
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 《Linux内核分析》week1作业-分析一个简单c语言的汇编代码
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- lab1:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的