汇编疑问
在编写循环的代码中for(i =0; i < n; i++)
v +=i;
我们发现下面的汇编代码行
xor1 %edx, %edx
请解释为什么我们的C代码中没有EXCLUSIVE-OR(异或)运算符, 这里却会有这样的指令
这个指令实现的是C 程序中的什么操作?
《深入理解计算机系统》p123
问题 :
我反汇编了一下,并没有看到这个指令的。
xor1 %edx, %edx
GCC version:
gcc 4.1.2
OS: FC8 IA-32
麻烦帮忙解答一下。多谢~! 你上了个半拉让别人怎么看?我估计这里edx对应C源代码中的i吧,异或就把它清零了。 深入理解计算机系统 是gcc2.9吧?
问题 :
我的源代码里面没有冗余计算,为什么编译器里面的局部冗余消除算法到处都是呢?为什么还玩儿全局冗余消除么?为什么还玩儿LTO呢?
答 :
因为编译器不听话,完毕。 谢谢楼上的回答. 刚刚用gcc-3.4 编译看了.的确看到了这个指令. 异或自身结果会是0,这个指令用于清0
页:
[1]