admin 管理员组

文章数量: 887021


2024年1月17日发(作者:企业网站建设兴田德润电话)

TMS320C2XX 汇编语言指令

一. 累加器、算术和逻辑指令

1.ADD 加至累加器

ADD dma[,shift]

ADD ind[,shift[,ARn]]

ADD ind, 16[,ARn]

ADD dma,16

ADD # k

ADD # lk[,shift]

2.ADDC 带进位加至累加器

ADDC dma

ADDC ind[,ARn]

3.ADDS 抑制符号扩展加至累加器

操作数同ADDC

4.ADDT 按T寄存器内容移位后加至累加器

操作数同ADDC

5.SUB 从累加器减

操作数同ADD

6.SUBB 借位从累加器减

操作数同ADDC

7.SUBC 条件减

操作数同ADDC

8.SUBS 抑制符号扩展从累加器减

操作数同ADDC

9.SUBT 从累加器减去按T寄存器内

容移位的值

操作数同ADDC

10.ZALR 累加器低位清零且舍入装载累加器高位

操作数同ADDC

11.ABS 累加器取绝对值

12.CMPL 累加器求补

13.NEG 累加器求负

14.NORM规格化累加器

NORM ind

15.AND 和累加器逻辑“与”

AND dma

AND ind[,ARn]

AND # lk

AND # lk,16

16.OR 和累加器逻辑“或”

操作数同AND

17.XOR 和累加器逻辑“异或”

操作数同AND

18.LACT 按TREG规定的左移后装入累加器低位

操作数同ADDC

19.LACL装载累加器低位并清累加器高位

LACL dma

LACL ind[,ARn]

LACL # k

20.LACC 左移后装入累加器

LACC dma[,shift]

LACC dma,16

LACC ind[,shift[,ARn]]

LACC ind, 16[,ARn]

LACC # lk[,shift]

21.ROL 累加器逻辑循环左移

22.ROR 累加器逻辑循环右移

23.SFL 累加器算术左移

24.SFR 累加器算术右移

25.SACH 移位并存储累加器高位

SACH dma[,shift2 ]

SACH ind[,shift2 [,ARn]]

26.SACL 移位并存储累加器低位

操作数同SACH

二. 辅助寄存器指令

1.ADRK 短立即数加至辅助寄存器

ADRK # k

2.SBRK 从辅助寄存器中减去短立即数

SBRK # k

3.BANZ 辅助寄存器不等于零转移

BANZ pma [,ind [,ARn]]

4.CMPR 比较当前辅助寄存器和AR0

CMPR CM ;CM=0~3

5.LAR 装载辅助寄存器

LAR ARx,dma

LAR ARx,ind[,ARn]

LAR ARx,# lk

LAR ARx,# lk

6.MAR 修改辅助寄存器

MAR dma

MAR ind[,ARn]

7.SAR 存储辅助寄存器

SAR ARx,dma

SAR ARx,ind[,ARn]

三.TREG、PREG和乘法指令

1.APAC PREG加至累加器

2.LPH 装载PREG高位

LPH dma

LPH ind[,ARn]

3.LT 装载TREG

操作数同LPH

4.LTA 装载TREG并累加前次乘积

操作数同LPH

5. LTS装载TREG并减去前次乘积

操作数同LPH

6. LTD 装载TREG、累加前次乘积并传送数据

操作数同LPH

7. LTP 装载TREG并将PREG存至累加器

操作数同LPH

8.MAC 乘且累加

MAC pma, dma

MAC pma,ind [,ARn]

9.MACD 乘且累加并传送数据

操作数同MACD

10. MPY 乘

MPY dma

MPY ind[,ARn]

MPY # k

11. MPYA 乘且累加前次乘积

操作数同LPH

12. MPYS 乘且减去前次乘积

操作数同LPH

13. MPYU 无符号乘

操作数同LPH

14. SQRA 平方且累加前次乘积

操作数同LPH

15. SQRS 平方且减去前次乘积

操作数同LPH

16. PAC 将PREG装入累加器

17. SPAC 从累加器减去PREG

18. SPH 存储PREG高位

操作数同LPH

19. SPL 存储PREG低位

操作数同LPH

20. SPM 设置PREG输出的移位方式

