C64X特有的汇编指令集.doc

上传人:hw****26 文档编号:3519729 上传时间:2019-06-01 格式:DOC 页数:3 大小:134.50KB
下载 相关 举报
C64X特有的汇编指令集.doc_第1页
第1页 / 共3页
C64X特有的汇编指令集.doc_第2页
第2页 / 共3页
C64X特有的汇编指令集.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、新闻出处:DSP 信息网 发布时间: 2007-11-15C64X 特有的汇编指令集ABS2 src2,dst .L 对 src2 的高、低半字的 2 个有符号 16 位数取绝对值,有饱和ADDAD src2,src1,dst .D 使用双字寻址模式的整数加法ADD2 src1,src2,dst .L.S.D src1 和 src2 的高低半字分别做有符号加法ADD4 src1,src2,dst .L Src1 和 src2 的 4 个字节分别做有符号加法ADDKPC src1,src2,dst .S2 7 位有符号常数 src1 左移 2 位,然后加到饱和 ADDKPC 指令的取指包第 1

2、条指令地址(PCE1);3 位无符号常数src2 指定插入的空操作 NOP 数。AND src1,src2,dst .L.S.D ANDN src1,src2,dst .L.S.D 先将 src2 取反,再和 src1 按位“与”AVG2 src1,src2,dst .M 分别求 src1 和 src2 高、低半字的平均值,向上取整,结果置入 dstAVGU4 src1,src2,dst .M 分别求 src1 和 src2 的 4 个无符号字节的平均值,向上取整。BDEC scst10,dst .S 当 dst=0 时,将 dst 内容减 1 并执行相对转移,转移地址为 BDEC 指令所在的

3、取指包第一条指令地址(PCE1)与scst10(10 位有符号数)左移 2 位后相加的和。如 dstsrc2 高半字,则 dst 的 bit 1 位置 1,否则置 0;通样,低位半字的比较结果置 dst 的 bit 0 位为 1 或 0CMPGTU4 src1,src2,dst .S 分别比较 src1 和 src2 的 4 个字节,若 src1 最高字节src2 最高字节,则 dst 的 bit3 置 1,否则置 0;同样,其他 3 个字节的比较结果置 dst 的 bit 2 位bit 0 位为 1 或 0CMPLT2 src2,src1,dst .S 分别比较 src2 和 src1 的高

4、低半字,若 src2 高半字src1 高半字,则 dst 的 bit 1 置 1,否则置 0;同样,低位半字结果置 dst 的 bit 0 位为 1 或 0CMPLTU4 src2,src1,dst .S 分别比较 src2 和 src1 的 4 个字节(无符号数),若 src1 最高字节src2 最高字节,则 dst 的 bit 3 置 1,否则置 0;同样,其他 3 个字节的比较结果置 dst 的 bit 2 位bit 0 位为 1 或 0DEAL src2,dst .M 提取 src2 的奇数及偶数位,组成 dst 的高、低半字DOTP2 src1,src2,dst .M 2 个 16

5、位与 16 位数的点积和指令,src1 与 src2 中高低对应的半字相乘,再求和。Dst 为 64 位长型量时,高位为符号扩展。Dst 为 32 位整型量时 ,取 64 位点积的低 32 位。DOTPN2 src1,src2,dst .M 2 个 16 位与 16 位乘积之差指令,src1 与 src2 中高半字的积减去低半字的积 ,差值送 dstDOTPNRSU2 src1,src2,dst .M 带求反、移位及四舍五入的点积指令。Src1(有符号数)和 src2(无符号数)高半字的积减去低半字的积 ;差值加 8000h 后右移 16 位,结果置入 dstDOTPRSU2 src1,src

