第 3 章 tms320c24x 寻址方式和指令系统

85
DSP芯芯芯芯芯芯芯 1 3 3 TMS320C24X TMS320C24X 芯芯芯芯芯芯芯芯芯芯芯芯芯芯芯芯

Upload: zuri

Post on 17-Mar-2016

106 views

Category:

Documents


5 download

DESCRIPTION

第 3 章 TMS320C24X 寻址方式和指令系统. TMS320LF240x 系列 DSP 采用与 TMS320C24x 相同的核,故两者的指令系统是相同的. 3.1 寻址方式. 3 种基本的寻址方式: 立即寻址 :直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址 :通过直接指定的地址来访问数据存储器 间接寻址 :通过 8 个辅助寄存器之一间接访问数据存储器. 1. 立即寻址方式. 支持两种立即寻址:短立即寻址和长立即寻址. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用1

第第 33 章章 TMS320C24X TMS320C24X 寻址方式和指令系统寻址方式和指令系统

Page 2: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用2

TMS320LF240x 系列 DSP 采用与 TMS320C24x 相同的核,故两者的指令系统是相同的3.1 寻址方式 3 种基本的寻址方式:

立即寻址:直接提供常数作为指令的操作数 需要访问数据存储器时可采用直接寻址或间接寻址 直接寻址:通过直接指定的地址来访问数据存储器 间接寻址:通过 8 个辅助寄存器之一间接访问数据存储器

Page 3: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用3

1. 立即寻址方式支持两种立即寻址:短立即寻址和长立即寻址短立即寻址——可指定 8 位、 9 位或 13 位的常数作为操作数长立即寻址——可指定 16 位的常数作操作数立即操作数以 # 为前缀

Page 4: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用4

采用短立即寻址的 RPT 指令 RPT #49 ;将紧跟 RPT 指令后的那条指令执行 50 次。指令寄存器中的内容 :1 0 1 1 1 0 1 11 0 1 1 1 0 1 1 0 0 1 1 0 0 0 10 0 1 1 0 0 0 115 14 13 12 11 10 9 815 14 13 12 11 10 9 8 7 6 5 4 3 2 1 07 6 5 4 3 2 1 0

采用立即寻址的 RPT 代码 8 位常数= 49

立即操作数作为 RPT 指令字的一部分 。立即操作数以符号 # 为前缀 。

Page 5: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用5

长立即寻址的 ADD 指令 ADD #65534 ,2 ;将数据 65534 左移两位后,再将结果加至累加器。 第一条指令字:1 0 1 1 1 1 1 1 1 0 0 11 0 1 1 1 1 1 1 1 0 0 1 0 0 1 00 0 1 015 14 13 12 11 10 9 815 14 13 12 11 10 9 8 7 6 5 4 3 2 1 07 6 5 4 3 2 1 0

采用长立即寻址的 ADD 代码 Shift = 2 第二条指令字:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 015 14 13 12 11 10 9 815 14 13 12 11 10 9 8 7 6 5 4 3 2 1 07 6 5 4 3 2 1 0

16 位常数= 65534 = FFFEh

立即操作数包含在第二条指令字中 ,指令寄存器顺次接收两个指令字的 16 位值。

Page 6: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用6

2. 直接寻址方式 通过指定的地址来访问数据存储器:数据页 + 偏移量 64K 存储器以 128(2^7) 为单位被分成 512(2^9) 个数据页 , 标号: 0~511

如要访问某一特定的单元,用户需 1. 设置数据页 2. 指明偏移量

Page 7: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用7

处理器用页指针 DP 来寻找数据页,用指令寄存器的低 7 位有效位来寻址该页上的特定地址。 ( 1 ) 设置数据页:将数据页( 0-511 )装入 DP 。DP 可由 LDP 指令装载,也可由向 ST0 装载的任何指令来装载 DP 。LDP 指令直接装载 DP ,并且不影响 ST0 的其它位。例:LDP #32 ;设置当前数据页为 32 ( 1000h-107Fh )注意:在任何程序中都要初始化 DP 。因为上电后不定义 DP ;复位不初始化 DP 。

Page 8: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用8

