- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章_寻址方式和指令系统
6.1、寻址方式 6.2、源程序语句格式 6.3、汇编指令集 ▲ 汇编指令是可执行指令,每条指令对应一条机器码,用以控制处理器中的执行部件进行各种操作。 ▲ TMS320F281X系列的汇编指令有150多条。 ▲ 它们支持各种信号处理运算,同时也提供了应用中所需要的多级处理和过程控制功能。 ▲ 寻址方式是指寻找指令中操作数地址的方式。 汇编语言包括:汇编指令、伪指令和宏指令 * * ● 信息工程学院 ● 6 . 1 寻址方式 TMS320C28x指令集采用7种存储器寻址方式: ▲ 直接寻址方式 ▲ 堆栈寻址方式 ▲ 间接寻址方式 ▲ 寄存器寻址方式 ▲ 数据/程序/IO空间立即寻址方式 ▲ 程序空间间接寻址 ▲ 字节寻址方式 6 . 1 寻址方式 6. 1 寻址方式 F2812的大多数指令利用操作码中的8位字段来选择寻址方式和对寻址方式进行修改.在F2812指令系统中,这个8位字段用于以下寻址方式: (1)loc16。为16位数据访问选择直接/堆栈/间接/寄存器寻址方式。 (2)loc32。为32位数据访问选择直接/堆栈/间接/寄存器寻址方式。 以上7种寻址方式都与“loc16/loc32”组合起来使用。 由于F2812提供了多种寻址方式,因此用寻址方式选择位(AMODE)来选择8位字段(loc16/loc32)的解码。该位属于状态寄存器ST1。寻址方式可以大致归类如下: ▲ AMODE=0——该方式是复位后的默认方式,也是F2812的C/C++编译 器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。 ▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式 兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。 对与loc16或者loc32字段,其可用的寻址方式总结如P202所示 寻址方式选择位 6 . 1 寻址方式 6 . 1 寻址方式 在F2812间接寻址方式中,使用哪个辅助寄存器指针在指令中并不被明确指出。而在C2xLP的间接寻址方式中,3位长度的辅助寄存器指针被用来选择当前使用哪个辅助寄存器以及下次操作将使用哪个辅助寄存器。 汇编器/编译器对AMODE位的追踪 编译器总是假定AMODE=0,所以它只使用对AMODE=0有效的寻址模式。而汇编器可以通过设置命令行选项实现默认AMODE=0或者AMODE=1。 √ – v28 ;假定AMODE=0(C28x寻址方式) – v28 – m20 ;假定AMODE=1(与C2xLP全兼容的寻址方式) √ 在文件中使用内嵌伪指令 . c28_amode ;告诉汇编器后面的代码段都假定AMODE=0(C28x寻址方式) . lp_amode ;告诉汇编器后面的代码段都假定AMODE=1(与C2xLP全兼容的 寻址方式) ▲ 该寻址方式,16位的DP寄存器被当作一个固定的页指针,在指令中提供 6位或者7位的偏移量,将这些偏移量与DP寄存器中的值相连接构成完 整的地址.当访问固定寻址的数据结构(比如外围寄存器和C/C++中的 全局或静态变量) 时是一种很有效的方法.(P203 表6-1-2) 直接寻址方式 6 . 1 寻址方式 堆栈寻址方式 ▲ SP(堆栈指针):在该方式下,16位的SP指针被用于访问软件堆栈的信息.F2812的堆栈从存储器的低地址变化到高地址,SP指针总是指向下一个空单元.当需要访问堆栈中的数据时,由程序提供6位偏移量,SP的值减去这6位的偏移量就是被访问的数据的地址,然后修改堆栈指针SP. (P205 表6-1-3) XAR0到XAR7(辅助寄存器指针):在这种寻址方式下,32位的XARn寄存器被当作一般性数据指针.可以通过指令实现对辅助寄存器XARn加1,(操作前/后)减1和变址操作. 6 . 1 寻址方式 间接寻址方式 在该寻址方式下,寄存器可以是访问的源操作数,也可以是目标操作数,这样在F2812中就能实现寄存器到寄存器的操作.这一方式包括对32位和16位寄存器的寻址。 寄存器寻址方式 在该寻址方式下,存储器操作的地址就存在于指令中。 6 . 1 寻址方式 数据/程序/IO空间立即寻址方式 程序空间间接寻址方式 某些指令可以通过使用间接指针对程序空间中的存储器进行访问。因为F2812 CP
文档评论(0)