




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简述 TMS320C2000、TMS320C5000、TMS320C6000DSP 芯片的寻址方式 姓名:刘帅民 学号:201120195005 专业:通信与信息系统 摘要:本文中主要针对 TI 公司生产的 TMS320C2000 系列、TMS320C5000 系列和 TMS320C6000 系列 DSP 的寻址方式进行简要概述。 Abstract: The article focused on the briefly discusses of TIs TMS320C2000 Series,TMS320C5000 Series and TMS320C6000 Series DSPs addressing. TI 公司三大系列 DSP 的寻址方式有许多种,由于它们各自的功能不同造成 三者的寻址方式也不同,下面对三者的寻址方式做一个简要的叙述。 1、TMS320C2000 的寻址方式 TMS320C2000 系列 DSP 有七种寻址方式,接下来进行简单介绍。 1、直接寻址 在直接寻址中,数据地址由基地址和偏移地址共同决定。基地址存放在数 据页指针寄存器DP (16位)中,偏移地址由直接寻址指令提供。当 ST1寄存器的 AMODE 位为0的时候, 偏移地址是6位,对应DP 指示的一个数据页内,包含64 个数据单元;当ST1寄存器的AMODE位为1的时候,偏移地址是7位,对应DP 指示的一个数据页内,包含128个数据单元。在两种情况下,数据地址高10位全 为0,也就是说,直接寻址只能寻址4M数据空间。 2、堆栈寻址 堆栈寻址一般是专用 SP(堆栈指针寄存器)来对堆栈寻址的方法。 TMS320C2000 系列 DSP 芯片用一个 16 位的 SP 来对堆栈寻址 ,且 SP 总是指向 堆栈中最后存入的数据单元(即顶部)。堆栈寻址主要负责对系统堆栈的压入和 弹出。用 SP 进行寻址时, 数据地址的低 16 位与 SP 相关,而高 16 位默认为 0X0000。 3、间接寻址 在间接寻址方式中,数据空间任意单元都可以通过一个辅助寄存器(XAR 0XAR 7)中的内容所代表的32位地址进行访问。当指令以间接方式寻址时, 辅助寄存器可以通过地址寄存器算术单元(ARAU )进行地址增量、减量或偏移, 还可以提供循环来进行寻址。例如: MOVL XAR2,# A rray1 ; 将数值 A rray1 的首地址装入 XAR2 中 4、寄存器寻址 寄存器寻址就是对寄存器的内容进行访问。这里主要负责对ACC、P 、XT 及XARn ( n为07)等寄存器间的操作,包括16位和32位。例如: MOV L ACC,XT; 将 XT 寄存器中的内容存入 ACC 中(32 位) 5、数据/ 程序/IO 空间立即寻址 立即寻址,就是在指令中包含有所要寻址的存储单元的地址。在立即寻址 指令中,存储单元的地址可以用其所在单元的地址标号或者二进制符号来表示。 C2000的立即寻址有以下几种类型: (1)数据存储空间立即寻址 此时,数据地址的高 16 位为 0,例如: MOV loc16,3 (0:16bit) ; 32 位数据地址高16位为0,低16位用(0 :16bit) 表示 (2)程序存储空间立即寻址 程序存储空间立即寻址是将地址包含在指令中,直接对程序存储空间寻址 的方法。有两种情况,一种情况是程序地址高6位全为0,低16位是需要寻址的 程序存储空间的地址,这里用pma表示,例如: MAC P,loc16 ,0: pma ; pma 表示程序存储器地址的低 16位 另一种情况是程序地址高6位全为1,低16位是需要寻址的程序存储空间的低16 位地址,这里用pma表示,例如: XMAC P,loc16,3(pma); pma 表示程序存储器地址的低 16 位 (3) I/O空间立即寻址 访问I/O 时,用数据线寻址,且数据地址高16位为0,低16位用端口地址 PA (Po rt A ddress)表示,例如: OU T 3(PA ) ,loc16; 将 16 位数送入端口(0 : PA )中 6、程序空间间接寻址 这种寻址模式是将AL或XAR 7的内容作为地址去访问程序存储器的寻址方 法,例如: XPREAD loc16,3 AL; loc16 = P rogSpace0x3F:AL PREAD loc16,3 XAR7; loc16 = P rogSpace3 XAR7 7、字节寻址 在字节寻址指令中,将XARn寄存器中的内容作为基地址,将AR0和AR1 中 的内容或一个3bit数作为偏移地址,来决定数据存储器地址。而且当偏移量是偶 数时,只对所访问16位数的低8位进行操作,保持高8位不动;当偏移量是奇数 时,只对16位数的高8位进行操作,保持低8位不动。例如: MOVB AX. L SB,3 + XARn AR0/A R1/3bit ;当AR0 /A R1/3bit为偶 数时,AX. L S= loc16 . L SB ;AX. M SB= 0x00; 当AR0/ A R1/3bit为奇数时 ;AX. L SB= loc16 . M SB,AX. M SB= 0x00 二、TMS320C5000DSP 的寻址方式 TMS320C5000DSP 的寻址方式主要有一下七种,下面进行一一介绍。 1、立即寻址 在立即寻址方式中,指令中包括了立即操作数。一条指令中可对两种立即 数编码,一种是短立即数(3、5、8 或 9 位) ,另一种是 16 位的长立即数。短 立即数指令编码为一个字长,16 位立即数的指令编码为两个字长。立即数寻址 指令中在数字或符号常数前面加一个“”号来表示立即数。 2、绝对寻址 绝对寻址方式主要包括以下四种:数据存储器(dmad)寻址、程序存储器 (pmad)寻址、端口地址(PA)寻址、长立即数*(lk )寻址,下面将对以上 四种寻址方式进行叙述。 1)数据存储器(dmad )寻址 数据存储器寻址使用符号(符号地址)或一个表示 16 位地址的立即数来指 明寻址的数据存储单元的 16 位绝对地址。例如: MVKD SMAPLE,*AR5 ; 使用数据存储器寻址的指令有: MVDK Smem,dmad MVDM dmad,MMR MVKD dmad,Smem MVMD MMR,dmad 2)程序存储器(pmad )寻址 程序存储器绝对寻址可以使用符号(符号地址)或一个表示 16 位地址的立 即数来给出程序空间的地址。例如,把程序存储器中标号为 TABLE 单元中的 值复制到 AR7 所指定的数据存储器中去,指令可写为: MVPD TABLE,*AR7; 使用程序存储器寻址的指令有: FIRS Xmem,Ymem,pmad MACD Smem,pmad,src MACP Smem,pmad,src MVDP Smem,pmad MVPD pmad,Smem 3)端口地址(PA)寻址 端口(PA)绝对寻址使用一个符号(符号地址)或一个表示 16 位地址的 立即数来给出外部 I/O 口地址。例如: PORTR FIFO ,*AR5; 使用端口地址的指令有: PORTR PA, Smem PORTW Smem ,PA 4)长立即数 *(lk)绝对寻址 长立即数*(lk)绝对寻址使用一个符号(符号地址)或一个表示 16 位地 址的立即数来指定数据存储空间的一个地址。例如,把数据空间中地址为 BUFFER 单元中的数据传送到累加器 A,指令可写为: LD *(BUFFER) ,A 3、累加器寻址 累加器寻址是操作数地址在累加器中。放在累加器中的地址是程序存储器 地址。共有两条指令可以采用累加器寻址: READA Smem WRITA Smem 4、直接寻址 在直接寻址方式中,指令中含有操作数地址的低 7 位 ,作为地址偏移量, 结合基地址共同形成 16 位的数据存储器地址。基址由数据页指针 DP 或堆栈指 针 SP 给出。使用这种寻址方式,可在不改变 DP 或 SP 的情况下,对一页内的 128 个存储单元随机寻址。采用这种寻址方式的好处是指令为单字指令,数据 存储器地址(dma)的低 7 位放在指令字中。 5、间接寻址 间接寻址是指操作数的地址在辅助寄存器中,支持倒位序寻址、循环寻址 等功能。下面进行简单的叙述。 1)单操作数寻址 (1) 增 1/减 1 寻址方式 操作数形式 *ARx ; addr=ARx *ARx- ; addr=ARx ARx=ARx-1 *ARx+ ; add=ARx ARx=ARx+1 *+ARx ; add=ARx+1 ARx=ARx+1 (2) 加偏移量寻址方式 操作数形式 *ARx(lk) ; add=ARx+lk ARx=ARx *+ARx(lk) ; addr=ARx+lk (注:写操作) ARx=ARx+lk (3) 变址寻址方式 操作数形式 *ARx+0 ; addr=ARx ARx=ARx+AR0 *ARx-0 ; addr=ARx ARx=ARx-AR0 (4) 位倒序寻址 操作数形式 *ARx-0B ; addr=ARx ARx=B(ARx-AR0) *ARx+0B ; addr=ARx ARx=B(ARx+AR0) (5) 循环寻址 操作数形式 *ARX+ ; addr=ARX ARX=circ(ARX+1) *ARX- ; addr=ARX ARX=circ(ARX-1) *ARX+0 ; addr=ARX ARX=circ(ARX+AR0) *ARX-0 ; addr=ARX ARX=circ(ARX-AR0) *+ARX(1K) ; addr=(ARX+1K) ARX=circ(ARX+1) 2)双操作数寻址 双数据存储器操作数间接寻址类型为*ARx、*ARx-、*ARx+、*ARx+0% 。 所用辅助寄存器只能是 AR2、AR3、AR4、AR5。其特点是:占用程序空间小, 运行速度快,在一个机器周期内通过两个 16 位数据总线(C 和 D)读两个操作 数。指令中 Xmem 表示从 DB 总线上读出的 16 位操作数, Ymem 表示从 CB 总 线上读出的 16 位操作数。 6、存储器映象寄存器寻址 存储器映象寄存器寻址用于修改存储器映象寄存器(MMR)中的内容,而 不影响当前数据页指针 DP 和当前堆栈指针 SP。由于这种方式不需要修改 DP 和 SP,对寄存器的写操作开销最小。存储器映象寄存器寻址可用于直接寻址和 间接寻址。 7、堆栈寻址 当发生中断或子程序调用时,系统堆栈自动保存 PC 值。堆栈也可以用于 保存和传递其他数据。堆栈由高地址向低地址增长,处理器使用 16 位的存储器 映象寄存器堆栈指针(SP )对堆栈进行寻址, SP 总是指向压入堆栈的最后 一个数据。 有 4 条使用堆栈寻址的指令: PSHD 把一个数据存储器数据压入堆栈; PSHM 把一个存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论