小编DrN*_*oob的帖子

以编程方式在运行时检测CPU架构

是否可以通过低级代码(C/C++或汇编)检查x86/x86-64 CPU中的CPU架构(64位或32位),而无需从操作系统或某些API收集信息?

可以检查指针的大小,就像这里讨论的那样,但是,根据我的理解,这种方式可以让你知道OS体系结构的编译,因为运行32位操作系统的64位CPU会报告错误的结果.

也许一些cpuid指令或类似可以做到这一点,但我找不到任何完全满足这些要求的东西.如果你认为这是不可能的,我会很高兴有理由证明这一点(这可能是一个不太客观的答案).如果您想知道,这是一个CPU检测软件.

编辑:在装配中确定32/64位体系结构时,OP没有得到解释如何操作的特定答案,只是你应该使用cpuid,并链接到如何在运行时使用GCC检测CPU体系结构类型和内联asm?,这显示了一个很好的答案,但它没有我标记为接受的答案那么完整,因为Remy Lebeau给出了详细的解释,并告诉必须查询哪个特定的cpuid位,而不是仅仅编写一些代码,以及我发现它对我的问题更合适,因为它是在更高级别的范围内解释的(我从未提及gcc,第二篇文章的确如此)

c c++ assembly cpu-architecture

0
推荐指数
2
解决办法
850
查看次数

标签 统计

assembly ×1

c ×1

c++ ×1

cpu-architecture ×1