社区
汇编语言
帖子详情
运行时指令集检测
天下第一好大人
2013-07-10 10:23:32
如果给用户发布的是可执行文件,运行时检测用户的硬件和操作系统支持哪些指令集,从而决定该执行那个函数。
例如,有两个版本,同功能的函数
func
func_sse // 如果用户机器支持就用这个
那应该怎么实施?
1 设置全局函数指针,启动时先检测,然后将这些函数指针赋值,其它功能代码都调用这些函数指针。
2 做两个dll,里面都有同名函数,启动时检测,然后决定加载哪个dll,但是这需要手写加载库的代码。
3 还有更好的方法吗?
...全文
356
4
打赏
收藏
运行时指令集检测
如果给用户发布的是可执行文件,运行时检测用户的硬件和操作系统支持哪些指令集,从而决定该执行那个函数。 例如,有两个版本,同功能的函数 func func_sse // 如果用户机器支持就用这个 那应该怎么实施? 1 设置全局函数指针,启动时先检测,然后将这些函数指针赋值,其它功能代码都调用这些函数指针。 2 做两个dll,里面都有同名函数,启动时检测,然后决定加载哪个dll,但是这需要手写加载库的代码。 3 还有更好的方法吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
WJN92
2013-07-14
打赏
举报
回复
生成多个可执行文件,再写多一个调用程序。 这个方法效率应该最高
www_adintr_com
2013-07-12
打赏
举报
回复
用函数指针就很好了. 只是管理一下, 不要出现太多的全局变量指针, 弄的太乱就行. 要更好的话, 就只能是初始化的时候修改代码段, 把调用这些函数的 call 指令都改一遍. 改成 call 不同的地址. 就像重定位那样做.
金丝龙麟闪电劈
2013-07-11
打赏
举报
回复
难道要用到工厂模式,针对不同的指令集,生成不同的实例?
天下第一好大人
2013-07-10
打赏
举报
回复
找到一个答案: 1 每次调用函数都检测,需要每个功能函数都写分支,最不可取。 2 第一次调用任何一个函数时处理,也是函数指针的方法,最开始所有的功能函数指针指向一个检测器函数,这样无论调用哪个功能都会首先进入检测器,在检测器内部将所有函数指针指向正确的版本。 3 初始化时处理,也是函数指针,程序启动时会首先运行这个初始化检测器,然后再执行正常流程。 4 启动时决定加载哪个dll 5 最新的操作系统有支持procedure linkage table (PLT)功能的,就是执行时链接。 6 弄个安装包,安装时决定copy哪个dll到用户路径。 7 生成多个可执行文件,由用户决定执行哪个。
Mars4_5.zip
MIPS Assembler and Runtime Simulator(MIPS汇编程序和
运行时
模拟器)
CPU
指令集
科普:CISC
指令集
和RISC
指令集
参考资料: 国产CPU,
指令集
之殇 ARM 和 x86 有什么区别? ARM 处理器:RISC与CISC 是什么? 0. 基础知识 0.1 什么是
指令集
所谓
指令集
,是CPU中用来计算和控制计算机系统的一套指令的集合。指令的强弱是CPU的重要指标,
指令集
是提高微处理器效率的最有效工具之一。 CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。与其他硬件电路相配合,决定的是这一款CPU的生态系统。因此,
指令集
搭建的是一个桥梁,是软硬件之间沟通的桥梁,简单来说,软件通
RISC-V RV32I
指令集
汇总 及蜂鸟E203
指令集
测试riscv-tests
RISC-V RV32I
指令集
汇总 及蜂鸟E203
指令集
测试riscv-testsRV32I
指令集
概述及详细指令蜂鸟E203
指令集
ISA测试riscv-testsriscv-tests是什么iverilog+gtwave测试VCS+verdi RV32I
指令集
概述及详细指令 参考链接 https://zhuanlan.zhihu.com/p/252397877 https://blog.csdn.net/limanjihe/article/details/122395354 https://blog.c
优化:
检测
是否支持 SSE2
指令集
的测试程序
在编写程序时,优化代码以提高性能是一个重要的考虑因素。如果支持,我们可以在该条件分支中编写使用 SSE2
指令集
的代码。否则,我们可以在另一个条件分支中处理 SSE2
指令集
不被支持的情况。在本例中,我们传递了字符串 “sse2” 作为参数来检查 SSE2
指令集
的支持情况。这是一个简单的示例程序,用于
检测
SSE2
指令集
的支持情况。根据实际需求,您可以在条件分支中编写更复杂的代码,以充分利用 SSE2
指令集
提供的优化能力。通过运行上述代码,我们可以在控制台输出中查看 SSE2
指令集
的支持情况。
SIMD补充
指令集
架构类型
指令集
介绍
文章目录SIMD
指令集
架构类型CISC的产生、发展和现状RISC的产生、发展和现状IA-64(EPIC)产生、发展和现状RISC与 IA-64(EPIC)相比
指令集
介绍一、X86**二、X64****三、ARM**四、SSE
指令集
五、SSE2
指令集
六、SSE3
指令集
七、SSE4
指令集
八、3D Now!扩展
指令集
九、EM64T
指令集
十、RISC
指令集
十一、3DNow!+
指令集
十二、AVX
指令集
Intel指令手册地址:https://software.intel.com/sites/landingpage/In
汇编语言
21,497
社区成员
41,616
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章