(( 22 ) 指明偏移量:) 指明偏移量: 77 位偏移量由指令的操作数提供。位偏移量由指令的操作数提供。例:如果希望 ADD 指令取当前数据页的第 5 个地址处的数据:ADD 5H ;将当前数据页中偏移量为 5h 处的数据加至累加器

说明采用直接寻址时,不必每条指令前都要设置数据页。总之,必须保证要访问新的数据页之前改变 DP 。

Page 9: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用9

直接寻址示例直接寻址示例 采用直接寻址的 ADD 指令(移位 0 至 15 位) LDP #4 ;数据页设为 4 ( 0200h-027Fh )ADD 9H , 5 ;将数据地址 0209h 处的内容左移5 位后加至累加器 采用直接寻址的 ADDC 指令

LDP #500 ;数据页设为 500 ( FA00h-FA7Fh )ADDC 8H ; 数 据 地 址 FA08h 处 内 容 和 进 位 值( C )被加至累加器

Page 10: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用10

3. 间接寻址方式 利用 8 个 16 位的辅助寄存器 AR0~AR7 可访问数据存储器任意单元,要访问的数据单元的地址装在当前辅助寄存器中 当前辅助寄存器 ( 当前 AR) 由 ST0 的 ARP 指定,也可通过指令 MAR LST 等直接指定 间接寻址选项 * , *+ , *- , *0+ , *0- 等实现当前AR 中目标数据单元的变更 重新指定当前辅助寄存器

Page 11: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用11

选项选项 操作数操作数 例子例子不增不减不增不减 ** LACC * LACC * 用当前用当前 ARAR 所指的数据存储器地址所指的数据存储器地址中内容装载累加器中内容装载累加器

增增 11 *+*+ LACC *+ LACC *+ 用当前用当前 ARAR 所指的数据存储器地址所指的数据存储器地址中内容装载累加器,然后向当前中内容装载累加器,然后向当前 ARAR 内容加内容加 11

减减 11 *-*- LACC *- LACC *- 用当前用当前 ARAR 所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后从当前内容装载累加器,然后从当前 ARAR 内容减内容减 11

加上索引量加上索引量 *0+*0+LACC *0+ LACC *0+ 用当前用当前 ARAR 所指的数据存储器地址所指的数据存储器地址中内容装载累加器,然后向当前中内容装载累加器,然后向当前 ARAR 内容加上内容加上 ARAR00 的内容的内容

减去索引量减去索引量 *0-*0-LACC *0- LACC *0- 用当前用当前 ARAR 所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后从当前内容装载累加器,然后从当前 ARAR 的内容减去的内容减去 ARAR00 的内容的内容

Page 12: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用12

除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器 AR 。当本条指令执行完之后,下一个辅助寄存器 AR 便成为当前辅助寄存器 AR 。

例: 选择新的当前辅助寄存器 ARMAR * , AR1 ;将当前辅助寄存器 AR 设为 AR1LACL *+ , AR2 ;用辅助寄存器 AR1 所指向的地址中内容装载累加器的低 16 位, AR1 内容加 1 ,使 AR2 为当前辅助寄存器 ARSACL *+ ;将累加器的低 16 位存于 AR2 所指向的地址单元, AR2 内容加 1 。

Page 13: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用13

示例 通过辅助寄存器实现数据块的移动lar ar5,#8000H mar *,ar5rpt #25blpd #table1,*+

示例 通过辅助寄存器实现对特定数据块的访问Loop: mar *,ar5 lacc 56h sub *+,ar3 sacl *+,ar6 banz loop

lar ar6,#239 lar ar5,#8100h lar ar3,#8200h

Page 14: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用14

3.2 指令集包括 5 大类 86 条指令 , 对应表格 3.2~3.7算术逻辑运算指令寻址相关的指令乘法相关指令转移和控制指令I/O 和存储器操作指令

Page 15: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用15

命令概述表中涉及的相关符号的意义(见 P.57 下)

左移

Page 16: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用16

命令概述表中涉及的相关符号的意义(见 P.57 下)

Page 17: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用17

常用指令集LDP SPLKLACCADDSACLLARMAR

BANZLTMPYMPYAAPACSPAC

Page 18: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用18

1. 加法指令: ADD , ADDC, ADDS, ADDT 减法指令: SUB, SUBB, SUBS, SUBT 正数除法实现: SUBC

