[附录2] TMS320C54X指令速查表

本文由用户“hanyanga2”分享发布 更新时间:2023-05-22 09:30:44 举报文档

以下为《[附录2] TMS320C54X指令速查表》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

§6.2 [附录2] TMS320C54X指令速查表

TMS320C54X指令一共有129条,按功能分为算术指令、逻辑指令、程序控制指令、存储和装入指令、单个循环指令5类。

要读懂指令系统,首先须理解其中的符号所代表的意义,见下表:

符号

意义



A

累加器A



ACC

累加器



ACCA

累加器A



ACCB

累加器B



ALU

算术逻辑单元



ARx

特指某个辅助寄存器(0≤x≤7)



ARP

ST0中的辅助寄存器指针位;这3位指向当前辅助寄存器(AR)



ASM

ST1中的5位累加器移位方式位(-16≤ASM≤15)



B

累加器B



BRAF

ST1中的块循环有效标志



BRC

块循环计数器



BITC

4位某某决定位测试指令对指定的数据存储器值的哪一位进行测试



C16

ST1中的双16位/双精度算术方式位



C

ST0中的进位位



CC

2位条件代码(0≤CC≤3)



CMPT

ST1中的兼容方式位



CPL

ST1中的编译方式位



Cond

操作数表示条件执行指令使用的条件



[d], [D]

延迟方式



DAB

D数据总线



DAR

DAB地址寄存器



dmad

16位立即数表示的数据存储器地址(0≤dmad≤65535)



Dmem

数据存储器操作数



DP

ST0中的9位某某据存储器页指针(0≤DP≤511)



dst

目的累加器(A或B)



dst_

另一个目的累加器



EAB

E地址总线



EAR

EAB地址寄存器



extpmad

23位立即数表示的程序存储器地址



FRCT

ST1中的分数方式位



hi (A)

累加器A的高端(31-16位)



HM

ST1中的保持方式位



IFR

中断标志寄存器



INTM

ST1中的中断屏蔽位



K

少于9位的短立即数



K3

3位立即数(0≤K3≤7)



K5

5位立即数(-16≤K5≤15)



K9

9位立即数(0≤K9≤511)



lk

16位长立即数



Lmem

使用长字寻址32位单数据存储器操作数



mmr MMR

存储器映射寄存器



MMRx MMRy

存储器映射寄存器,AR0-AR7或SP



n

紧跟XC指令的字数,n=1或2



N

指定在RSBX,SSBX和XC指令中修改的状态寄存器(ST0或ST1)



OVA

ST0中的累加器A的溢出标志



OVB

ST0中的累加器B的溢出标志



OVdst

目的累加器(A或B)的溢出标志



OVdst_

目的累加器反(A或B)的溢出标志



Ovsrc

源累加器(A或B)的溢出标志



OVM

ST1中的溢出方式位



PA

16位立即数表示的端口地址(0≤PA≤65535)



PAR

程序地址寄存器



PC

程序计数器



pmad

16位立即数表示的程序存储器地址(0≤pmad≤65535)



Pmem

程序存储器操作数



PMST

处理器方式状态寄存器



prog

程序存储器操作数



[R]

凑整选项



md

凑整



RC

循环计数器



RTN

在指令RETF[D]中使用的快速返回寄存器



REA

块循环结束地址寄存器



RSA

块循环开始地址寄存器



SBIT

4位某某指明在指令RSBX,SSBX和XC中修改的状态寄存器位某某 (0≤SBIT≤15)



SHFT

4位移位某某(0≤SHFT≤15)



SHIFT

5位移位某某(-16≤SHIFT≤15)



Sind

使用间接寻址的单数据存储器操作数



Smem

16位单数据存储器操作数



SP

堆栈指针



src

源累加器(A或B)



ST0

状态存储器0



ST1

状态存储器1



SXM

ST1中的符号扩展方式位



T

暂存器



TC

ST0中测试/控制标志位



TOS

堆栈栈顶



TRN

状态转移寄存器



TS

T寄存器的5-0位确定的移位某某(-16≤TS≤31)



uns

无符号的数



XF

ST1中的外部标志状态位



XPC

程序计数器扩展寄存器



Xmem

在双操作数指令和一些单操作数指令中使用的16位双数据存储器操作数



Ymem

