您当前的位置: 首页 > 

快速识别系统是否支持sysenter/sysexit

发布时间:2012-11-07 15:54:19 ,浏览量:0

地球人都知道较新的处理器支持sysenter/sysexit指令以代替老的Int 2e/iretd指令。

新指令避免的2次查表,速度得到提升。那么如何知道自己的cpu是否支持新指令呢?

答案是使用cpuid指令,该指令返回值放在ecx和edx中,其中edx包含了SEP位(SysEnter/SysExit Present,

第11位),该位表示了是否支持sysenter/sysexit指令,快速写出识别代码:

DWORD medx,mecx;
	medx=mecx=0;
	__asm__ __volatile__("cpuid;mov %%edx,%0;mov %%ecx,%1"::"m"(medx),"m"(mecx));
	printf("%08x %08x\n",medx,mecx);
	if(medx&(1<<11)) puts("fast int---sysenter!");
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.2996s