您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第01讲-指令系统1-寻址方式
DSP原理及应用——TMS320VC55x系列浦铁成putiecheng@163.com18:55第2页/共28页本节提要引言存储空间结构简介CPU寄存器寻址方式18:55第3页/共28页引言:(1)TMS320C55x存储空间结构简介(1)首先,CPU要知道要做什么?(2)其次,CPU要知道操作数是谁?在哪?(3)再次,CPU执行操作,求和。(4)最后,CPU结果放到那?A+B=C例:+指令助记符:ADDA和B存储空间分配寻址方式CPU寄存器CPU运算单元C存储空间分配寻址方式18:55第4页/共28页引言:(1)TMS320C55x存储空间结构简介程序空间24位地址,按字节编址,寻址空间16MB;数据空间23位地址,按字编址,寻址空间8MW;I/O空间16位地址,按字编址,寻址空间64KW。18:55第5页/共28页累加器(AC0~AC3)辅助寄存器(AR0~AR7)注:ARnH没有映射到存储器空间,只能用XARn访问引言:(2)TMS320C55x的CPU寄存器18:55第6页/共28页临时寄存器(T0~T3)用途:①在乘法、乘加、乘减指令中存放被乘数;②存放移位次数用于加、减和装载指令;系数数据指针(XCDP/CDP)数据页指针(XDP/DP)引言:(2)TMS320C55x的CPU寄存器状态寄存器ST0_5518:55第7页/共28页引言:(2)TMS320C55x的CPU寄存器状态寄存器ST1_55状态寄存器ST2_55状态寄存器ST3_5518:55第8页/共28页3.TMS320C55x的指令系统3.1寻址方式CPU找到数据地址的方法;绝对寻址,直接寻址,间接寻址。3.1.1绝对寻址包括k16绝对寻址、k23绝对寻址和I/O绝对寻址18:55第9页/共28页3.1.1绝对寻址k16绝对寻址(不能与其他指令并行执行)操作数为16位绝对地址*abs16(#k16)23位数据地址=DPH(7位)+k16(16位无符号常数)例:DPH=01h,k16=1234h23位地址是?011234h18:553.1.1绝对寻址k23绝对寻址(不能与其他指令并行执行)操作数为23位绝对地址*(#k23)23位数据地址=k23(23位无符号常数)第10页/共28页18:55第11页/共28页I/O绝对寻址(不能与其他指令并行执行)代数指令操作数为*port(#k16)助记符指令操作数为port(#k16)3.1.1绝对寻址18:55第12页/共28页3.1.2直接寻址DP直接寻址23位地址的高7位由DPH提供,用来确定主数据页,其余低16位由DP和7位偏移量两部分组成。例:DPH=01h,DP=1234h,Doffset=23h,则23位地址?011257h18:55第13页/共28页3.1.2直接寻址SP直接寻址23位地址的高7位由SPH提供,用来确定主数据页,其余低16位由SP和7位偏移量两部分组成。例:SPH=01h,SP=1234h,Doffset=23h,则23位地址?011257h18:553.1.2直接寻址寄存器位寻址使用寄存器位寻址的指令其操作数是@bitoffset,该操作数是从寄存器的最低位开始的偏移值。例如,如果bitoffset为0,那么就可以访问寄存器的最低位;如果bitoffset为3,那么就可以访问寄存器的位3。Bitoffset的最大值依据寄存器大小而定,为39或15。只有寄存器的位测试、置位、清零、取反指令支持这种寻址模式。第14页/共28页18:553.1.2直接寻址PDP直接寻址64K16位的I/O空间分成512个外设数据页,用9位的外设数据页指针PDP表示,其中每一页有128个字,由指令中的指定的7位偏移值来表示。例如,如果访问一页的第一个字,其偏移值为0。第15页/共28页例:PDP=001h,Poffset=23h,则16位地址?00A3h18:553.1.3间接寻址AR间接寻址该模式通过一个辅助寄存器ARn(n=0,1,2,3,4,5,6,或7)访问数据空间。ARn给出地址低16位,ARnH给出地址高7位;而ST2-55的ARMS位决定了AR间接寻址的操作类型当ARMS=0,DSP模式:CPU提供DSP增强应用的高效执行功能。当ARMS=1,控制模式:针对控制系统的应用,CPU能够优化代码的长度。第16页/共28页18:55AR间接寻址DSP模式序号操作数地址修改1*ARnARn未修改2*ARn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+23*ARn在生成地址之后减少:16位操作,ARn=ARn132位操作,ARn=Arn24*+ARn在生成地址之前增加:16位操作,ARn=ARn+132位操作,ARn=ARn+25*ARn在生成地址之前减少:16位操作,ARn=ARn132位操作,ARn=ARn26*(ARn+T0/AR0)在生成地址之后,ARn加上T0或ARn中16位带符号的常数:如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0第17页/共28页18:55第18页/共28页AR间接寻址DSP模式(续)7*(ARnT0/AR0)在生成地址之后,ARn减去T0或ARn中16位带符号的常数:如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR08*ARn(T0/AR0)ARn未被修改。ARn被作为基指针,T0或AR0中16位带符号常数被作为偏移量9*(ARn+T0B/AR0B)在生成地址之后,ARn加上T0或ARn中16位带符号的常数:如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0按位倒序模式相加10*(ARnT0B/AR0B)在生成地址之后,ARn减去T0或ARn中16位带符号的常数:如果C54CM1=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR0按位倒序模式相减[注1]:C54CM是状态寄存器ST1-55中TMS320C54x兼容模式。18:5511*(ARn+T1)在生成地址之后,ARn加上T1中16位带符号的常数:ARn=ARn+T112*(ARnT1)在生成地址之后,ARn减去T1中16位带符号的常数:ARn=ARnT113*ARn(T1)ARn未被修改。ARn被作为基指针,T1中16位带符号常数被作为偏移量14*ARn(#K16)ARn未被修改。ARn被作为基指针,16位带符号常数(K16)被作为偏移量15*+ARn(#K16)在地址生成之前,ARn加上16位带符号常数(K16)AR间接寻址DSP模式(续)第19页/共28页18:55序号操作数地址修改1*ARnARn未修改2*ARn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+23*ARn在生成地址之后减少:16位操作,ARn=ARn132位操作,ARn=ARn24*(ARn+T0/AR0)在生成地址之后,ARn加上T0或AR0中16位带符号的常数:如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR05*(ARnT0/AR0)在生成地址之后,ARn减去T0或AR0中16位带符号的常数:如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR0AR间接寻址控制模式第20页/共28页18:55AR间接寻址控制模式(续)6*ARn(T0/AR0)ARn未被修改。ARn被作为基指针,T0或AR0中16位带符号常数被作为偏移量7*ARn(#K16)ARn未被修改。ARn被作为基指针,16位带符号常数(k16)被作为偏移量8*+ARn(#K16)在地址生成之前,ARn加上16位带符号常数(k16)9*ARn(short(#k3))ARn未被修改。ARn被作为基指针,3位带符号常数(k13)被作为偏移量第21页/共28页18:553.1.3间接寻址双AR间接寻址双AR间接寻址模式可以通过8个辅助寄存器(AR0--AR7)同时访问两个数据存储单元,与单个AR间接访问数据空间一样,CPU使用一个扩展辅助寄存器产生23位地址。双AR间接寻址可以实现以下功能:(1)执行一条可完成两个16位数据空间访问的指令。在这种情况下,两个数据存储操作数在指令中为Xmem和Ymem。例如:ADDXmem,Ymem,ACx(2)并行执行两条指令。在这种情况下,必须每条指令访问一个存储数据,操作数在指令指令中是Smem或Lmem。MOVSmem,dst||ANDSmem,src,dst双AR间接寻址操作数是AR间接寻址操作数的子集,而ARMS状态位不影响双AR间接寻址的操作。第22页/共28页18:55双AR间接寻址操作数序号操作数地址修改1*ARnARn未修改2*ARn+在生成地址之后增加:16位操作,ARn=ARn+132位操作,ARn=ARn+23*ARn在生成地址之后减少:16位操作,ARn=ARn132位操作,ARn=ARn24*(ARn+T0/AR0)在生成地址之后,ARn加上T0或AR0中16位带符号的常数:如果C54CM=0,ARn=ARn+T0如果C54CM=1,ARn=ARn+AR0第23页/共28页18:55双AR间接寻址操作数(续)序号操作数地址修改5*(ARnT0/AR0)在生成地址之后,ARn减去T0或AR0中16位带符号的常数:如果C54CM=0,ARn=ARnT0如果C54CM=1,ARn=ARnAR06*ARn(T0/AR0)ARn未被修改。ARn被作为基指针,T0或AR0中16位带符号常数被作为偏移量7*(ARn+T1)在生成地址之后,ARn加上T1中16位带符号的常数:ARn=ARn+T18*(ARnT1)在生成地址之后,ARn减去T1中16位带符号的常数:ARn=ARn-T1第24页/共28页18:553.1.3间接寻址CDP间接寻址CDP间接寻址模式使用系数数据指针(CDP)对数据空间、寄存器位和I/O空间进行访问。序号操作数地址修改1*CDPCDP未修改2*CDP+在生成地址之后增加:16位操作,CDP=CDP+132位操作,CDP=CDP+23*CDP在生成地址之后减少:16位操作,CDP=CDP132位操作,CDP=CDP24*CDP(#K16)CDP未被修改。CDP被作为基指针,16位带符号常数(K16)被作为偏移量5*+CDP(#K16)在地址生成之前,CDP加上16位带符号常数(K16):CDP=CDP+K16第25页/共28页18:553.1.3间接寻址系数间接寻址系数间接寻址模式的地址产生过程与使用CDP间接寻址数据空间的地址产生过程一样。CDP间接寻址模式支持以下算术指令:FIR滤波、乘法、乘加、乘减和双乘加或双乘减。序号操作数地址修改1*CDPCDP未修改2*CDP+在生成地址之后增加:16位操作,CDP=CDP+132位操作,CDP=CDP+23*CDP在生成地址之后减少:16位操作,CDP=CDP132位操作,CDP=CDP24*(CDP+T0/AR0)在生成地址之后,CDP加上T0或AR0中16位带符号的常数:如果C54CM=0,CDP=CDP+T0如果C54CM=1,CDP=CDP+AR0第26页/共28页18:55第27页/共28页小结存储空间分配CPU寄存器寻址方式18:55谢谢!第28页/共28页
本文标题:第01讲-指令系统1-寻址方式
链接地址:https://www.777doc.com/doc-6234454 .html