On Wed, Jan 9, 2013 at 2:14 PM, horseriver <horserivers@xxxxxxxxx> wrote: > > 1. why use "fc ff ff ff " in call instruction? Answered by John Fine. > 2. In my .c source file ,I have not used strcpy function , so why it is disassembly out here ? > after research , I find this call instruction is corresponding to this line : > > sprintf(acpi_device_name(device), "%s", ACPI_EC_DEVICE_NAME); > sprintf is a externel implemented function . > > but why in disassebly code it is strcpy ? > > whether something wrong with relocation data? This is a GCC optimization. GCC converts sprintf(buf, "%s", arg); into strcpy(buf, arg); because the operations are equivalent and strcpy is more efficient. By default GCC assumes that it can call any function in the C standard library. To turn off this assumption, use the -fno-hosted option that I already mentioned earlier. Ian