社区导航

 

搜索
查看: 211|回复: 0

[资料分享] TMS320C6xxx公共指令集

[复制链接]

621

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2020-5-6 18:53 | 显示全部楼层 |阅读模式

读取/存储类指令、算术运算类指令、逻辑与位运算类指令、搬移、跳转(程序转移)及空操作类指令等6种。
       由于C6000汇编语言的每一条指令只能在一定的功能单元执行,因此就形成了指令和功能单元之间的映射关系。一般而言,与乘法相关的指令在.M单元执行;需要产生数据存储器地址的指令在.D功能单元;算术逻辑运算大多在.S与.L单元执行。
       在书写汇编程序时可以以方括号对条件操作进行描述,方括号内是条件寄存器的名称,对C62xx/C67xx可以使用A1、A2、B0、B1和B2,而对于C64xx还可以增加使用A0寄存器作为条件寄存器。
       对C62xx/C67xx,双字节型数据的地址必须从偶数开始,即其地址最低位为0,4字节数据地址最低2位必须为0,分别称为半字、字边界。
       Little-Endian指数据的存储方式,即数据的高有效位存放在地址高位字节,低有效位存放在地址低有效位。数据存放的终结方式(EN)由芯片的相应管脚LENDIAN的电平决定,并反映在CSR寄存器的EN位。LENDIAN=1为小终端,LENDIAN=0为大终端。如0x0A48FE01

image.png


       如果运算结果超出了目的操作数字长所能表示数的范围,造成运算结果的高位丢失,使保存的运算结果不正确,称为溢出。
1、 寻址方式及Load/Store类指令
LDB/LD、LDBU/LDHU、STB/STH/STW,主要负责通用寄存器组与片内数据存储器之间交换数据。
2、 算术运算类指令
ADD/SUB、ADD2/SUB2、ADDU/SSUB、ADDK
3、 乘法运算类指令
SMPY/SMPYLH/SMPYHL
4、 逻辑和位域操作指令
AND/OR/XOR、NEG(求补码)、SHR/SHL(移位)、CMPEQ/CMPGT/CMPLT(比较)、
5、 搬移指令
搬移指令共有三个,MV/MVC/MVK,MV指令用于在通用寄存器之间传递数据,MVC指令用于在通用寄存器和控制寄存器之间传递数据,此条指令只能使用.S2功能单元,MVK指令用于把16位常数送入通用寄存器。在C6000指令集内,只能往寄存器送16位常数,可选择MVKH/MVKL指令向寄存器的高16位送数。
6、 程序转移指令
B .S1 LOOP
【资源对公共指令集底限制】表现在:指令在执行过程中会占用一定底资源,并行执行的指令所需资源不能冲突,在同一周期内不能有2条指令对同一寄存器执行写操作,具体编写汇编程序时要考虑到DSP的8个功能单元、2个读取数据通道(LD1、LD2)、2个通用寄存器组(A、B)、2个数据存储通路(ST1、ST2)、2个寄存器交叉通路(1X、2X)、2个数据寻址通路(DA1、DA2)相互之间的制约关系。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-7-7 03:36 , Processed in 0.084006 second(s), 21 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表