Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > fpu, mmx及sse的一些 介绍(原创)
【标  题】:fpu, mmx及sse的一些 介绍(原创)
【关键字】:fpu,mmx,sse
【来  源】:http://www.cppblog.com/jinglexy/archive/2007/04/18/22218.html

fpu, mmx及sse的一些 介绍(原创)

Your Ad Here 为什么要需要FPU和MMX/SSE?
提供了SIMD环境(single instruction multi data),即单指令多数据。
内嵌浮点运算单元,64及128位寄存器等。甚至sin/cos等数学函数也囊括其中,
著名的xvid项目就是使用gcc编译后使用MMX/SSE优化汇编的典型案例。

转载请注明原创:http://www.cppblog.com/jinglexy
msn and mail: jinglexy at yahoo dot com dot cn 上海体育馆2007.4.18

FPU: 8个80位浮点寄存器(数据),16位状态寄存器,16位控制寄存器,16为标识寄存器。
     使用FPU指令对这些寄存器进行操作,这些寄存器构成一个循环栈,st7栈底,st0栈顶,
     当一个值被压入时,被存入st0,原来st0中的值被存入st7
MMX: 将8个FPU寄存器重命名为8个64位MMX寄存器,即mm0到mm7。
     57条MMX指令,加快了整形浮点运算,但是对于复杂浮点运算无帮助

SSE: 8个128位寄存器(从xmm0到xmm7),MXSCR寄存器,EFLAGS寄存器,专有指令(复杂浮点运算)
SSE2: 寄存器和SSE相同,增加了5种数据类型(都是128位),专有指令
SSE3: 仅增加了几个新的指令

由于MMX使用的寄存器影射到FPU寄存器上,所以MMX指令执行前,需要保存FPU堆栈。

示例1,FPU寄存器及指令使用(下面所有程序都使用at&t风格汇编):
data1:
        .byte 0x34, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data2:
        .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.section .text
.globl _start
_start:
        nop
        fbld  data1     压入st0
        fimul data2     st0中的值和data2相乘,保存在st0中
        fbstp data1     st0弹出到内存44


示例2, SSE寄存器及指令使用
.lcomm data 16
value1:
        .float 12.34, 2345.543, -3493.2, 0.44901
value2:
        .float -54439.234, 23231.4, 1.0098, 0.000003
.section .text
.globl _start
_start:
        movups value1, %xmm0
        movups value2, %xmm1
        movups %xmm0, %xmm2
        movups %xmm0, data


轻松使用DLL:【上一篇】
PukiWiki之一:搭建基础篇:【下一篇】
【相关文章】
  • Transport Classes(CIP)
  • PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
  • No Silver Bullet: Essence and Accidents of Software Engineering
  • 解决问题:ASSERT in Wincore.cpp ,line 884
  • 什么时候用assert
  • JSSE访问带有未验证证书的HTTPS
  • OWA或Messenger样式的信息提示窗口——编写ASP.NET AJAX Extender控件(下):使用该控件(示例程...
  • Essential C++中的一个问题
  • OWA或Messenger样式的信息提示窗口——编写ASP.NET AJAX Extender控件(中):封装成服务器端控件...
  • OWA或Messenger样式的信息提示窗口——编写ASP.NET AJAX Extender控件(上):客户端Behavior
  • 【随机文章】
  • Syn flood 原理兼程序
  • 负载均衡
  • 宽带网络交换机的选择和使用
  • NT中如何实现用户只能进入自己的FTP目录
  • 天堂2 血盟的创建
  • 在JAVA中使用正则表达式
  • Linux字体问题-用Windows字体解决
  • 用flash制作文字的淡出效果
  • Windows Media Player 10正式发布
  • Struts中Action的一个笔误造成莫名的错误.
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.