内核中的汇编(输入部)

发布于 2022-09-23 12:52:24 字数 1196 浏览 28 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

极致的悲 2022-09-30 12:52:24

info gcc->C Extensions->Extended Asm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文