DSP第四章TMS320LF240x的数据寻址方式课件_第1页
DSP第四章TMS320LF240x的数据寻址方式课件_第2页
DSP第四章TMS320LF240x的数据寻址方式课件_第3页
DSP第四章TMS320LF240x的数据寻址方式课件_第4页
DSP第四章TMS320LF240x的数据寻址方式课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章

TMS320LF240x的数据寻址方式

立即寻址方式,即需要寻找的数就在指令里,不需要到存储器中去找,也称为立即数寻址。 直接寻址方式,指令给出的是需要寻找的数的地址,按此地址直接去访问。 间接寻址方式,指令给出的即不是立即数也不是直接地址,而是将此地址(或寄存器)的内容再作为地址。4.1立即寻址方式

立即寻址方式,就是指令中的操作数是常数。 两种立即寻址方式:短立即寻址和长立即寻址。短立即寻址,指令可指定8、9或13位的常数做操作数,指令只需单个指令字,操作数包含在这个指令字中。长立即寻址,指令可指定16位的常数做操作数,需要2个指令字,该常数为第2个指令字。

立即数寻址指令中在立即操作数前加一个“#”号,来表示立即数。例2:使用长立即寻址方式的RPT指令。

ADD#16384,2;将数值16384左移2位后与累加器内容相加1010111011010D0D3D4D15采用长立即寻址方式的ADD的操作码第一个指令字110移位次数0010000D0D1516位常数16384=4000h第二个指令字00000004.2直接寻址方式

采用直接寻址方式,可以访问数据存储器的512个数据页面和每页中的128个字单元。

在直接寻址方式中,偏移量是指令中的操作数,指出某个页面中的某个地址单元,是一个7位的立即数,是64K数据存储器地址的低7位,DP值是数据存储器地址的高9位,用来确定数据页,两者共同形成16位的数据存储器地址。指令寄存器IR的低7位提供偏移量,指令寄存器的内容是要执行的下条指令的操作码。指令寄存器中,“8MSBs”是指令类型,同时包括指令所访问的数据值移位有关的信息。“0”指出是直接/间接寻址。“7LSBs”指出本指令引用的数据存储器的偏移量。直接寻址方式下的数据格式D15~D13D12D11D10D9D8~D0ARPOVOVM1INTM数据页面指针DP7MSBs8MSBs0D15~D8D6~D0D7D6~D0D15~D7页面(9MSBs)偏移量(7MSBs)状态寄存器ST0指令寄存器IR数据存储器地址注意(1)在所有程序中必须初始化DP。(2)如果一个程序中所有指令均访问同一个数据页,只需在程序的前面装入DP,而不必在采用直接寻址方式的每个指令之前设置数据页。若访问新的数据页,需重新装入新的DP值。(3)用直接寻址方式的指令其操作数不加前缀“#”。例3:使用直接寻址的ADD指令。

LDP#4

;设置数据页面为4(地址:0200h~027Fh)

ADD9h,5

;将数据存储器地址0209h中的内容左移5位 后和累加器内容相加例4:使用直接寻址的ADD指令。

LDP#5

;设置数据页面为5(地址:0280h~02FFh)

ADD9h,16

;将数据存储器地址0289h中的内容左移16位 后和累加器内容相加4.3间接寻址方式利用8个16位的辅助寄存器AR0~AR7可提供灵活且功能强大的间接寻址方式。辅助寄存器的内容作为一个16位地址可以访问64K数据存储器中的任意单元。除了具有立即数或没有操作数的指令外,所有的指令都能使用间接寻址方式。4.3.1辅助寄存器的选择若选择某个辅助寄存器,可将数值0~7装入ST0的高3位D15、D14、D13,该3位为辅助寄存器指针ARP。

