编辑“︁
3DNow!
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 3DNow!指令集 == 3DNow!和扩展3DNow!的26条指令从功能上可以分为以下五类。 === 单精度浮点运算指令 === 此类指令的操作数均为64位,其高32位和低32位分别是[[IEEE 754]]格式的[[单精度浮点数]]。大部分指令一次可接受两个这样的操作数,并得到两个单精度浮点数的结果。它们的汇编语言助记符都以''PF''开头。 3DNow!还包含有计算单精度倒数和开方倒数的指令,并可以依程序需要,得到12位精度和24位精度的结果。这些指令一次只能处理一个单精度浮点数。 3DNow!的一个特色是可以将同一寄存器內的64位操作数中的两个单精度浮点数相加或相乘,这在复数运算和内积运算中非常有用。Intel直到最近才在[[SSE3]]指令集中增加了这项功能,称之为“''水平操作''”。 为了保证与旧有操作系统的兼容性,与MMX指令一样,3DNow!指令不引发任何[[算术异常]]。3DNow!指令不会生成也不能正确处理[[NaN]]和[[浮点数|非规格化数]],也不支持指定捨入模式。因此3DNow!并不是IEEE 754的一个完整实现,即使是只涉及单精度浮点数时也不能完全代替x87。 === 增强的MMX指令 === ''PAVGUSB''用于求64位紧缩字节(8×8位字节)的平均值,可用于视频编码中的像素平均和图像缩放等。可能是意识到这个功能的重要性,Intel在SSE中添加了功能完全相同的''PAVGB''指令。 ''PMULHRW''则用来补充MMX指令''PMULHW''的不足,在紧缩字(4×16位字)相乘时可以得到比后者更准确的结果。Intel直到最近才在[[SSSE3]]中增加了功能相似的指令''PMULHRSW''。 ''PSWAPD''指令用于交换紧缩双字(2×32位字)中两个双字数据的位置。 === 数据类型转换指令 === ''PF2ID''、''PI2FD''等4条指令用于完成整数和单精度浮点数之间的相互转换。 === 数据预取指令 === ''PREFETCH/PREFETCHW''指令用于把将要使用到的数据从[[主記憶體]]提前載入[[快取]]中,以减少访问主記憶體的指令执行时的延迟。Intel在SSE中添加了类似的''PREFETCHTx''指令 === 快速退出MMX状态指令 === ''FEMMS''指令与MMX中的''EMMS''功能相同,用于退出MMX状态。在K6-2和K6-III处理器中,''FEMMS''比''EMMS''更快;在Athlon及更新的处理器中,''FEMMS''等同于''EMMS''。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息