基于MMX指令集的程序设计简介

来源:CSDN 作者:hifrog(翻译) 2007-09-29 出处:pcdog.com

.net  
下一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

  MMX技术简介
 

  Intel 公司的MMX™(多媒体增强指令集)技术可以大大提高应用程序对二维三维图形和图象的处理能力。Intel MMX技术可用于对大量数据和复杂数组进行的复杂处理,使用MMX技术可处理的数据基本单位可以是字节(byte)、字(word),或者是双字(double-word)。

  Visual Studio .NET 2003提供了对MMX指令集特性的支持,从而可以不必编写汇编代码,直接使用C++代码就可以实现MMX指令的功能。通过参考Intel软件说明书(Intel Software manuals)[1]以及阅读MSDN中有关MMX编程技术的主题会使你更好地把握MMX编程的要点。

  MMX技术实现了单道指令多道数据流(SIMD,single-instruction, multiple-data)的执行模式。考虑下面一个需要编程完成的任务,在一个字节(BYTE)数组中使其中每一个元素加上一个数,在传统的程序中,实现这个功能的算法如下:

  for each  b in array     //对数组中的每一个元素b
    b = b + n            //加上一个数n

  下面看看它的实现细节:

  for each  b in array  //对数组中的每一个元素b
  {
    把b加载到寄存器中
    把此寄存器中的数加上n
    把所得寄存器中的结果放回内存
  }


  具有MMX指令集支持的处理器有八个64位的寄存器,每一个寄存器可以存放8个字节(byte)、4个字(word)或2个双字(double-word)。MMX技术同时提供了一个MMX指令集,其中的指令可以可以把一个数值(其类型可以是字节、字或双字)加载到这些MMX寄存器中,在寄存器中进行算术或逻辑运算,然后把寄存器中的结果放回内存存储单元。上面的例子采用MMX技术后的算法是这样的:



下一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
上一篇:用Delphi模拟组件的两阶段提交
下一篇:Delphi实例演示:隐藏系统中的驱动器