SPM constant ;0~3

四. 转移指令

1.B 无条件转移

B pma [,ind [,ARn]]

2.BCND 条件转移

BCND pma,cond1[,cond2][,…]

3.BACC 按累加器内容转移

4.BANZ 辅助寄存器不等于零转移

BANZ pma [,ind [,ARn]]

5.CALL 无条件调用

操作数同B

6. CALA 调用累加器低16位指定地址处的子程序

7.CC 条件调用

操作数同BCND

8.INTR 软中断

INTR K ; K=0~31

9.NMI 不可屏蔽中断

10. RET 从子程序返回

11. RETC 条件返回

RETC cond1[,cond2][,…]

12. TRAP 软件陷井中断

五. 控制指令

1.BIT 位测试

BIT dma,bit code

BIT ind,bit code [,ARn]

2.BITT 测试TREG规定的位

BITT dma

BITT ind [,ARn]

3.CLRC 清除控制位

CLRC control bit

4.SETC 设置控制位

操作数同CLRC

5.IDLE 空闲至中断发生

6.LDP 装载数据页指针

LDP dma

LDP ind[,ARn]

LDP # k

7.LST 装载状态寄存器

LST # m,dma

;m=0,1

LST # m,ind [,ARn]

8.SST 存储状态寄存器

操作数同LST

9.NOP 空操作

10. POP 栈顶弹出至累加器低位

11. PASH 累加器低位进栈

12. POPD栈顶弹出至数据存储器

POPD dma

POPD ind[,ARn]

13. PSHD 数据存储器进栈

操作数同POP

14. RPT 重复执行下条指令

操作数同LDP

15.SPM 设置PREG输出的移位方式

SPM constant ;0~3

六. I/O和存储器指令

1.BLDD 数据存储器之间的块传送

BLDD # lk,dma

BLDD # lk,ind[,ARn]

BLDD dma,# lk

BLDD ind,# lk[,ARn]

2. BLPD 程序存储器至数据存储器间的块传送

BLPD # pma,dma

BLPD # pma,ind[,ARn]

3.DMOV片内数据存储器间的块传送

DMOV dma

DMOV ind [,ARn]

4.IN 从端口输入数据

IN dma,PA

IN ind,PA[,ARn]

5.OUT 从端口输出数据

操作数同IN

6.SPLK 存储长立即数至数据存储器

SPLK # lk,dma

SPLK # lk,ind[,ARn]

7.TBLR 表读

TBLR dma

TBLR ind[,ARn]

8.TBLW 表写

操作数同TBLR

*******************************

注:操作数说明

dma:数据存储器地址7位最低有效位

shift:左移位数:0~15(缺省为0)

shift2:左移位数:0~7(缺省为0)

n :用以指示下一辅助寄存器的值(0~7)k :8位短立即数

lk :16位长立即数

ind:下列七种选项只一

*,*+,*-,*0+,*0-,*BR0+,*BP0-

bit code:用以指示被测试位位置的值(0~15)

pma:16位程序存储器地址

m: 状态寄存器选择

0:ST0 1:ST1

constant:乘积移位方式的数值(0~3)

00H:PREG输出无移位

01H:PREG输出左移1位

10H:PREG输出左移4位

11H:PREG输出左移6位并进行符号扩展

control bit:控制位

C: ST1的进位位

CNF: ST1的RAM配置控制位

INTM: ST0的中断方式位

OVM: ST0的溢出方式位

SXM: ST1的符号扩展方式位

TC: ST1的测试/控制标志位

XF: ST1的XF引脚状态位

cond:条件

EQ: ACC=0

NEQ: ACC=0

LT: ACC<0

GT: ACC>0

GEQ: ACC>=0

NC: C=0

C: C=1

NOV: OV=0

OV: OV=1

BIO: BIO低

NTC: TC=0

TC: TC=1

UNC: 无条件

PA:16位I/O或I/O映射寄存器地址

K:中断向量单元 (0~31)

CM:0~3

CM=00H:测试(当前AR)=(AR0)?

CM=01H:测试(当前AR)<(AR0)?

CM=10H:测试(当前AR)>(AR0)?

CM=11H:测试(当前AR)=(AR0)?


本文标签: 累加器 寄存器 存储器 辅助 数据