第4章 TMS320F28x系列DSP的寻址方式及指令系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节寻址方式
周鹏 安徽工程大学电气工程学院
4.1.7 32位操作数的定位
由于使用定位于偶数地址的32位数据的最低有效字,所有
针对存储器的 32 位读写操作都被定位于存储器接口的偶数地 址边界.地址生成器的输出不需要强制定位,因此指针值保持原 值。例如:MOVB AR0,#5
MOVL *AR0,ACC ; ;
用户在生成不定位于偶数边界的地址时必须考虑上述内 容。 32 位操作数以下列顺序存放:低位数, 0~15 ;后续的是 高位数,16~31;接着是最高的16位地址增量(低位在前的二 进制数据格式)。
周鹏 安徽工程大学电气工程学院
4.2 TMS320F28x系列DSP指令系统概述
28x 指令按功能可分为17 类,共 302 条指令: ▲寄存器XARn(AR0~AR7)的操作 14 条 ▲ DP寄存器操作 3 条 ▲ SP寄存器操作 34 条 ▲ AX寄存器操作(AH,AL) 38 条 ▲ 16位ACC寄存器操作 26 条 ▲ 32位ACC寄存器操作 41 条 ▲ 64位ACC: P寄存器操作 9 条 ▲ P或XT寄存器的操作(P,PH,PL,XT,T,TL) 21 条
在 F2812间接寻址方式中,使用哪个辅助寄存器指针在指令中并不 被明确指出。而在 C2xLP的间接寻址方式中,3位长度的辅助寄存器指 针被用来选择当前使用哪个辅助寄存器以及下次操作将使用哪个辅助寄 存器。
汇编器/编译器对AMODE位的追踪
编译器总是假定AMODE=0,所以它只使用对AMODE=0 有效的寻址模式。而汇编器可以通过设置命令行选项实现默认 AMODE=0或者AMODE=1。 √ – v28 ;假定AMODE=0(C28x寻址方式) – v28 – m20 ;假定AMODE=1(与C2xLP全兼容的寻址方式) √ 在文件中使用内嵌伪指令
周鹏 安徽工程大学电气工程学院
F2812 的大多数指令利用操作码中的8位字段来选择寻 址方式和对寻址方式进行修改.在 F2812 指令系统中,这个8 位字段用于以下寻址方式: (1)loc16。为16位数据访问选择直接/堆栈/间接/寄存器寻址方式。 (2)loc32。为32位数据访问选择直接/堆栈/间接/寄存器寻址方式。 以上7种寻址方式都与“loc16/loc32”组合起来使用。
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
周鹏 安徽工程大学电气工程学院
周鹏 安徽工程大学电气工程学院
4.1.6 其他寻址方式
数据/程序/IO空间立即寻址方式
在该寻址方式下,存储器操作的地址就存在于指令中。
程序空间间接寻址方式
某些指令可以通过使用间接指针对程序空间中的存储器 进行访问。因为F2812 CPU的存储器是标准一致的,这就使 在一个机器周期中进行两次读操作成为可能。
周鹏 安徽工程大学电气工程学院
4.1.1 寻址方式选择位AMODE
由 于 F2812 提 供 了 多 种 寻 址 方 式 , 因 此 用 寻 址 方 式 选 择 位 ( AMODE )来选择8位字段( loc16/loc32 )的解码。该 位属于状态寄存器ST1。寻址方式可以大致归类如下: ▲ AMODE=0——该方式是复位后的默认方式,也是F2812的C/C++编译
周鹏 安徽工程大学电气工程学院
4.1.4 间接寻址方式
XAR0到XAR7(辅助寄存器指针):在这种寻址方式 下,32位的XARn寄存器被当作一般性数据指针.可以通 过指令实现对辅助寄存器XARn加1,(操作前/后)减1 和变址操作。
周鹏 安徽工程大学电气工程学院
4.1.5 寄存器寻址方式
在该寻址方式下,寄存器可以是访问的源操作数,也 可以是目标操作数,这样在F2812中就能实现寄存器到寄存 器的操作.这一方式包括对32位和16位寄存器的寻址。
4.1 TMS320F28x系列DSP的寻址方式
C28x系列DSP的CPU支持4种基本的寻址方 式:直接寻址方式、堆栈寻址方式、间接寻址方式 和寄存器寻址方式。另外,该系列DSP芯片还支持 其他的寻址方式:数据/程序/IO空间立即寻址方式、 程序空间间接寻址方式和字节寻址方式。 TMS320F2812支持除IO空间立即寻址方式外 的其他寻址方式。
. c28_amode ;告诉汇编器后面的代码段都假定AMODE=0(C28x寻址方式) . lp_amode ;告诉汇编器后面的代码段都假定AMODE=1(与C2xLP全兼容的
寻址方式) 周鹏 安徽工程大学电气工程学院
4.1.2 直接寻址方式
该寻址方式,16位的DP寄存器被当作一个固定的页指针, 在指令中提供6位或者7位的偏移量,将这些偏移量与DP寄 存器中的值相连接构成完整的地址.当访问固定寻址的数据 结构(比如外围寄存器和C/C++中的全局或静态变量) 时是 一种很有效的方法。
周鹏 安徽工程大学电气工程学院
4.1.3 堆栈寻址方式
SP(堆栈指针):在该方式下,16位的SP指针被用于访 问软件堆栈的信息.F2812的堆栈从存储器的低地址变化到 高地址,SP指针总是指向下一个空单元.当需要访问堆栈中 的数据时,由程序提供6位偏移量,SP的值减去这6位的偏 移量就是被访问的数据的地址,然后修改堆栈指针SP。
周鹏 安徽工程大Leabharlann Baidu电气工程学院
TMS320C28x指令集采用7种存储器寻址方式: ▲ 直接寻址方式 ▲ 堆栈寻址方式 ▲ 间接寻址方式 ▲ 寄存器寻址方式 ▲ 数据/程序/IO空间立即寻址方式 ▲ 程序空间间接寻址 ▲ 字节寻址方式 TMS320F2812支持除IO空间立即寻址方式外的其 他寻址方式。
第4章 TMS320F28x系列DSP的寻址方式及 指令系统
4.1 TMS320F28x系列DSP的寻址方式 4.1.1 寻址方式选择位AMODE 4.1.2 直接寻址方式 4.1.3 堆栈寻址方式 4.1.4 间接寻址方式 4.1.5 寄存器寻址方式 4.1.6 其他寻址方式 4.1.7 32位操作数的定位 4.2 TMS320F28x系列DSP指令系统概述
周鹏 安徽工程大学电气工程学院
▲ 16×16乘法操作 20 条 ▲ 32×32乘法操作 13 条 ▲ 直接存储器操作 17 条 ▲ IO空间操作 3条 ▲ 程序空间操作 5条 ▲ 跳转/调用/返回操作
31 条 26 条
▲ 中断寄存器操作 9 条 ▲ 状态寄存器操作(ST0,ST1) ▲ 其他操作 10 条
周鹏 安徽工程大学电气工程学院
习题与思考题
1. C28x系列DSP有哪些寻址方式?这几种寻址方式 有什么不同? 2. 直接寻址方式中,数据存储单元的地址是如何形 成的? 3. 举例说明loc16和loc32在指令中的含义。 4. C28x系列DSP 的指令集包含了哪些基本类型的操 作?
周鹏 安徽工程大学电气工程学院
周鹏 安徽工程大学电气工程学院
寻址方式是指CPU根据指令中给出的地址信息
来寻找指令中操作数物理地址的方式,即获得操作
数的方式。指令系统即各种指令的集合,或称指令
集 。 本 章 简 要 介 绍 C28x 系 列 ( TMS320F2812 属 于 C28x系列)DSP的寻址方式和指令系统。
周鹏 安徽工程大学电气工程学院