在双操作数指令使用的16位双数据存储器操作数





1. 算术运算指令

(1) 加法指令

ADD Smem, src

与ACC相加



ADD Smem, TS, src

操作数移位后加到ACC中



ADD Smem, 16, src[,dst]

把左移16位的操作数加到ACC中



ADD Smem, [,SHIFT], src[,dst]

把移位后的操作数加到ACC中



ADD Xmem, SHFT, src

把移位后的操作数加到ACC中



ADD Xmem, Ymem, dst

把两个操作数分别左移16位,然后相加



ADD # lk [,SHFT], src [,dst]

长立即数移位后加到ACC中



ADD # lk, 16, src[,dst]

把左移16位的长立即数加到ACC中



ADD src, [,SHIFT][,dst]

移位再相加



ADD src, ASM[,dst]

移位再相加,移动位某某为ASM的值



ADDC Smem, src

带有进位位的加法



ADDM # lk, Smem

把长立即数加到存储器中



ADDS Smem, src

带符号扩展的加法





(2)减法指令

SUB Smem, src

从累加器中减去一个操作数



SUB Smem, TS, src

移位后再与ACC相减



SUB Smem, 16, src[,dst]

把左移16位的操作数与ACC相减



SUB Smem, [,SHIFT], src[,dst]

把移位后的操作数与ACC相减



SUB Xmem, SHFT, src

把移位后的操作数与ACC相减



SUB Xmem, Ymem, dst

把两个操作数分别左移16位,然后相减



SUB # lk [,SHFT], src [,dst]

长立即数移位后与ACC相减



SUB # lk, 16, src[,dst]

把左移16位的长立即数与ACC相减



SUB src, [,SHIFT][,dst]

移位再相减



SUB src, ASM[,dst]

移位再相减,移动位某某为ASM的值



SUBB Smem, src

带有借位位的加法



SUBC Smem, src

条件减法



SUBS Smem, src

带符号扩展的减法





(3)乘法指令

MPY Smem, dst

T寄存器与单数据存储器操作数相乘



MPYR Smem, dst

T寄存器带四舍五入与单数据存储器操作数相乘



MPY Xmem, Ymem, dst

两个数据存储器操作数相乘



MPY Smem, # lk, dst

长立即数与单数据存储器操作数相乘



MPY # lk, dst

长立即数与T寄存器的值相乘



MPYA dst

ACCA的高端与T寄存器的值相乘



MPYA Smem

单数据存储器操作数与ACCA的高端相乘



MPYU Smem, dst

T寄存器的值与符号数相乘



SQUR Smem, dst

单数据存储器操作数的平方



SQUR A, dst

ACCA的高端的平方





(4)乘加与乘减指令

MAC Smem, src

与T寄存器相乘再加到ACC中



MAC Xmem, Ymem src[,dst]

双操作数相乘再加到ACC中



MAC # lk, src[,dst]

T寄存器与长立即数相乘再加到ACC中



MAC Smem, # lk, src[,dst]

与长立即数相乘再加到ACC中



MACR Smem, src

带四舍五入与T寄存器相乘再加到ACC中(凑整)



MACR Xmem, Ymem,src [,dst]

带四舍五入双操作数相乘再加到ACC中( 凑整)



MACA Smem, [,B]

与ACCA的高端相乘再加到ACCB中



MACA T, src[,dst]

T寄存器与ACCA的高端相乘再加到ACC中



MACAR Smem[,B]

带四舍五入与ACCA的高端相乘再加到ACCB (凑整)



MACAR T, src[,dst]

T寄存器带四舍五入与ACCA高端相乘,再加到ACC中(凑整)



MACD Smem, pmad, src

带延时的与程序寄存器值相乘再累加



MACP Smem, pmad, src

与程序寄存器值相乘再累加



MACSU Xmem, Ymem, src

带符号数与无符号数相乘再累加



MAS Smem, src

与T寄存器相乘再与ACC相减



MASR Smem, src

带四舍五入与T寄存器相乘再与ACC相减(凑整)



MAS Xmem, Ymem, src[,dst]

双操作数相乘再与ACC相减



MASR Xmem, Ymem, src[,dst]

双操作数带四舍五入相乘再与ACC相减



MASA Smem [,B]

从ACCB中减去单数据存储器操作数与ACCA的乘积



