<span style="font-size: 18px;">C语言代码如下:</span>
int exchange(int *xp, int y)
{
int x = *xp;
*xp = y;
return x;
}
今天主要还是看了mov的指令,所以就根据程序内的两个变量转化的操作谈一下映射到汇编语言的情况。。。。。不得不说,今天刚刚一脚踏进汇编的水里,就有一种随时可能会被淹死的感觉。。。。(太抽象了有木有)
汇编代码如下
xp at %ebp + 8
y at %ebp + 12
这是汇编代码里面的两条注释,意思就是说xp 和y 这两个变量是分别存在于这两个内存地址中的,其实这两条如果变为寻址形式的话,应该是变为8(%ebp) 12(%ebp),这两个内容和%ebp + 8, %ebp +12应该是一样的。都是两个变量的地址
movl 8(%ebp), %edx
movl