第3章指令系统和程序编写优秀PPT.ppt
《第3章指令系统和程序编写优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3章指令系统和程序编写优秀PPT.ppt(183页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 指令系统和程序编写现在学习的是第1页,共183页3.1 寻址方式寻址方式 寻址方式是指寻址方式是指CPU按照什么方式方法找按照什么方式方法找到操作数所在地址,即操作数的地址在指到操作数所在地址,即操作数的地址在指令中是如何规定的。令中是如何规定的。三种寻址方式:三种寻址方式:(1)(1)立即寻址立即寻址;(2)(2)直接寻址直接寻址;(3)(3)间接寻址。间接寻址。现在学习的是第2页,共183页3.1.1 立即寻址立即寻址立立即即寻寻址址:指指需需要要寻寻找找的的操操作作数数就就在在指指令令中中。即即在在指指令令中中直直接接给给出出了了操操作作数数。该该操操作作数数称称为为立立即即数数
2、,指指令令中中加加前前缀缀“#”“#”表表示示。立立即即寻寻址址包包括短立即寻址和长立即寻址。括短立即寻址和长立即寻址。1.1.短立即寻址短立即寻址 短立即寻址方式下,指令中包含一个短立即寻址方式下,指令中包含一个8 8、9 9或或1313位位的操作数。短立即寻址方式的指令是单字指令,的操作数。短立即寻址方式的指令是单字指令,立即数就包含在指令中。立即数就包含在指令中。现在学习的是第3页,共183页2.2.长立即寻址长立即寻址长立即寻址方式下,指令中包含一个长立即寻址方式下,指令中包含一个1616位的操作位的操作数。长立即寻址方式的指令是双字指令,立即数。长立即寻址方式的指令是双字指令,立即数
3、就是第二个字。数就是第二个字。3.1.2 直接寻址直接寻址 直接寻址直接寻址:即指令给出的是需要寻找的数的地址,即指令给出的是需要寻找的数的地址,按此地址直接去访问便可。按此地址直接去访问便可。LF240 x系列系列DSP的的直接寻址方式是将指令字中的直接寻址方式是将指令字中的7位操作数与数据存位操作数与数据存储器页面指针(储器页面指针(DP)的)的9位连在一起,形成位连在一起,形成16位位数据存储器地址。数据存储器地址。现在学习的是第4页,共183页 直接寻址是一种常用的寻址方式,可以访问64K字数据存储器。在DSP控制器中,数据存储器按页进行管理,整个64K字数据存储器分为512个数据页,
4、由状态寄存器ST0中的9位数据页面指针(DP)值确定,例如DP值为000000011b,即当前数据每个数据页含有128个字单元。在访问数据存储器时,首先确定当前数据页(通过LDP等指令),它页为3。确定当前数据页后,该数据页128个字中的哪一个字则由指令寄存器的低7位偏移量指定DSP控制器的直接寻址指令中的直接地址就是该低7位偏移量。中央处理单元将当前DP值与偏移量拼接,就变成16位的存储器地址。现在学习的是第5页,共183页使用直接寻址方式访问数据存储器时,必须首先对DP进行设置,然后再书写进行某种操作的指令。步骤如下:1)设置数据页。将当前数据页面(0511)装入DP。可通过LDP指令或其
5、他能向ST0装入值的任意指令来装载DP。LDP指令仅加载DP而不影响ST0的其它位,并明确指出装入的DP值。例:指定数据页面为31,则使用 LDP#31。2)设置偏移量。给出7位偏移量作为指令的一个操作数。例:要求ADDC指令则使用当前数据页面中的3Ah单元的值 则使用指令:ADDC 3Ah现在学习的是第6页,共183页注意:在所有程序中必须初始化DP。没有初始化DP的程序是不能正确执行的,因为加电和复位时,DP是不确定的。如果一个程序中所有指令均访问同一个数据页,只需在采用直接寻址方式的第一条指令寻址方式的第一条指令前装载DP,而不必在采用直接寻址方式的每个指令之前设置数据页。若访问新的数据
6、页,需重新装载DP。用直接寻址方式的指令其操作数不加前缀“#”。现在学习的是第7页,共183页 图中:指令寄存器(IR)的高8位(8MSBs)指出指令类型(如ADDC)和本指令所访问的数据的有关移位信息;第7位为0指出直接寻址;低7位指出本指令所访问的数据存储器的偏移量。现在学习的是第8页,共183页例:LDP#500 ;将数据页面设置为500(地址FA00hFA7Fh)ADDC 6h ;数据存储器地址FA06h中的内容加进位位C的值再加累加器的内容,结果存入累加器 上例中,立即数500=1F4h=111110100B装入DP,与第二条指令的操作数6h=0000110B连接成16位地址1111
7、101000000110B=FA06h。现在学习的是第9页,共183页3.1.3 间接寻址 间间接寻址是通过接寻址是通过1616位辅助寄存器间接访问数据位辅助寄存器间接访问数据存储器。存储器。DSPDSP控制器内含控制器内含8 8个辅助寄存器(个辅助寄存器(AR0AR7AR0AR7)和辅助寄存器算术单元和辅助寄存器算术单元(ARAU)(ARAU),专用于间接寻址,专用于间接寻址的操作。的操作。8 8个个辅辅助助寄寄存存器器(AR0AR7)(AR0AR7)都都可可以以参参与与间间接接寻寻址址,但是每次寻址只能使用其中的一个,它由状但是每次寻址只能使用其中的一个,它由状态寄存器态寄存器ST0ST0
8、中的中的3 3位辅助寄存器指针位辅助寄存器指针(ARP)(ARP)来指来指定。定。ARPARP指定的辅助寄存器称为当前辅助寄存器指定的辅助寄存器称为当前辅助寄存器或当前或当前ARAR。现在学习的是第10页,共183页1.辅助寄存器的选择 将数值07装入状态寄存器ST0的高3位(D15D13),该3位为辅助寄存器指针ARP,其编码值即对应8个辅助寄存器AR0AR7。可使用LST和MAR指令装载ARP值,也可使用支持间接寻址方式的任意指令作为装置ARP的辅助操作方式。现在学习的是第11页,共183页2.2.间接寻址的选择间接寻址的选择LF24xDSP提供了4种方式供间接寻址选择。不增不减。指令使用
9、当前辅助寄存器的内容作为数据存储器地址,指令执行后,当前辅助寄存器的内容保持不变,不增也不减。增1或减1。指令使用当前辅助寄存器的内容作为数据存储器地址,指令执行后将当前辅助寄存器的内容增l或减l。现在学习的是第12页,共183页增或减一个变址量。将AR0中的值作为变址量。指令使用当前辅助寄存器的内容作为数据存储器地址,指令执行后将当前辅助寄存器的内容增加或减去这个变址量,结果送到当前辅助寄存器。按反向进位方式增或减一个变址量。将AR0中的值作为变址量。指令使用当前辅助寄存器的内容作为数据存储器地址,指令执行后将当前捕助寄存器的内容按反向进位方式增加或减去这个变址量,结果送到当前辅助寄存器,反
10、向进位方式的加或减是从最高位开始运算,有进位(或借位)给低位。这适用于FFT算法。现在学习的是第13页,共183页选项选项操作数操作数符号符号例子例子不增不减*LT*用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG)增1*+LT*+用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG),然后当前AR内容加1减1*-LT*-用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG),然后当前AR内容减1增变址量*0+LT*0+用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG),然后当前AR内容加AR0内容减变址量*0-LT*0-用当前AR所指的数据存储器地址内容装载暂
11、时寄存器(TREG),然后当前AR内容加AR0内容反向进位方式增变址量*BR0+LT*BR0+用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG),然后按反向进位方式将当前AR内容加AR0内容反向进位方式减变址量*BR0-LT*BR0-用当前AR所指的数据存储器地址内容装载暂时寄存器(TREG),然后按反向进位方式将当前AR内容减AR0内容现在学习的是第14页,共183页例:ADD *,8;把当前辅助寄存器指向的数据存 储器地址的内容左移8位后加至累加器ADD *+,8;把当前辅助寄存器指向的数据存储器地址的内容左移8位后加至累加器,将当前辅助寄存器内容加1现在学习的是第15页,共18
12、3页3.3.间接寻址操作码格式间接寻址操作码格式间接寻址方式中,指令寄存器(间接寻址方式中,指令寄存器(IRIR)的内容如下:)的内容如下:D15D8:用于指示指令类型和指令所访问的数据值的移位信息。D7D7:直接直接/间接指示符。间接指示符。0 0表示直接寻址,表示直接寻址,1 1表示间接寻址。表示间接寻址。D6D4:辅助寄存器更新代码ARU。该3位决定当前辅助寄存器是否以及如何进行增或减。D3D3:下一辅助寄存器指示符下一辅助寄存器指示符N N。该位说明该指令是否改变。该位说明该指令是否改变辅助寄存器指针辅助寄存器指针ARPARP的值。的值。N=0N=0,辅助寄存器指针,辅助寄存器指针AR
13、PARP内容保持内容保持不变;不变;N=1N=1,下一辅助寄存器,下一辅助寄存器ARAR被装入辅助寄存器指针被装入辅助寄存器指针ARPARP。D2D0D2D0:下一辅助寄存器的值。该:下一辅助寄存器的值。该3 3位包括下一辅助寄存器位包括下一辅助寄存器的值。的值。现在学习的是第16页,共183页4.下次使用的辅助寄存器 除了改变当前辅助寄存器的内容外,许多指令还可以指定下次使用的辅助寄存器(或称为下一个AR)。当这些指令执行完毕时,指定的AR成为下一条指令的当前辅助寄存器,即为下次使用的辅助寄存器。指定下次使用的辅助寄存器的指令实际上是将一个07的值装入当前辅助寄存器的指针ARP中,先前的AR
14、P值则被复制到辅助寄存器指针缓冲器(ARB)中。现在学习的是第17页,共183页例:选择新的当前辅助寄存器。MAR *,AR3 ;将3装入ARP,使AR3成为下次使用的辅助寄存器LT *+,AR2 ;将当前辅助寄存器AR3的内容作为地址,把该地址单元的内容装入暂时寄存器(TREG)然后将AR3内容加1;再使;AR2成为下次使用的辅助寄存器MPY *;将AR2的内容作为地址,把该地址单元内容与TREG的内容相乘,乘积送入乘积寄存器PREG中,下次使用的辅助寄存器仍为AR2现在学习的是第18页,共183页5.修改辅助寄存器内容(1)使用专用指令修改辅助寄存器 LAR指令:直接将操作数指定的内容装入
15、 AR。ADRK指令:将当前AR值加一个立即数。SBRK指令:将当前AR值减一个立即数。MAR指令:将当前AR值加、减1或加、减一 个变址量。(2)利用任何一条支持间接寻址操作数的指令 都能修改辅助寄存器。现在学习的是第19页,共183页3.2 3.2 指令系统指令系统3.2.1 3.2.1 汇编句法格式汇编句法格式DSPDSP指令的汇编句法格式为:指令的汇编句法格式为:指令助记符指令助记符 操作数操作数 ;注释注释 TMS320LF24xTMS320LF24x系列系列DSPDSP指令中所用到的典型格式如下:指令中所用到的典型格式如下:指令助记符指令助记符 ;操作数缺省操作数缺省指令助记符指令
16、助记符 dma,shift dma,shift;左移;左移015015位直接寻址位直接寻址指令助记符指令助记符 dma,dma,1616 ;左移;左移1616位直接寻址位直接寻址指令助记符指令助记符 ind,shift,ind,shift,ARARARARn n;左移;左移015015位间位间 接寻址接寻址指令助记符指令助记符 ind,ind,16 16 16 16,ARARARARn n ;左移;左移1616位间接寻址位间接寻址指令助记符指令助记符#k k ;短立即数寻址;短立即数寻址指令助记符#lk,shift lk,shift ;左移;左移015015位长立即数寻位长立即数寻 址址现在学
17、习的是第20页,共183页指令助记符:由可描述指令特征的助记符表示,它规定了指令的操作功能,不能缺省。以上7种格式基本包含了所有指令的类型。但不是所有的指令都具备这7种格式。操作数:在操作数中定义了该句法表达式中所用的变量,以及寻址方式。注释:为便于阅读,对指令作的说明。此外,指令助记符与操作数之间要用空格分开,各操作数之间要用“,”号分开,操作数可缺省。黑体字符表示在该类型的指令中必须写出的字符,其它字符为变量,指令中用数字或字符代替。现在学习的是第21页,共183页3.2.2 指令集TMS320LF24x系列DSP指令按功能可分为6大类。(1)累加器、算术和逻辑运算指令26条;(2)辅助寄
18、存器指令6条;(3)TREG、PREG和乘法指令20条;(4)转移指令12条;(5)控制指令14条;(6)I/O和存储器指令8条。现在学习的是第22页,共183页一、累加器、算术和逻辑运算指令一、累加器、算术和逻辑运算指令1.ABS 1.ABS 取累加器绝对值取累加器绝对值语法:语法:ABS ABS 说明:说明:对累加器对累加器ACCACC的内容取绝对值后送回累加器,的内容取绝对值后送回累加器,并将进位位并将进位位C C清清0 0。指令影响。指令影响C C和和OVOV状态位,不受状态位,不受SXMSXM影响,受影响,受OVMOVM影响。影响。注意:注意:注意:注意:累加器中的值为累加器中的值为
19、累加器中的值为累加器中的值为16161616位的带符号数,若其大于或等于位的带符号数,若其大于或等于位的带符号数,若其大于或等于位的带符号数,若其大于或等于0 0 0 0,执,执,执,执行行行行ABSABSABSABS后内容不变;若小于后内容不变;若小于后内容不变;若小于后内容不变;若小于0 0 0 0,执行,执行,执行,执行ABSABSABSABS后,为其对后,为其对后,为其对后,为其对2 2 2 2的补码。的补码。的补码。的补码。对对80000000h80000000h取绝对值时的特殊情况:取绝对值时的特殊情况:当溢出模式为当溢出模式为0 0(OVM=0OVM=0)时,执行)时,执行ABS
20、ABS指令,对指令,对80000000h80000000h取绝对值结果是对取绝对值结果是对80000000h80000000h;当溢出模式为当溢出模式为1 1(OVM=1OVM=1)时,执行)时,执行ABSABS指令,指令,对对80000000h80000000h取绝对值结果是对取绝对值结果是对7FFFFFFFh7FFFFFFFh。上述两种情况状态位上述两种情况状态位OVOV均置均置1 1。现在学习的是第23页,共183页举例:举例:现在学习的是第24页,共183页2.ADD 2.ADD 带移位的加法带移位的加法语法:语法:语法:语法:1 1 1 1)ADD dma ADD dma ADD d
21、ma ADD dma,shift shift shift shift 2 2 2 2)ADD dmaADD dmaADD dmaADD dma,16161616 3 3 3 3)ADD ind ADD ind ADD ind ADD ind,shift shift shift shift,ARn ARn ARn ARn 4 4 4 4)ADD indADD indADD indADD ind,16 16 16 16,ARn ARn ARn ARn 5 5 5 5)ADD#kADD#kADD#kADD#k 6 6)ADD#lk ADD#lk,shift shift 说明:说明:说明:说明:将被寻
22、址的数据存储单元的内容或立即数左移将被寻址的数据存储单元的内容或立即数左移将被寻址的数据存储单元的内容或立即数左移将被寻址的数据存储单元的内容或立即数左移016016016016位后加到累加器中,移位时低位填位后加到累加器中,移位时低位填位后加到累加器中,移位时低位填位后加到累加器中,移位时低位填0 0 0 0,高位填,高位填,高位填,高位填0 0 0 0(SXM=0SXM=0SXM=0SXM=0)或符号扩展()或符号扩展()或符号扩展()或符号扩展(SXM=1SXM=1SXM=1SXM=1)。指令影响)。指令影响)。指令影响)。指令影响C C C C和和和和OVOVOVOV,当,当,当,当左
23、移左移1616位作加法时,如果加法结果有进位,则位作加法时,如果加法结果有进位,则C=1C=1;如;如果无进位,则果无进位,则C C不变。指令受不变。指令受SXMSXM和和OVMOVM影响,但短立即影响,但短立即数寻址时,仅受数寻址时,仅受SXMSXM影响,不受影响,不受OVMOVM影响。影响。现在学习的是第25页,共183页ADD#1111hADD#1111h,1 1;(ACC)+#1111h2ACC(ACC)+#1111h2ACC 举例:3.ADDC 带进位加法语法:1)ADDC dma 2)ADDC ind,ARn 说明:被寻址的数据存储单元的内容与累加器的内容(高位填0)及进位位的值相
24、加,结果送累加器。该指令可实现多精度运算。指令影响C和OV,受OVM影响,不受SXM影响,若相加结果有进位,则C=1;若无进位,则C=0。现在学习的是第26页,共183页举例:ADDC *-,AR4 ;设OVM=0,将当前AR指定的数据存储单元的内容与累加器的内容及进位位相加后送累加器,并将当前AR内容减1,然后将AR4指定为下次的辅助存储器现在学习的是第27页,共183页4.ADDS 加法语法:1)ADDS dma 2)ADDS ind,ARn 说明:被寻址的数据存储单元的内容与累加器的内容(高位填0)相加,结果送累加器。当SXM=0,移位次数为0时,ADD指令与ADDS的结果相同。指令影响
25、C和OV,受OVM影响,不受SXM影响,若相加结果有进位,则C=1;若无进位,则C=0。现在学习的是第28页,共183页举例:ADDS 6;设DP=5,则数据存储器地址范围为 280h2FFh,(ACC)+(数据存储器 286h)ACC现在学习的是第29页,共183页5.ADDT 移位次数由TREG指定的加法语法:1)ADDT dma 2)ADDT ind,ARn 说明:被寻址的数据存储单元的内容左移015位(由TREG低4位决定)与累加器的内容相加,结果送累加器。移位时,低位填0,高位填0(当SXM=0)或符号扩展(当SXM=1)。指令影响C和OV,受OVM和SXM影响,若相加结果有进位,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 指令系统和程序编写优秀PPT 指令系统 程序 编写 优秀 PPT
限制150内