语法 ADD

3.3 典型指令说明

Page 19: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用19

命令执行

状态位

Page 20: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用20

例 1

例 2

例 3

Page 21: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用21

3.3 典型指令说明 ADDC

语法

命令执行状态位

Page 22: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用22

3.3 典型指令说明例 1

例 2

Page 23: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用23

3.3 典型指令说明 ADDS

Page 24: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用24

3.3 典型指令说明 ADDT

Page 25: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用25

3.3 典型指令说明 SUB( 与 ADD 对应 )语法

命令执行

状态位

Page 26: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用26

3.3 典型指令说明其他减法相关命令: SUBB,SUBS,SUBT 等

Page 27: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用27

3.3 典型指令说明 实现正数的除法: SUBC语法命令执行

状态位

SUBC 完成条件减法,也可按下列方法实现除法:把一个正的 16 位被除数放在 ACC 的低 16 位,高 16 位清零。正的 16 位除数放在数据存储器中,然后执行 SUBC16 次。除法的结果在 ACC 中,其中低 16 位是商,高 16 位是除法的余数。对于负的被除数或除数, SUBC 不能实现除法

Page 28: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用28

3.3 典型指令说明2. 乘法及其结果处理相关指令: MPY, MPYA, MPYS, MPYU,MAC,MACD,PAC,APAC,SPAC,SPH,SPL语法命令执行例 1

状态位 无

例 2

Page 29: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用29

3.3 典型指令说明MPYA,MPYS,MPYU

Page 30: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用30

3.3 典型指令说明MAC语法命令执行

例状态位

Page 31: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用31

3.3 典型指令说明

Page 32: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用32

3.3 典型指令说明MACD语法命令执行

例状态位

dma为存储器映像寄存器或外部存储器时此操作不执行,此时该指令等效为 MAC

Page 33: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用33

3.3 典型指令说明PAC, APAC,SPAC,SPH,SPL

LSBs

Page 34: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用34

3.3 典型指令说明

语法例 1

例 2

与乘法准备相关指令: LT, LTD, LTA, LTP, LTS, SQRA, SQRS

Page 35: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用35

3.3 典型指令说明LTD语法命令执行例 1

状态位

Note: The data move function for LTD can occur only within on-chip data memory RAM blocks. 此时等效 LTA

Page 36: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用36

3.3 典型指令说明LTA, LTP, LTS, SQRA, SQRS

改为 -与乘法相关指令共 18 条

平方指令

Page 37: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用37

3.3 典型指令说明3. 逻辑运算: ABS, AND, OR, NEG, XOR ABS

Page 38: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用38

3.3 典型指令说明 AND语法

命令执行高位清零

Page 39: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用39

3.3 典型指令说明

例 1

例 2

例 3

状态位 无

Page 40: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用40

3.3 典型指令说明其他逻辑指令: OR , NEG, XOR

高位不变

Page 41: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用41

3.3 典型指令说明4. 位操作相关指令: BIT, BITT, CMPL, CLRC, SETC, SPM语法

命令执行例

状态位 影响 TC

Page 42: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用42

3.3 典型指令说明BITT (动态位测试)语法

命令执行例

状态位 影响 TC

Page 43: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用43

3.3 典型指令说明

Page 44: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用44

3.3 典型指令说明CMPL: 取反语法命令执行

例状态位 无

不影响 C

Page 45: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用45

3.3 典型指令说明CLRC语法

命令执行 PC+1, control bit=0

操作数

例状态位 无

Page 46: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用46

3.3 典型指令说明SETC, SPM语法

命令执行状态位 无

操作数 同 CLRC 操作数 0~3状态位 影响 PM

Page 47: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用47

3.3 典型指令说明5. 程序控制类指令:

语法命令执行

• 跳转指令: B, BACC, BANZ, BCND

语法命令执行

Page 48: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用48

3.3 典型指令说明BANZ语法命令执行例 1

状态位 无

Page 49: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用49

3.3 典型指令说明

例 2

Page 50: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用50

3.3 典型指令说明BCND

语法命令执行

状态位 无操作数

Page 51: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用51

3.3 典型指令说明

语法• 调用和返回指令: CALL, CC, RET, RETC

