内核中的汇编(输入部)
static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
unsigned int *ecx, unsigned int *edx)
{
/* ecx is often an input as well as an output. */
asm("cpuid"
: "=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
: "0" (*eax), "2" (*ecx));
}
请问如上怎么解释,我仅知道
cpuid是指令部
"=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
是输出部,其中a,b,c,d分别表示要求使用寄存器eax,ebx,ecx,edx
"0" (*eax), "2" (*ecx)
是输入部,不理解什么意思
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
info gcc->C Extensions->Extended Asm