get_cpu_info函数中的汇编代码看不懂。。。
- static inline struct cpu_info *get_cpu_info(void)
- {
- struct cpu_info *cpu_info;
- __asm__ ( "and %%"__OP"sp,%0; or %2,%0"
- : "=r" (cpu_info)
- : "0" (~(STACK_SIZE-1)), "i" (STACK_SIZE-sizeof(struct cpu_info))
- );
- return cpu_info;
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
本帖最后由 amarant 于 2011-04-14 19:22 编辑
回复 1# wtz_wh
没人回答吗?我来说说吧
static inline struct cpu_info *get_cpu_info(void)
{
struct cpu_info *cpu_info;
__asm__ ( "and %%"__OP"sp,%0; 把sp+__OP(??这个写法没见过,应该就是这个意思)与到 cpu_info (%0)上
or %2,%0" 再把STACK_SIZE-sizeof(struct cpu_info)或到cpu_info上
: "=r" (cpu_info)
: "0" (~(STACK_SIZE-1)), "i" (STACK_SIZE-sizeof(struct cpu_info))
);
return cpu_info;
}
再注意到这个栈是页对其的,好好分析下