MASA T, src[,dst]

从src中减去ACCA高端与T寄存器的乘积



MASAR T, src[,dst]

从src中减去ACCA高端与T寄存器的乘积(凑整)



SQURA Smem, src

平方后累加



SQURS Smem, src

平方后相减





(5)双操作数指令

DADD Lmem, src[,dst]

双重加法



DADST Lmem, dst

T寄存器与长立即数的双重加法和减法



DRSUB Lmem, src

长字的双16位减法



DSADT Lmem, dst

T寄存器与长操作数的双重减法



DSUB Lmem, src

ACC的双精度/双16位减法



DSUBT Lmem, dst

T寄存器和长操作数的双重减法





(6)特殊应用指令

ABDST Xmem, Ymem

求绝对值



ABS src[,dst]

ACC的值取绝对值



CMPL src[,dst]

求累加器值的反码



DELAY Smem

存储器延迟



EXP src

求累加器指数



FIRS Xmem, Ymem, pmad

对称有限冲击响应滤波器



LMS Xmem, Ymem

求最小均方某某



MAX dst

求累加器的最大值



MIN dst

求累加器的最小值



NEG src[,dst]

求累加器的反值



NORM src[,dst]

归一化



POLY Smem

求多项式的值



RND src[,dst]

求累加器的四舍五入值



SAT src

对累加器的值做饱和计算



SQDST Xmem, Ymem

求两点之间距离的平方





2.逻辑指令

(1)与指令

AND Smem, src

单数据存储器读数和ACC相与



AND # lk[,SHFT], src[,dst]

长立即数移位某某ACC相与



AND # lk, 16, src[,dst]

长立即数左移16位某某ACC相与



AND src[,SHIFT] [,dst]

累加器的值移位后相与



ANDM # lk, Smem

单数据存储器操作数与长立即数相与





(2)或指令

OR Smem, src

单数据存储器读数和ACC相或



OR # lk[,SHFT], src[,dst]

长立即数移位某某ACC相或



OR # lk, 16, src[,dst]

长立即数左移16位某某ACC相或



OR src[,SHIFT] [,dst]

累加器的值移位后相或



ORM # lk, Smem

单数据存储器操作数与长立即数相或





(3)异或指令

XOR Smem, src

单数据存储器读数和ACC相异或



XOR # lk[,SHFT], src[,dst]

长立即数移位某某ACC相异或



XOR # lk, 16, src[,dst]

长立即数左移16位某某ACC相异或



XOR src[,SHIFT] [,dst]

累加器的值移位后相异或



XORM # lk, Smem

单数据存储器操作数与长立即数相异或





(4)移位指令

ROL src

累加器值循环左移



ROL TC src

累加器值带TC位循环左移



ROR src

累加器值循环右移



SFTA src, SHIFT[,dst]

累加器值算术移位



SFTC src

累加器值条件移位



SFTL src, SHIFT[,dst]

累加器值逻辑移位





(5)测试指令

BIT Xmem, BITC

测试指定位



BITF Smem, # lk

测试由立即数指定位



BITF Smem

测试由T寄存器指定位



CMPM Smem, # lk

比较单数据存储器操作数和立即数的值



CMPR CC, ARx

辅助寄存器ARx和AR0相比较





3.程序控制指令

(1)分支指令

B[D] pmad

可以选择延时的无条件转移



BACC[D] src

可以选择延时的指针指向的地址



BANZ[D] pmad, Sind

当AR不为0时转移



BC[D] pmad, cond[,cond[,cond]]

可以选择延时的条件转移



FB[D] extpmad

可以选择延时的远程无条件转移



FBACC[D] src

远程转移到ACC所指向的地址





(2)调用指令

CALA[D] src

可选择延时的调用ACC所指向的子程序



CALL[D] pmad

可选择延时的无条件调用



CC[D] pmad,cond[,cond[,cond]]

可选择延时的条件调用



FCALA[D] src

可选择延时的远程无条件调用



FCALL[D] extpmad

可选择延时的远程条件调用





(3)中断指令

INTRK

软件中断



TRAPK

软件中断





(4)返回指令

FRET[D]

可选择延时的远程返回



FRETE[D]

可选择延时的远程返回,且允许中断



RC[D] cond[,cond[,cond]]