6、2,dst .M 与 DOTPNRSU2 类似,Src1(有符号数)和 src2(无符号数)高半字的积加低半字的积 ;和数加 8000h 后右移 16位,结果置入 dstDOTPRUS2 src2,src1,dst .M 与上一行 DOTPRSU2 指令差别仅仅是:src1(有符号数)和 src2(无符号数)在指令的位置不同。DOTPSU4 src1,src2,dst .M 先求 src1(有符号数)与 src2(无符号数)4 个字节对应的积,再相加 ,和数送入 dst。DOTPU4 src1,src2,dst .M 与上一行指令的差别仅仅是:src1 和 src2 都是无符号数,和数也是无符

7、号数。GMPY4 src1,src2,dst .M 做 4 个字节的 Galois 域乘法。LDDW *+baseroffsetR,dstLDDW *+baseRucst5,dst.D 从内存读取 64 位双精度到寄存器,偏移地址可以放在寄存器中,也可以是 5 位常数。LDNDW *mem,dstLDNW *mem,dst.D 无边界调整的内存读取,1 次读 64 位无边界调整的内存读取,1 次读 32 位MAX2 src1,src2,dst .L 分别比较有符号数 src1 和 src2 的高低半字,取其中的大数送到 dst 的相应位置MAXU4 src1,src2,dst .L 分别比较有

8、符号数 src1 和 src2 的 4 个无符号字节,取其中的大数送到 dst 的相应位置MIN2 src1,src2,dst .L 分别比较有符号数 src1 和 src2 的高低半字,取其中的小数送到 dst 的相应位置MINU4 src1,src2,dst .L 分别比较有符号数 src1 和 src2 的 4 个无符号字节,取其中的小数送到 dst 的相应位置MPY2 src1,src2,dst .M 2 个源操作数的高低有符号半字,对应相乘;目的操作数是 64 位的双字,低位字存放低半字的积,高位字存放高半字的积。MPYHI src1,src2,dst .M Src1 的高半字与 s

9、rc2 的 32 位做乘法,结果是 64 有符号数,存入 1 对寄存器。MPYHIR src1,src2,dst .M 16 位与 32 位带舍入的乘法:src1 的高半字与 src2 的 32 位做乘法,乘积加 4000h 后右移 15 位,结果的低 32位存入 dstMPYIH src2,src1,dst .M Src1 的高半字与 src2 的 32 位做乘法,结果是 64 有符号数,存入 1 对寄存器(与 MPYHI 指令相比,只是 src1 和src2 的位置不同)。MPYIHR src2,src1,dst .M 与 MPYHIR 相比 ,只是 src1,src2 位置不同。MPYI

10、L src2,src1,dst .M Src1 的低半字与 32 位的 src2 做乘法,结果是 64 位的有符号数,存入 1 对寄存器。MPYILR src2,src1,dst .M 16 位与 32 位的带舍入乘法:src1 的低半字与 32 位的 src2 做乘法,乘积加 4000h 后右移 15 位,结果的低 32位存入 dstMPYLI src1,src2,dst .M 与 MPYIL 相比 ,只是 src1、src2 位置不同。MPYLIR src1,src2,dst .M 与 MPYILR 相比,只是 src1、src2 位置不同。MPYSU4 src1,src2,dst .M

11、有符号 src1 与无符号 src2 的 4 个字节对应相乘,4 个 16 位乘积依序存放到一对寄存器内MPYUS4 src1,src2,dst .M 与 MPYSU4 的差别仅在于 src1、src2 位置不同MPYU4 src1,src2,dst .M 无符号 src1 与无符号 src2 的 4 个字节对应相乘,4 个 16 位乘积依序存放到一对寄存器内MVD src2,dst .M 通过功能单元.M 把寄存器 src2 的内容送到寄存器 dst,用时 4 个周期。MVK cst,dst .L.S.D 将常数 cst 写入 dst 低半字,符号扩展MVKL cst,dst .L.S.D

12、将常数 cst 或 cst 的低 16 位写入 dst 低半字,符号扩展。OR src1,src2,dst .L.S.D Src1 和 src2 按位“或”PACK2 src1,src2,dst .L.S 将 src1 与 suc2 的低 16 位提取组成一个新的整型数,送 dstPACKH2 src1,src2,dst .L.S 将 src1 与 suc2 的高 16 位提取组成一个新的整型数,送 dstPACKH4 src1,src2,dst .L 将 src1 与 suc2 的低位字节提取组成一个新的整型数,送 dstPACKHL2 src1,src2,dst .L.S 将 src1 高

