DSP常用指令系统归纳总结
本文总结了DSP(数字信号处理器)中常用的指令系统,包括累加器指令、辅助寄存器指令、乘法相关指令等。
一、累加器指令
累加器指令是DSP中最基本和最常用的指令,它们主要用于对累加器的操作,包括算术逻辑操作、累加器求绝对值、累加器装载、累加器存储等。
1. ABS:累加器求绝对值
ABS指令用于将累加器的值取绝对值。
2. ADD:累加器相加
ADD指令用于将累加器的值与另一个值相加,可以是立即数、寄存器或内存中的值。
3. ADDC:累加器带进位相加
ADDC指令用于将累加器的值与另一个值相加,并考虑进位。
4. ADDS:无符号数与累加器相加
ADDS指令用于将无符号数与累加器的值相加。
5. ADDT:左移量由临时寄存器决定的数与累加器相加
ADDT指令用于将左移量由临时寄存器决定的数与累加器的值相加。
6. AND:累加器与另一个值相与
AND指令用于将累加器的值与另一个值相与。
7. CMPL:累加器取反
CMPL指令用于将累加器的值取反。
8. LACC:累加器装载
LACC指令用于将一个值装载到累加器中。
9. LACL:累加器低16位装载
LACL指令用于将一个值的低16位装载到累加器中。
10. LACT:左移数由临时寄存器决定的累加器装载
LACT指令用于将左移数由临时寄存器决定的累加器装载。
11. NEG:累加器取负
NEG指令用于将累加器的值取负。
12. NORM:累加器值归一化
NORM指令用于将累加器的值归一化。
13. OR:累加器与另一个值相或
OR指令用于将累加器的值与另一个值相或。
14. ROL:累加器带进位循环左移
ROL指令用于将累加器的值带进位循环左移。
15. ROR:累加器带进位循环右移
ROR指令用于将累加器的值带进位循环右移。
16. SACH:存储累加器高16位
SACH指令用于将累加器的高16位存储到内存中。
17. SACL:存储累加器低16位
SACL指令用于将累加器的低16位存储到内存中。
18. SFL:累加器左移
SFL指令用于将累加器的值左移。
19. SFR:累加器右移
SFR指令用于将累加器的值右移。
20. SUB:累加器减
SUB指令用于将累加器的值减去另一个值。
21. SUBB:累加器带借位减
SUBB指令用于将累加器的值减去另一个值,并考虑借位。
22. SUBC:累加器条件减
SUBC指令用于将累加器的值减去另一个值,并考虑条件。
23. SUBS:累加器与无符号数相减
SUBS指令用于将累加器的值与无符号数相减。
24. SUBT:累加器与左移位数受临时寄存器控制的数相减
SUBT指令用于将累加器的值与左移位数受临时寄存器控制的数相减。
25. XOR:累加器与另一个值相异或
XOR指令用于将累加器的值与另一个值相异或。
26. ZALR:累加器低位清零、高位带舍入数据装载
ZALR指令用于将累加器低位清零、高位带舍入数据装载。
二、辅助寄存器指令
辅助寄存器指令用于对辅助寄存器的操作,包括装载、存储、比较等。
1. ADRK:当前AR加上短立即数
ADRK指令用于将当前AR加上短立即数。
2. BANZ:当前AR不等于零跳转
BANZ指令用于当前AR不等于零时跳转。
3. CMPR:当前AR与AR0比较
CMPR指令用于将当前AR与AR0比较。
4. LAR:指定的AR装载
LAR指令用于将指定的AR装载到累加器中。
5. MAR:修改当前ARP的值
MAR指令用于修改当前ARP的值。
6. SAR:指定的AR存储
SAR指令用于将指定的AR存储到内存中。
7. SBRK:当前AR值减去短立即数
SBRK指令用于将当前AR值减去短立即数。
三、乘法相关指令
乘法相关指令用于对乘积寄存器的操作,包括装载、存储、累加等。
1. APAC:乘积寄存器与累加器相加
APAC指令用于将乘积寄存器与累加器相加。
2. LPH:乘积寄存器高16位装载
LPH指令用于将乘积寄存器高16位装载到累加器中。
3. LT:临时寄存器装载
LT指令用于将临时寄存器装载到累加器中。
4. LTA:装载临时寄存器同时累加以前积
LTA指令用于装载临时寄存器同时累加以前积。
5. LTD:装载临时寄存器同时累加以前积并且数据转移
LTD指令用于装载临时寄存器同时累加以前积并且数据转移。
6. LTP:装载临时寄存器同时将乘积寄存器移位后存入累加器中
LTP指令用于装载临时寄存器同时将乘积寄存器移位后存入累加器中。
7. LTS:装载临时寄存器的同时累加器减去移位后的乘积寄存器的值
LTS指令用于装载临时寄存器的同时累加器减去移位后的乘积寄存器的值。
8. MAC:
MAC指令用于将乘积寄存器与累加器相乘。