Page 52: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用52

3.3 典型指令说明

CC,RET , RETC

其中条件均同 BCND

Page 53: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用53

3.3 典型指令说明

LAR语法 命令执行

例 1状态位 无

例 2

6. 辅助寄存器相关指令: LAR, SAR, ADRK, SBRK,MAR, CMPR

Page 54: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用54

3.3 典型指令说明

例 3

Page 55: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用55

3.3 典型指令说明SAR语法命令执行例 1

状态位 无

例 2

Page 56: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用56

3.3 典型指令说明MAR语法命令执行

例状态位

Page 57: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用57

3.3 典型指令说明CMPR语法

命令执行

操作数

例状态位 影响 TC

比较时辅助寄存器的值按无符号数对待

Page 58: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用58

3.3 典型指令说明ADRK, SBRK

语法 SBRK #k命令执行

状态位 无

Page 59: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用59

3.3 典型指令说明7. 数据移动相关指令: BLDD, BLPD, TBLR,TBLW

语法 命令执行均可实现连续数据块的移动

Page 60: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用60

3.3 典型指令说明

例 1状态位 无

例 2

Page 61: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用61

3.3 典型指令说明BLPD语法

Page 62: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用62

3.3 典型指令说明TBLR , TBLW语法命令执行

状态位 无

Page 63: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用63

3.3 典型指令说明例 1

例 2

Page 64: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用64

3.3 典型指令说明TBLW

语法命令执行

状态位 无

Page 65: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用65

3.3 典型指令说明8.输入 / 输出指令: IN, OUT语法

命令执行

操作数

例 1

状态位 无

例 2

Page 66: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用66

3.3 典型指令说明OUT

命令执行

语法

Page 67: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用67

3.3 典型指令说明9. 中断指令: INTR, TRAP, NMI

0~31

Page 68: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用68

3.3 典型指令说明10. 累加器相关指令: LACC, LACL, LACT, SACL, SACH语法

命令执行

例 1状态位

Page 69: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用69

3.3 典型指令说明例 2

例 3

Page 70: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用70

3.3 典型指令说明LACL语法命令执行

例状态位 无

Page 71: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用71

3.3 典型指令说明LACT语法命令执行

例 1

Page 72: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用72

3.3 典型指令说明

例 2

Page 73: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用73

3.3 典型指令说明SACL语法命令执行例 1

状态位 无

例 2

Page 74: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用74

3.3 典型指令说明SACH

例 1

例 2

Page 75: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用75

3.3 典型指令说明11. 状态寄存器相关指令: LST, SST语法 命令

执行

LST #0 和 LST #1 操作的区别如下

状态位

Page 76: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用76

3.3 典型指令说明注: 即使指定了 ARP, LST #0 并不影响 ST1 的 ARB LST #1 执行过程中, ARB的内容同时装入 ARP 如果在间接寻址方式中以操作数的形式指定了下一个 AR的值,该值无效。 ARP 的值由装入值的最高三位决定 状态寄存器中保留位的值总是读 1 ,这些位写无效

例 1

例 2

Page 77: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用77

3.3 典型指令说明SST语法

命令执行

状态位 无

例 1

例 2

操作数

Page 78: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用78

3.3 典型指令说明12. 堆栈相关指令: POPD, POP, PUSHD, PUSH语法 命令

执行例状态位 无

堆栈采用后进先出机制

Page 79: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用79

3.3 典型指令说明POP,PUSHD,PUSH

Page 80: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用80

3.3 典型指令说明13. 移位指令: ROL, ROR, SFL, SFR语法命令执行例

状态位 影响 C

状态位 影响 C

Page 81: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用81

3.3 典型指令说明SFL, SFR

Page 82: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用82

3.3 典型指令说明14. 其他指令: Ldp, SPLK, RPT, NOP, ZALR语法命令执行例 1

状态位 影响 DP

例 2

Page 83: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用83

3.3 典型指令说明SPLK语法命令执行

状态位 无

例 1

例 2

Page 84: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用84

3.3 典型指令说明RPT语法命令执行例 1

状态位 无

例 2

Page 85: 第 3 章 TMS320C24X  寻址方式和指令系统

DSP芯片技术及应用85

3.3 典型指令说明常用于实现延时