13、 16 位与 src2 的低 16 位提取组成一个新的整型数,送 dstPACKL4 src1,src2,dst .L 将 src1 及 src2 偶位字节提取组成一个新的整型数,送 dstPACKLH2 src1,src2,dst .L.S 将 src1 的低 16 位与 src2 的高 16 位提取组成一个新的整型数,送 dstPOTL src2,src1,dst .M 将 src2 旋转左移,无符号数 src1 的最低 5 位指定旋转左移位数。SADD src1,src2,dst .S Src1 与 src2 高低半字分别做带饱和的加法,不影响 SAT 位。SADDU4 src1,src

14、2,dst .S Src1 与 src2 的 4 个字节对应做无符号带饱和加法 ,不影响 SAT 位SADDSU2 src1,src2,dst .S 有符号数 src1 和无符号数 src2 的高低半字分别做带饱和加法,不影响 SAT 位SADDUS2 src1,src2,dst .S 无符号数 src1 和有符号数 src2 的高低半字分别做带饱和加法,不影响 SAT 位SHFL src2,dst .M Src2 的高半字与低半字按位顺序交插,形成新字送 dstSHLMB src1,src2,dst .L.S 左移并拼接:src2 左移 8 位,再把 src1 的最高字节续为其最低字节,形成

15、新字送 dstSHR2 src2,src1,dst .S Src2 的高低半字分别算术右移,有符号扩展,src1 的低 5 位或 ucst5 确定移位次序。SHRMB src1,src2,dst .L.S 右移并拼接:src2 右移 8 位,再把 src1 的最低字节续为其最高字节,形成新字送 dstSHRU2 src2,src1,dst .S Src2 的高低半字视作 2 个无符号数,分别算术右移,无符号扩展,src1 的低 5 位或 ucst5 确定移位次数SMPY2 src1,src2,dst .M Src1 与 src2 高低半字对应相乘,结果为 64 位,其他同 SMPY 指令。SP

16、ACKU4 src1,src2,dst .S 将 src1 及 src2 4 个有符号 16 位数有饱和低转为 4 个 8 位无符号数,送 dstSSHVL src2,src1,dst .M 带符号扩展、移位方向、长度可变的左移指令:src1 为补码数,且绝对值不大于 31。如 src1 为正,src2 左移;如 src1 为负,src2 带符号扩展地右移。移位中符号有变,取饱和值,并置 SAT 位为 1。SSHVR src2,src1,dst .M 带符号扩展、移位方向、长度可变的右移指令:src1 为补码数,且绝对值不大于 31。如 src1 为正,src2 带符号扩展右移;如 src1

17、为负,src2 左移。移位中符号有变,取饱和值,并置 SAT 位为 1。STDW src,*mem .D STNDW src,*mem .D STNW src,*mem .D SUB2 src1,src2,dst .S.D Src1 与 src2 的高低半字分别做有符号减法SUB4 src1,src2,dst .L Src1 与 src2 的 4 个字节分别做有符号减法,得数送入 dst 的对应字节SUBABS4 src1,src2,dst .L Src1 与 src2 的 4 个字节分别做无符号减法,将各个差值的绝对值送入 dstSWAP2 src2,dst .L.S 将 src2 的高低半字交换,结果送 dstSWAP4 src2,dst .L 将 src2 的高低半字的 2 个字节交换 ,结果送 dstUNPKHU4 src2,dst .L.S 将 src2 高半字的 2 个字节分别送 dst 的 byte 2、byte 0,其余 2 字节补 0UNPKLU4 src2,dst .L.S 将 src2 低半字的 2 个字节分别送 dst 的 byte 2、byte 0,其余 2 字节补 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。