由ARP指向的AR称当前AR。在使用间接寻址方式时,当前AR的内容是数据存储器的访问地址。如果指令需要从数据存储器读数据,则ARAU就将地址送入数据读地址总线(DRAB),如果指令需要向数据存储器写数据,ARAU将该地址送到数据写地址总线(DWAB)。指令使用该数据值后,ARAU可使当前辅助寄存器的内容增加或减少。4.3.2间接寻址的选择(1)无增量或减量 指令使用当前辅助寄存器的内容作为数据存储器的地址,但当前辅助寄存器的内容不变。(2)加1或减1

指令使用当前辅助寄存器的内容作为数据存储器的地址,但当前辅助寄存器的内容增加1或减少1。(3)加或减1个变址量

AR0的值是这个变址量。指令使用当前辅助寄存器的内容作为数据存储器的地址,,然后使当前辅助寄存器的内容增加或减少一个变址量。(4)按逆向进位增加或减少一个变址量

AR0的值是这个变址量指令使用当前辅助寄存器的内容作为数据存储器的地址,,然后使当前辅助寄存器的内容增加或减少一个变址量。此时,加或减是按逆向进位方式进行的,主要用于傅立叶变换。4.3.3下一次的辅助寄存器

修改AR的指令完成时,它所指定的寄存器成为当前AR。指定下一次AR的指令可以向ARP载入一个新值。当ARP装入此值时,ARP中先前的值被加载到ARB中。例6:MAR*,AR1

;将1装入ARP,使AR1成为下一次辅助寄存器 LT*+,AR2

;将当前辅助寄存器AR1的内容作为地址,把该 地址单元的内容装入临时寄存器TREG; 然后将AR1 的内容加1;再使AR2成为下次使用的辅助寄存器 MPY*

;将AR2的内容作为地址,把该地址单元的内容 和TREG的内容相乘,乘积送入乘积寄存器PREG 中,下次使用的辅助寄存器仍为AR24.3.4修改辅助寄存器(1)使用专用指令修改辅助寄存器

LAR:直接将操作数指定的内容装入AR。

ADRK:将当前AR值加一立即数。

SBRK:将当前AR值减一立即数。

MARK:将当前AR值加、减1或加、减一个变址量。(2)利用任何一条支持间接寻址操作数的指令都能修改AR。4.3.5间接寻址操作码的格式8MSBs1ARUNNAR1514131211109876543210采用间接寻址时加载到指令寄存器的指令字的格式8MSBs用于指出指令类型和指令所访问的数据移位信息1直接或间接指示符。0----直接寻址;1----间接寻址ARU辅助寄存器ARU更新代码,决定当前辅助寄存器是否进行和如 何进行增加或减少N下一个辅助寄存器指示符N。说明该指令是否改变辅助寄存器指 针ARP的值。N=0----辅助寄存器指针ARP的内容保持不变; N=1----下一个辅助寄存器AR被装入辅助寄存器指针ARPNAR 下一个辅助寄存器的值间接寻址操作码字段的各位及其说明指令操作码的各位操作数操作15~8765432108MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs8MSBs1000010001100101001110100101011100011001110101101111100111011111011111NARNARNARNARNARNARNARNARNARNARNARNARNARNAR**,ARn*-*-,ARn*+*+,ARn*BR0-*0-*BR0-,ARn*0-,ARn*0+*0+,ARn*BR0+*BR0+,ARn对当前AR无操作NAR→ARP当前AR-1→当前AR当前AR-1→当前AR;NAR→ARP当前AR+1→当前AR当前AR+1→当前AR;NAR→ARP当前AR-RCAR0→当前AR+当前AR-RCAR0→当前AR+;NAR→ARP当前AR-AR0→当前AR当前AR-AR0→当前AR;NAR→ARP当前AR+AR0→当前AR当前AR+AR0→当前AR;NAR→ARP当前AR+AR0→当前AR+当前AR+AR0→当前AR+;NAR→ARP例7:当前辅助寄存器的值不增加也不减少。

ADD*,8例8:当前辅助寄存器的值增加1。 ADD*+,8,AR4例9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论