zoukankan      html  css  js  c++  java
  • MMX指令集系列之二

    4. 数据移位指令

       psllw MM,MM/m64

       psllw MM,imm8

       把目的寄存器按字由源存储器(或imm8 立即数)指定位数逻辑左移,移出的位丢失.
       低字移出的位不会移入高字.
       例:
       当MM0 = 0xffff  ffff ffff  ffff, 执行psllw MM0,1
       则MM0 = 0xfffe fffe fffe fffe

      psrlw MM,MM/m64

      psrlw MM,imm8


      把目的寄存器按字由源存储器(或imm8 立即数)指定位数逻辑右移,移出的位丢失.
      高字移出的位不会移入低字.
      例:
      当MM0 = 0xffff  ffff  ffff  ffff, 执行psrlw MM0,1
      则MM0 = 0x7fff 7fff 7fff 7fff

      pslld MM,MM/m64

      pslld MM,MM imm8

      把目的寄存器按双字由源存储器(或imm8 立即数)指定位数逻辑左移,移出的位丢失.
      低双字移出的位不会移入高双字.
      例:
      当MM0 = 0xffffffff  ffffffff, 执行 pslld MM0,1
      则MM0 = 0xfffffffe fffffffe

     psrld MM,MM/m64

     psrld MM,imm8
     

      把目的寄存器按双字由源存储器(或imm8 立即数)指定位数逻辑右移,移出的位丢失.
      高双字移出的位不会移入低双字.
      例:
      当 MM0 = 0xffffffff  ffffffff, 执行psrld MM0,1
      则 MM0 = 0x7fffffff 7fffffff

    5. 乘法指令

        pmullw MM,MM/m64

       并行16位按字相乘, 取结果低16位, 放入目的寄存器的对应字.  

      例:
      当MM0 == 0x0000 0002 0000 acfe

        MM1 ==  0x0000 0009 0000 cef3, 执行 pmullw,

        则MM0 = 0x0000 0000 0012 991a
        2 * 9 = 18,18 = 0000 0012h,取低16位 0012 为结果.
        0x0acfe == -21250,0xcef3 == -12557,-21250*-12557 = 266836250 = 0x 0fe7 991a,取低16位 991a 为结果.

       pmulhw MM,MM/m64
       并行16位按字相乘, 取结果高16位, 放入目的寄存器的对应字.

      例:
      当MM0 == 0x0000 0002 0000 acfe

        MM1 ==  0x0000 0009 0000 cef3, 执行 pmulhw,

        则MM0 = 0x0000 0000 0000 0fe7
        2 * 9 = 18,18 = 0000 0012h,取高16位 0000 为结果.
        0x0acfe == -21250,0xcef3 == -12557,-21250*-12557 = 266836250 = 0x 0fe7 991a,取高16位 0fe7 为结果.

     pmaddwd MM,MM/m64
     按字对齐有符号向量点乘.
     高32位 | 低32位
     目的寄存器:    a0| a1 | a2 | a3
     源寄存器:       b0| b1 | b2 | b3
     目的寄存器结果:  a0*b0+a1*b1 | a2*b2+a3*b3

    小结:

      1. 移位指令按照16位或32位进行并行移位。

      2. 移位指令分为逻辑左移和逻辑右移。

      3. 只有三种乘法指令,并行乘法的数据单位都是16位有符号数。

  • 相关阅读:
    Hard Rock
    Codeforces Round #416 (Div. 2) B. Vladik and Complicated Book
    codeforces 793B. Igor and his way to work
    codeforces 1B Spreadsheets
    HDU 1069 Monkey and Banana
    codeforces 2B The least round way
    【机器学习】 通俗说拟合
    python-八皇后问题
    python-核心知识思维导图
    python-@property 属性
  • 原文地址:https://www.cnblogs.com/celerychen/p/2982576.html
Copyright © 2011-2022 走看看