DSP第三章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
50. SQRA 037Fh,
移位乘积)
DAT30
;(DP = 6: 地址 0300h–
;PM = 0: 无
51. SPH 027Fh,
DAT3
;(DP = 4: 地址 0200h– ;PM = 0:
无移位)
52. SPH
* ,AR7
;(PM = 2: 左移四位)
• 控制指令
BIT
(数据位 (15 – 0))
28.BCND
P9, LEQ,C
如果ACC 内容小于等于0,并且进位位置位,程序转到 P9 地址处开始执行,否则PC + 2。
29. INTR K
K: 中断向量值,每个K值(0~31)代表一个中断向量。
INTR
3
;PC + 1 被压入堆栈。 使得程序控制转换到与K值=3对应的地址, 由该地址引导到相应的中断服务程序。
ARP 装载方式: (1) MAR 指令 (2) LST 指令
(3) 任何支持间接寻址的指令
ARP 所指的寄存器被作为当前辅助寄存器或简称为当前AR。 • 间接寻址选项
LF240x 提供四种间接寻址选项:
(1)“ * ” 不增不减 指令用当前AR所指的数据存储器地址中内容装载,但当前 AR 内容不增不减。
POPD 59. POPD
DAT10 ;(DP = 8)
PSHD 60. PSHD
* ,AR1
61. SPM 11)
3
;乘积寄存器移位方式 3 (PM =
• I/O 和存储器指令
BLDD 源, 目的
BLDD # lk, dma 源地址长立即数目的地址直接 BLDD # lk, ind [, AR n] 源地址长立即数目的地址间接
34. LTA
* ,AR5
;(PM = 0)
35. MAC
pma, dma
MAC pma, ind [, AR n]
PC加1,则: (PC) MSTACK PC
16位程序存储器地址
(ACC)+移位后的(PREG)
(数据存储器地址) TREG
ACC
(数据存储器地址)×(16位程序存储器地址)
PREG
24. SUBB 047Fh)
DAT5 ; (DP = 8: 地址 0400h–
此例中,C 初始值为0,命令执行,有效操作为6 – 6 – (0–) = –1,产生借位。
25.
SUBC
DAT2 ;(DP=6)
• 辅助寄 存器指令
26. BANZ
当前AR的缺省修改为减1。 MAR *, AR0 向 AR0。 LAR AR1, #3 3. LAR AR0, #60h ; AR0 中装入 ; AR1中装入 ;设置 ARP指
3. 间接寻址方式 8个辅助寄存器 (AR0–AR7) 为处理器提供了强大而灵活的 寻址能力,提供间接寻址的16位地址,可以访问64K 数据 存储器空间的任意单元。 • 当前辅助寄存器 通过向状态寄存器ST0 中的3位辅助寄存器指针(ARP) 装入 0 ~ 7,可选择特定的辅助寄存器。
ST0 寄存器
常数嵌入在该指令中
• 长立即寻址方式 长立即寻址的指令将一个16位常数作为操作数,从而需 要两条指令字。 ADD #16384,2 ;将数据16384左移2位后,再将结果加 至累加器 ;and add the result to the accumulator.
2. 直接寻址方式 在直接寻址方式中,数据存储器地址以128字为单位被分 成若干块,这些块被称为数据页。
BLDD dma, # lk
目的地址长立即数源地址直接
BLDD ind, # lk [, AR n]目的地址长立即数源地址间接 (PC) MSTACK lk PC, (source) destination For indirect, modify (current AR) and (ARP) as specified (PC) + 1 PC; While (repeat counter) ≠ 0:(source) destination (PC) + 1 PC , (repeat counter) –1 repeat counter
TREG 的内容乘以被寻址的数据存储单元的内容;按PM 的 状态位指定的方式对先前的乘积进行移位,并将移位后的值 加到累加器ACC中。
43. MPYA
DAT13
;(DP = 6, PM = 0)
44. MPYA
* ,AR4
;(PM = 0)
45. MPYS
PC加1, 则: (ACC) – 移位后的(PREG) ACC (TREG) × (数据存储器地址) PREG
左移 4位
9. ADDT *–,AR4 ;(SXM = 0)
(ACC)
ACC
10. AND 027Fh)
16 ;(DP = 4: 地址 0200h–
11.
AND
*
12. AND
#00FFh,4
12. LACC 047Fh,
6, 4 ; (DP = 8: 地址 0400h– ;SXM = 0)
13. LACC
5. ADDC 037Fh)
DAT300 ;(DP = 6: 地址 0300h– ;DAT300 为 300h内容的标识。
6. ADDS 037Fh)
0 ;(DP = 6: 地址 0300h–
7. ADDS
*
8. ADDT 127 ;(DP = 4: 地址 0200h–027Fh, SXM = 0)
(ACC)+移位后的(PREG)
(数据存储器地址)
TREG
PREG
(数据存储器地址)×(16位程序存储器地址)
间接寻址时,按指定方式修改(当前AR)和(ARP)
当(重复计数器)≠0,(重复计数器)-1
(数据存储器地址) 数据存储器地址+1
重复计数器。
38. MACD 037Fh,
0FF00h ,08h ;(DP = 6: 地址 0300h– ;PM
MAR *, AR1; 将当前AR设置为AR1
(2) “ *+ ” 增1 或 “ * – ” 减 1。 指令用当前AR 所指的数据存储器地址中的内容装载,然 后当前AR 内容增1或减1。
LT *+ ;用当前AR所指的数据存储器地址中内容装载 TREG ,然后当前AR内容加1。 (3)“ *0+ ”加索引量或 “ *0– ” 减索引量。
MPY
* ;通过当前辅助寄存器AR3所指数据存储器地址内 容乘TREG。
3.2 指令集
• 累加器、算数和 逻辑指令
(3~0)
示例:
1. ADD 1,1 0300h~037FH) ;(DP = 6:
2. ADD
*+,0,AR0
3. ADD
#1h ;加短立即数
4. ADD
#1111h,1 ;长立即数左移一位与ACC相加。
60h.
P1 : ADD *+, AR1 ;若AR1不等于0, 则循环 程序执行后,数据存储器地址为60h–63h 的内容被加到累 加器。 BANZ P1, *-,AR0 ;将AR0所指的数加到 ACC,并将 AR0的值增1。
• 转移 指令
27. BCND pma, cond1[,cond2][,…]
*, 4
; (SXM = 0)
14. LACC
#0F000h,1 ;(SXM = 1)
15. LACL
*–, AR4
16. LACL
#10h
17. LACT 1 ;(DP = 6: 地址 0300h–037Fh, SXM = 0)
18. LACT
*–, AR3 ; (SXM = 1)
. OR AR0
= 0: 无移位乘积, ;CN
F = 1: 程序存储器为片内RAM 块B0)。
39. MPY
TREG 内容乘以数据存储器内容,结果放入乘积寄存器 (PREG)中。
40.MPY
DAT13
;(DP = 8)
41.MPY
* ,AR2
42. MPYA
PC加1, 则 (ACC) + 移位后的 (PREG) (TREG) × (数据存储器地址) PREG ACC
30. TRAP
TRAP 指令时软件中断使控制转换到程序存储单元22h。
• TREG、 PREG和乘法 指令
31. LPH 027Fh)
DAT0
; (DP = 4) 地址 0200h–
32. LPH *,AR6
33. LTA 037Fh,
36
;(DP = 6: 地址 0300h– ;PM =0: 无移位
*,
20. ROL;
ACC(31:1)
C
ACC(0), (ACC(31))
C, (ACC(30:0))
21. SACL
DAT11,1 ;(DP = 4,
左移1位)
22. SACH 027Fh,
DAT10,1 ;(DP = 4: 地址 0200h– ;左移1位)
23. SACH
*+, 0, AR2 ;(无移位)
第三章
TMS320LF240x 寻址方式& 指令系统
3.1 寻址方式
LF240x 指令集采用3种基本的存储器寻 址方式: 立即寻址方式 直接寻址方式 间接寻址方式
1. 立即寻址方式 在立即寻址方式中,指令字中包含指令所需的一个常数。 立即寻址方式有两种类型: • 短立即寻址方式
采用短立即寻址的指令将一个8位、9位或13位的常数作为 操作数。短立即寻址指令为一个单指令字。 RPT #99 ;将紧跟RPT 指令后的指令执行100 次。
512 个 数据页
除数据页之外,处理器必须知道该页上的7位偏移量。 偏移量由指令寄存器IR的7位最低有效位(LSBs)提供。 在直接寻址方式中,IR 的内容 如下:
位 15~ 8:用于指示指令类型和指令所访问的数据值的 移位信息。 位7 0 位7 1 直接寻址方式 间接寻址方式
位 6 ~ 0 :指示该指令所访问的数据存储器地址的偏移 量。
ST0 寄存器
LDP #6 ; 设置当前页为6 ;(地址 0300h–037Fh). 2) 指明偏移量:7位偏移量由指令的操作数在提供。 ADD 5h 累加器。 ;将当前数据页中偏移量为5处的数据加至
• 直接寻址示例 LDP #4 ;数据页设为 4, (地址 0200h~027fh) ADD 9h, 5;将数据地址0209h 处的内容左移 5位后加至累加器 Acc 。
间接寻址时,按指定方式修改(当前AR)和(ARP) 当(重复计数器)≠0,(重复计数器)-1 重复计数器。
36. MAC 0FF00h, 02h ;(DP = 6, PM = 0, CNF = 1:程序存储器是片内RAM块B0)
37. MACD
PC加1,则:
(PC)
MSTACK
PC ACC
16位程序存储器地址
为得到一个16位地址, 处理器将页指针DP值和指令寄存 器中的7位最低有效位(LSBs) 连接起来。
因此,用户必须注意在程序中初始化DP。加电后, DP 由于复位而不被初始化且不被定义。
• 使用直接寻址方式 1) 设置数据页. 将合适的值 (0 ~511) 装入DP。 DP 可由 LDP 指令装载,或由向ST0装载的任何指令来装载。
TC
53. BIT 0h ,15 最低有效位LSB
;(DP = 6). 测试300h处的
54. BITT 55. BITT
(数据位 (15 –TREG(3:0))) 00h ;(DP = 6)
TC
测试 300h处的14位数据
56. LDP FFFFh)
127
;(DP = 511: 地址 FF80h–
46. MPYS
DAT13
;(DP = 6, PM = 0)
47. MPYS
* ,AR5
;(PM = 0)
48. SPM
3
;乘积寄存器移位方式 3(PM = 11)
49. SQRA
(ACC) + 移位后的 (PREG) ACC (数据存储器地址) TREG (TREG) × (数据存储器地址) PREG
57. LDP
* ,AR5
LST LST dma: m: 0 1
#m, dma 直接寻址 #m, ind [, AR n] 间接寻址 数据存储器地址的最低7位有效位 LSBs 表明ST0 被加载 表明ST1 被加载
状态寄存器 STm ;(DP = 0) #0 ,60h
(数据存储器地址) 58. LST
指令用当前AR 所指的数据存储器地址中的内容装载,然 后当前AR 内容加上或减去AR0的内容(值)。
LT *0– ;用当前AR所指的数据存储器地址中内容装载 TREG ,然后当前AR内容加上AR0的内容值。 (4)“ *BR0+ ”加上索引量,反向进位,或 “ *BR0– ”减去 索引量,反向进位。 • 间接寻址示例 MAR *,AR2 LT *+,AR3 ;当前辅助寄存器 AR设为AR2。 ;用当前AR2所指的数据存储器地址中内容 装载TREG ,然后当前AR2内容加1,使得当 前AR变为AR3。