可选择延时的条件返回



RET[D]

可选择延时的无条件返回



RETE[D]

可选择延时的无条件返回,且允许中断



RETF[D]

可选择延时的快速无条件返回,且允许中断





(5)重复指令

RPT Smem

循环执行下一条指令,计数为单数据存储器操作数



RPT # k

循环执行下一条指令,计数为短立即数



RPT # lk

循环执行下一条指令,计数为长立即数



RPTB[D] pmad

可以选择延时的块循环



RPTZ dst, # lk

循环执行下一条指令且对ACC清0





(6)堆栈操作指令

FRAME K

堆栈指针加上立即数的值



POPD Smem

把数据从栈顶弹入数据存储器



POPM MMR

把数据从栈顶弹入存储器映射寄存器



PSHD Smem

把数据存储器值压入堆栈



PSHM MMR

把存储器映射寄存器值压入堆栈





(7)其他程序控制指令

IDLE k

保持空闲状态直到有中断产生



MAR Smem

修改辅助寄存器



NOP

无任何操作



RESET

软件复位



RSBX N, SBIT

状态寄存器复位



SSBX N, SBIT

状态寄存器置位



XC n, cond[,cond[,cond]]

条件执行





4.装入指令

(1)存储指令

DST src, Lmem

把累加器的值存放到长字中



ST T, Smem

存储T寄存器的值



ST TRN, Smem

存储TRN的值



ST # lk, Smem

存储长立即操作数



STH src, Smem

把累加器的高端存放到数据存储器中



STH src, ASM, Smem

ACC的高端移位后存放到数据存储器中,移动位某某由ASM决定



STH src, SHFT, Xmem

ACC的高端移位后存放到数据存储器中



STH src[,SHIFT], Smem

ACC的高端移位后存放到数据存储器中



STL src, Smem

把累加器的低端存放到数据存储器中



STL src, ASM, Smem

ACC的低端移位后存放到数据存储器中,移动位某某由ASM决定



STL src, SHFT, Xmem

ACC的低端移位后存放到数据存储器中



STL src[,SHIFT], Smem

ACC的低端移位后存放到数据存储器中



STL M src, MMR

把累加器的低端存放到存储器中



STM # lk, MMR

把累加器的低端存放到存储器映射寄存器中





(2)装入指令

DLD Lmem, dst

把长字装入累加器



LD Smem, dst

把操作数装入累加器



LD Smem, TS, dst

操作数移位后装入ACC



LD Smem, 16, dst

把操作数左移16位后装入ACC



LD Smem[,SHIFT], dst

操作数移位后装入ACC



LD Xmem, SHFT, dst

操作数Xmem移位后装入ACC



LD # K, dst

把短立即操作数装入ACC



LD # lk[,SHFT], dst

长立即操作数移位后装入ACC



LD # lk, 16, dst

长立即操作数左移16位后装入ACC



LD src, ASM[,dst]

累加器移动由ASM决定的位某某



LD src[, SHIFT], dst

累加器移位



LD Smem, T

把单数据存储器操作数装入T寄存器



LD Smem, DP

把单数据存储器操作数装入DP



LD # k9, DP

把9位操作数装入DP



LD # k5, ASM

把5位操作数装入累加器移位方式寄存器中



L 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 器相比较



DST

长字(32位)存储



FB[D]

无条件远程跳转



FBACC[D]

远程跳转至累加器所指定的位置



FCALA[D]

远程调用子循环,地址由累加器所指定



FCALL[D]

无条件远程调用



FRET[D]

远程返回



FRETE[D]

中断使能并从中断中远程返回



IDLE

IDLE指令



INTR

中断



LD ARP

调用辅助寄存器指针



LD DP

调用数据页指针



MVMM

MMR之间的移动



ORM

数据存储器与长立即数相与



RC[D]

条件返回



RESET

软件复位



RET[D]

无条件返回



RETF[D]

从中断返回



RND

累加器求余



RPT

重复执行下一条指令



RPTB[D]

块重复



RPTZ

重复下一条指令并清除累加器



RSBX

复位状态寄存器中的位



SSBX

置位状态寄存器中的位



TRAP

软件中断



XC

条件执行



XORM

长立即数和数据存储器相异或





[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《[附录2] TMS320C54X指令速查表》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览