TMS320C24X寻址方式和指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《TMS320C24X寻址方式和指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TMS320C24X 寻址 方式 指令系统 课件
- 资源描述:
-
1、第第3章章 TMS320C24X 寻址方式和指令系统寻址方式和指令系统 F 2 4 0 X 系 列系 列 D S P 芯 片 采 用 与芯 片 采 用 与TMS320C240相同的核,所以两者的指相同的核,所以两者的指令系统是相同的。令系统是相同的。3.1 寻址方式寻址方式F240X指令集采用指令集采用3种基本的存储器种基本的存储器寻址方式:寻址方式:立即寻址方式;立即寻址方式;直接寻址方式;直接寻址方式;间接寻址方式。间接寻址方式。3.1.1 立即寻址方式立即寻址方式指令中所需的常数作为指令的操作数直接给出。指令中所需的常数作为指令的操作数直接给出。立即寻址包括:短立即寻址和长立即寻址。立即
2、寻址包括:短立即寻址和长立即寻址。短立即寻址指令:短立即寻址指令:有一个有一个8、9、13位的常数作操作数。位的常数作操作数。短立即寻址指令为一个单指令字,并将常数嵌在该指短立即寻址指令为一个单指令字,并将常数嵌在该指令中。令中。长立即寻址指令:长立即寻址指令:有一个有一个16位的常数作操作数,所以位的常数作操作数,所以要求两个指令字。要求两个指令字。16位常数作为第二条指令发送,常位常数作为第二条指令发送,常数可以是一个绝对常数也可以是一个二进制补码。数可以是一个绝对常数也可以是一个二进制补码。采用短立即寻址的采用短立即寻址的RPT指令指令 RPT#49;将紧跟;将紧跟RPT指令后的那条指令
3、执行指令后的那条指令执行50次。次。指令寄存器中的内容指令寄存器中的内容:1 0 1 1 1 0 1 11 0 1 1 1 0 1 10 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 87 6 5 4 3 2 1 07 6 5 4 3 2 1 0采用立即寻址的采用立即寻址的RPT代码代码 8位常数位常数49 立即操作数作为立即操作数作为RPT指令字的一部分指令字的一部分。立即操作数以符号立即操作数以符号#为前缀为前缀。长立即寻址的长立即寻址的 ADD指令指令 ADD#65534,2;将数据;将数据655
4、34左移两位后,再将结左移两位后,再将结果加至累加器。果加至累加器。第一条指令字:第一条指令字: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 0 0 0 1 015 14 13 12 11 10 9 815 14 13 12 11 10 9 87 6 5 4 3 2 1 07 6 5 4 3 2 1 0采用长立即寻址的采用长立即寻址的ADD代码代码 Shift2 第二条指令字:第二条指令字: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
5、 11 10 9 815 14 13 12 11 10 9 87 6 5 4 3 2 1 07 6 5 4 3 2 1 016位常数位常数65534FFFEh 立即操作数包含在第二条指令字中立即操作数包含在第二条指令字中,指令寄存器顺次,指令寄存器顺次接收两个指令字的接收两个指令字的16位值。位值。3.1.2 直接寻址方式直接寻址方式 在直接寻址方式中,指令寄存器的内容为:在直接寻址方式中,指令寄存器的内容为:位位15-8:用于指示指令类型(例如,用于指示指令类型(例如,ADD)和指)和指令所访问的数据值的移位信息。令所访问的数据值的移位信息。位位7:直接直接/间接指示符。间接指示符。0表示为
6、直接寻址;表示为直接寻址;1表示为间接寻址。表示为间接寻址。位位6-0:指示该指令所访问的数据存储器地址的指示该指令所访问的数据存储器地址的偏移量。偏移量。1.用直接寻址方式产生数据地址用直接寻址方式产生数据地址处理器将页指针处理器将页指针DP值:提供地址的值:提供地址的9位高位高有效位,即页码数。有效位,即页码数。指令寄存器中的指令寄存器中的7位最低有效位:提供地址位最低有效位:提供地址的的7位最低有效值,即偏移量。位最低有效值,即偏移量。16位地址位地址 TI公司的公司的TMS320系列芯片将系列芯片将64K的数据存储器分为的数据存储器分为512页,每页页,每页128字称为数据页。字称为数
7、据页。当前数据页由状态寄存器当前数据页由状态寄存器ST0中的中的9位数据页指针位数据页指针(DP)值决定。)值决定。DP值值偏移量偏移量数据存储器数据存储器0000 00000000 0000 .111 1111 第第0页:页:0000h007Fh0000 00001000 0000 .111 1111第第1页:页:0080h-00FFh0000 00010000 0000 .111 1111第第2页:页:0100h017Fh.1111 11111000 0000 .111 1111第第511页:页:FF80hFFFFh2.使用直接寻址方式使用直接寻址方式 处理器用页指针处理器用页指针DP来寻
8、找数据页,用指令寄存器的来寻找数据页,用指令寄存器的低低7位有效位来寻址该页上的特定地址。位有效位来寻址该页上的特定地址。(1)设置数据页:将数据页(设置数据页:将数据页(0-511)装入)装入DP。DP可由可由LDP指令装载,也可由向指令装载,也可由向ST0装载的任何指装载的任何指令来装载令来装载DP。LDP指令直接装载指令直接装载DP,并且不影响,并且不影响ST0的其它位。的其它位。例:例:LDP#32;设置当前数据页为;设置当前数据页为32(1000h-107Fh)注意:在任何程序中都要初始化注意:在任何程序中都要初始化DP。因为上电后不定。因为上电后不定义义DP;复位不初始化;复位不初
9、始化DP。(2)指明偏移量:指明偏移量:7位偏移量由指令的操作数提供。位偏移量由指令的操作数提供。例:例:如果希望如果希望ADD指令取当前数据页的第指令取当前数据页的第5个地址处的数个地址处的数据:据:ADD 5H;将当前数据页中偏移量为;将当前数据页中偏移量为5h处的数据加至处的数据加至累加器累加器说明说明采用直接寻址时,不必每条指令前都要设置数据页。采用直接寻址时,不必每条指令前都要设置数据页。总之,必须保证要访问新的数据页之前改变总之,必须保证要访问新的数据页之前改变DP。3.直接寻址示例直接寻址示例 采用直接寻址的采用直接寻址的ADD指令(移位指令(移位0至至15位)位)LDP#4;数
10、据页设为;数据页设为4(0200h-027Fh)ADD 9H,5;将数据地址;将数据地址0209h处的内容左移处的内容左移5位后加至累加器位后加至累加器 采用直接寻址的采用直接寻址的ADDC指令指令 LDP#500;数据页设为;数据页设为500(FA00h-FA7Fh)ADDC 8H;数据地址;数据地址FA08h处内容和进位值(处内容和进位值(C)被加至累加器被加至累加器 3.1.3 间接寻址方式间接寻址方式 8个辅助寄存器(个辅助寄存器(AR0-AR7)为处理器提供间)为处理器提供间接寻址的接寻址的16位地址,可以访问位地址,可以访问64K数据存储器数据存储器空间的任意单元。空间的任意单元。
11、1.间接寻址操作码格式间接寻址操作码格式:指令寄存器的内:指令寄存器的内容容位位15-8:指示指令类型(例如,指示指令类型(例如,ADD)和指令所访问的数)和指令所访问的数据值的移位信息据值的移位信息位位7:直接直接/间接指示符。间接指示符。0表示为直接寻址;表示为直接寻址;1表示为间接寻址。表示为间接寻址。位位6-4:辅助寄存器更新代码辅助寄存器更新代码ARU,决定当前辅助寄存器,决定当前辅助寄存器是否以及如何进行增或减。是否以及如何进行增或减。位位3:下一个辅助寄存器指示符下一个辅助寄存器指示符N,说明指令是否改变,说明指令是否改变ARP值。值。N=0,ARP内容保持不变;内容保持不变;N
12、=1,下一个辅助寄存器,下一个辅助寄存器NAR的内容装入的内容装入ARP。位位2-0:下一个辅助寄存器的值,包括下一个辅助寄存器下一个辅助寄存器的值,包括下一个辅助寄存器的值。若的值。若N=1,则,则NAR被装入被装入ARP。2.当前辅助寄存器当前辅助寄存器 通过状态寄存器通过状态寄存器ST0中的中的3位辅助寄存器指针位辅助寄存器指针(ARP)来指定)来指定8个辅助寄存器(个辅助寄存器(AR0AR7)的)的某一个作为当前辅助寄存器(某一个作为当前辅助寄存器(AR)。在执行指令的过程中,当前在执行指令的过程中,当前AR的内容作为被访问的内容作为被访问数据存储器的地址。数据存储器的地址。ARP可由
13、可由MAR指令、指令、LST指令或任何支持间接寻指令或任何支持间接寻址的指令来装载。址的指令来装载。3.间接寻址选项间接寻址选项 TMS320C24X提供提供4种间接寻址选项:种间接寻址选项:不增不减;不增不减;增增1或减或减1;增加或减去索引量;增加或减去索引量;增加或减去索引量且反向进位。增加或减去索引量且反向进位。选项选项操作数操作数例子例子不增不减不增不减*LACC *用当前用当前AR所指的数据存储器地址中所指的数据存储器地址中内容装载累加器内容装载累加器增增1*+LACC *+用当前用当前AR所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后向当前内容装载累加器,然后向
14、当前AR内容加内容加1减减1*-LACC *-用当前用当前AR所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后从当前内容装载累加器,然后从当前AR内容减内容减1加上索引量加上索引量*0+LACC *0+用当前用当前AR所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后向当前内容装载累加器,然后向当前AR内容加上内容加上AR0的的内容内容减去索引量减去索引量*0-LACC *0-用当前用当前AR所指的数据存储器地址中所指的数据存储器地址中内容装载累加器,然后从当前内容装载累加器,然后从当前AR的内容减去的内容减去AR0的内容的内容加上索引量,加上索引量,反向进位反向
15、进位*BRO+LACC *BRO+用当前用当前AR所指的数据存储器地所指的数据存储器地址中内容装载累加器,然后向当前址中内容装载累加器,然后向当前AR内容加上内容加上AR0的内,该加法采用反向进位传送的内,该加法采用反向进位传送减去索引量,减去索引量,反向进位反向进位*BRO-LACC *BRO+用当前用当前AR所指的数据存储器地所指的数据存储器地址中内容装载累加器,然后从当前址中内容装载累加器,然后从当前AR内容减去内容减去AR0的内容,该减法采用反向进位传送的内容,该减法采用反向进位传送4.修改辅助寄存器内容修改辅助寄存器内容 用于修改辅助寄存器(用于修改辅助寄存器(AR)内容的特定指令有
16、:)内容的特定指令有:LAR、ADRK、SBRK和和MAR。LAR指令装载指令装载AR;ADRK和和SUBRK分别用来从分别用来从AR中加上或减去一个立中加上或减去一个立即数;即数;MAR指令可使指令可使AR值增加值增加/减少减少1或增加或增加/减少一个索引减少一个索引量。量。另外任何支持间接寻址操作数的指令都可修改辅助寄另外任何支持间接寻址操作数的指令都可修改辅助寄存器。存器。5.辅助寄存器辅助寄存器 除了更新当前辅助寄存器的内容以外,某些指令还除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器可以指明下一个辅助寄存器AR。当本条指令执行完之后,下一个辅助寄存器当本条指令执
17、行完之后,下一个辅助寄存器AR便成便成为当前辅助寄存器为当前辅助寄存器AR。例:例:选择新的当前辅助寄存器选择新的当前辅助寄存器ARMAR*,AR1;将当前辅助寄存器;将当前辅助寄存器AR设为设为AR1LACL*+,AR2;用辅助寄存器;用辅助寄存器AR1所指向的地址中内容所指向的地址中内容装载累加器的低装载累加器的低16位,位,AR1内容加内容加1,使,使AR2为当前辅助寄存器为当前辅助寄存器ARSACL*+;将累加器的低;将累加器的低16位存于位存于AR2所指向的地所指向的地址单元,址单元,AR2内容加内容加1。3.2 指令集指令集 根据指令的功能划分为:根据指令的功能划分为:1.累加器、
18、算数和逻辑指令表;累加器、算数和逻辑指令表;2.辅助寄存器和数据页指针指令表;辅助寄存器和数据页指针指令表;3.TREG、PREG和乘法指令表;和乘法指令表;4.转移指令表;转移指令表;5.控制指令表;控制指令表;6.I/O和存储器指令表。和存储器指令表。指令表符号的意义指令表符号的意义 ACC 累加器。累加器。AR当前辅助寄存器。当前辅助寄存器。ARX 用于用于LAR和和SAR指令的指令的3位数据值,指定操作位数据值,指定操作的辅助寄存器。的辅助寄存器。BITX4位数值,用于指定数据存储器中的哪一位将位数值,用于指定数据存储器中的哪一位将被被BIT指令所测试。指令所测试。CM2位数值,位数值
19、,CMPR指令执行指令执行CM值所声明的比值所声明的比较:较:若若CM=00,测试:,测试:(当前当前AR)=(AR0)?;?;若若CM=01,测试:,测试:(当前当前AR)(AR0)?;?;若若CM=11,测试:,测试:(当前当前AR)(AR0)?。?。Shift 4位移位值。位移位值。TP用于条件执行指令的用于条件执行指令的2位数值,代表如下位数值,代表如下4种种条件:条件:若若BIO引脚为低,则引脚为低,则TP=00;若若TC位位=1,则则TP=01;若若TC位位=0,则则TP=10;若无条件,若无条件,则则TP=11。说明说明 表中指令按字母顺序排列;表中指令按字母顺序排列;表中给出了
20、执行每条指令所需要的周期数;表中给出了执行每条指令所需要的周期数;所有指令都假设从内部程序存储器和内部数所有指令都假设从内部程序存储器和内部数 据据存储器中执行;存储器中执行;指令的周期数适用于单指令执行,不适用于重指令的周期数适用于单指令执行,不适用于重复方式。复方式。3.3 典型指令说明典型指令说明申明申明直接寻址时一律认为直接寻址时一律认为DP指针已经指向要寻址的数指针已经指向要寻址的数据区,就不用再重新装载据区,就不用再重新装载DP;而间接寻址时则认为而间接寻址时则认为ARP已经指到当前辅助寄存器已经指到当前辅助寄存器AR,而也不用再单独声明当前,而也不用再单独声明当前AR的值。的值。
21、1.ADD指令指令 对累加器的加操作指令对累加器的加操作指令ADD:将数据存储器单元的数:将数据存储器单元的数或立即数左移后加至累加器。或立即数左移后加至累加器。结果存在累加器中结果存在累加器中。移位时,低位填移位时,低位填0,高位在,高位在SXM1时为符号扩展,时为符号扩展,在在SXM0时填时填0。寻址短立即数时,加操作不受寻址短立即数时,加操作不受SXM的影响,且不能的影响,且不能重复执行。重复执行。ADD 5,2;(;(DP=4:20027Fh)将)将数据存储器单元数据存储器单元0205h的内容左移的内容左移2位之后与位之后与ACC相加,相加,结果存在结果存在ACCADD *+,2,AR
22、0;(;(ARP=4,AR4=282)将)将数据存储器单元数据存储器单元282的内容左移的内容左移2位之后加至位之后加至ACC,结,结果存在果存在ACC,指令执行后,指令执行后AR4=283,ARP0ADD#2;短立即数;短立即数2与与ACC相加,结相加,结果存在果存在ACCADD#1111h,2;长立即数;长立即数1111h左移左移2位后与位后与ACC相加,结果存在相加,结果存在ACC2.AND指令指令和累加器逻辑和累加器逻辑“与与”操作指令操作指令AND:实现被寻址单元:实现被寻址单元的内容和累加器的逻辑的内容和累加器的逻辑“与与”操作,以及长立即数经操作,以及长立即数经过移位之后和连接器
23、进行逻辑过移位之后和连接器进行逻辑“与与”操作。操作。逻辑逻辑“与与”操作之后的结果保存在累加器中。操作之后的结果保存在累加器中。AND 16;(;(DP4:20027Fh)将)将数据存储器单元数据存储器单元0210h的内容与的内容与ACC的内容进行逻辑的内容进行逻辑“与与”操作,结果保留在操作,结果保留在ACC中。中。AND *;(;(ARP=0,AR0=301h)将数据存储器单元将数据存储器单元0301h的内容与的内容与ACC的内容进行逻的内容进行逻辑辑“与与”操作,结果保留在操作,结果保留在ACC中。中。AND#00FFh,4;将立即数;将立即数0FFh左移左移4位位之后和之后和ACC逻
24、辑逻辑“与与”,结果保留在,结果保留在ACC中。中。3.BANZ指令指令辅助寄存器不等于零转移指令辅助寄存器不等于零转移指令BANZ:若当前辅助:若当前辅助寄存器内容不为零,则控制转移至指定的程序存储寄存器内容不为零,则控制转移至指定的程序存储器地址,否则控制转移到下一条指令。器地址,否则控制转移到下一条指令。当前当前AR的缺省修改为减的缺省修改为减1。该指令可用来实现程序的循环执行。该指令可用来实现程序的循环执行。MAR*,AR0;ARP指向指向AR0。LAR AR1,#3;AR1中装入中装入3。LAR AR0,#60h;AR0中装入中装入60h。P1 ADD*+,AR1;将;将AR0所指的
25、数加所指的数加到到ACC,并将,并将AR0的值增的值增1,ARP指向指向AR1。BANZP1,AR0;若;若AR10则循环。则循环。4BCND指令指令条件转移指令条件转移指令BCND:当所规定的条件符合时,控制:当所规定的条件符合时,控制转移到指定的程序存储器地址。转移到指定的程序存储器地址。BCNDP1,LEQ;若;若ACC的内容小于的内容小于等于零时,程序转到等于零时,程序转到P1处开始执行。处开始执行。5.BIT指令指令位测试指令位测试指令BIT:将数据存储器中的指定位的值复制:将数据存储器中的指定位的值复制到状态寄存器到状态寄存器ST1的的TC位。位。将该指令和将该指令和BCND指令结
展开阅读全文