【发布时间】:2010-11-08 03:35:19
【问题描述】:
当我编译这段代码时
unsigned char A[] = {1, 2, 3, 4};
unsigned int
f (unsigned int x)
{
return A[x];
}
gcc 输出
mov edi, edi
movzx eax, BYTE PTR A[rdi]
ret
在 x86_64 机器上。
问题是:为什么有一个nop指令(mov edi,edi)呢?
我正在使用 gcc-4.4.4。
【问题讨论】:
-
自然只是为了混淆代码!