函数以及结构语句前的修饰符
__asm__ __volatile__(
"lcall *(%6) \n\t"
:"=a"(pci_bios.retcode), "=b"(pci_bios.baseaddr), "=c"(pci_bios.length),
"=d"(pci_bios.entry)
:"0"(serviceID), "1"(funcsel), "r"(&bios32_dir)
:"memory"
);
这里的_asm_ _volatile_()是函数吗?
[解决办法]
不是,
告诉编译器对此行代码不继续重组合并优化
[解决办法]
__asm__表示是汇编
__volatile__表示其中的值可能在此段代码之外被改变,比如是硬件,或者有另外一个任务在用。因此不允许编译器做优化。