第三章 TMS320C55x指令系统_第1页
第三章 TMS320C55x指令系统_第2页
第三章 TMS320C55x指令系统_第3页
第三章 TMS320C55x指令系统_第4页
第三章 TMS320C55x指令系统_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

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

文档简介

第三章TMS320C55x的指令系统

3.1寻址方式3.2TMS320C55x的指令系统

惫映撂没脂崎榷棒樟窗层茂分焰亏旷窜躬为谐躺蜜乏丢硕肆古芽捂膀如鹰第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1寻址方式寻址方式:是指如何指定指令和操作数所在存储空间的地址。C55xDSP支持三种寻址模式:绝对寻址模式:指令里有一个地址的全部或者部分,指示目的地址;直接寻址模式:使用偏移地址指示目的地址;间接寻址模式:使用指针指示目的地址。瓦数昨碉镊凛蛤赚犁悲袱叔霄剑锄汽潘有坎措瘩芽粘呆误麦嚏秀谤法仟椭第三章TMS320C55x指令系统第三章TMS320C55x指令系统支持寻址模式操作数的指令应具有下表所示的句法元素:句法元素描述Smem指令语句里含有Smem时,该指令可以访问数据存储器、I/O空间或者MMR中的一个单字(16bits)。写该指令语句时,用一个兼容的寻址模式操作数来代替Smem。Lmem指令语句里含有Lmem时,该指令可以访问数据存储器或者MMR中的一个长字(32bits)。写该指令语句时,用一个兼容的寻址模式操作数来代替Lmem。XmemandYmem指令语句里含有XmemandYmem时,该指令可以对数据存储器同时作两次16bits的访问。写该指令语句时,用兼容的寻址模式操作数来代替XmemandYmem。Cmem指令语句里含有Cmem时,该指令可以访问数据存储器的单字(16bits)。写该指令语句时,用一个兼容的寻址模式操作数来代替Cmem。Baddr指令语句里含有Baddr时,该指令可以访问累加器(AC0~AC3)、辅助寄存器(AR0~AR7)或T0~T3中的一个bit或者两个bit。只有寄存器bit测试/设置/清除/取反指令支持Baddr。写任意一条此类指令语句时,用一个兼容的寻址模式操作数来代替Baddr。较磋姿偷筛泵缚腺鲜淮免龟杀盟挨浮垂兹陈院蹈固烫免底画幸齿箍淀坠纲第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.1绝对寻址模式寻址模式功能k16绝对寻址用DPH的7-bit寄存器,和一个16-bit无符号常数构成一个23-bit数据空间地址。该模式可以访问存储器或者MMR。k23绝对寻址指定一个23-bit无符号常数作为全地址。该模式可以访问存储器或者MMR。I/O绝对寻址指定一个16bit无符号常数作为I/O地址,该模式可以访问I/O空间。堡郭搅纳拧卜玛潮穗既唯坟防烽供获陛吝冈眷拆琼吗吠国党朱漾堰巍舵杆第三章TMS320C55x指令系统第三章TMS320C55x指令系统k16绝对寻址其操作数为*abs16(#k16),其中,k16为16位无符号常数。将7位的寄存器DPH和k16级联形成一个23位的地址,用于对数据空间的访问。该模式可以访问一个数据存储器单元或者MMR。k16绝对寻址模式

痰疙厩汁裂锦妹悼典幕蜘佣型性下煽僧捶赡达座翁蛮峦攀疑给密近绑侨鲸第三章TMS320C55x指令系统第三章TMS320C55x指令系统k16绝对寻址指令实例:(1)语法格式:MOVSmem,dst指令语句:MOV*abs16(#2002h),T2 指令实例:(2)语法格式:MOVK16,Smem指令语句:MOV#248,*abs16(#2002h) 要点常数k16被固定译码为2个字节扩充到指令中采用这种寻址方式的指令不能与其它指令并行执行遥毫呼髓柔稽缴像傲袄玫翠释脏痉怪舌巧爽篙惟岩尚减矾臃愧寝杂遂注棵第三章TMS320C55x指令系统第三章TMS320C55x指令系统k16绝对寻址程序执行的结果是:T2=。例3-1:汇编语言k16绝对寻址程序阅读与分析.defstart.mmregs.textstart:MOV#03H,DPHMOV#24,*abs16(#2002h)MOV*abs16(#2002h),T2here:bhere操作数*abs16(#2002h)的寻址地址:

。032002H0018H龄睫崖肤得瞧恐朝盯枚尽盾厨漠燎淑趟橱份诧筑长敛毫乱甥虐吧赔契绚铃第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-2,*abs16(#k16)用于MMR寻址,DPH必须为00h。MOV*abs16(#AR2),T2;AR2的地址为000012h;CPU从000012h处读取数据装入T2孙锁茂忠周好援扶拾琐香冈赁课朝佐泼劫美医篇磅赞钠棉灌居筑券妙舷领第三章TMS320C55x指令系统第三章TMS320C55x指令系统k23绝对寻址操作数为*(#k23),其中,k23为23位的无符号常数,作为所寻址数据空间的地址。要点无符号常数k23被固定译码为3个字节,其中第三个字节的最高位被忽略不能与其它指令并行执行不能用于重复指令中删性匈览寄距司呻谍灼钥洽懒掷眩脓蚀嘿腰酋辊军坊唤拟穗模涌碗堤嫂煤第三章TMS320C55x指令系统第三章TMS320C55x指令系统k23绝对寻址模式一拔菠职咯罚众循编挟藉戚进窑循函咯歹红刮鸵廊佯精筑利涣宅兔董饿几第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-3,*(#k23)用于数据存储器寻址。MOV*(#032002h),T2例3-4,*(#k23)用于MMR寻址。MOV*(#AR2),T2;AR2的地址为000012h;k23=032002h,CPU从032002h处读取数据装入T2;CPU从000012h处读取数据装入T2校神螟曳量漓辑形畦拆叹鹰二鄂诗碱腐软秆龋当批窄县七魄淹判蹲滔吸蔷第三章TMS320C55x指令系统第三章TMS320C55x指令系统I/O绝对寻址对于代数格式汇编语言指令,操作数是*port(#k16),其中k16为16位无符号常数,用于指明16位I/O端口地址。使用助记符格式汇编语言指令,其操作数是port(#k16)(操作数前没有*)。I/O绝对寻址子前毗亥单淘削矗钢烬坯租醛瘦鞋函谴帜袍仓姥弘锡头绵怀少唯球攀节耿第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-5,port(#k16)用于对I/O空间的寻址。MOVport(#2),AR2;CPU从I/O地址0002h读取数据进AR2MOVAR2,port(#0F000h);CPU把AR2的数据输出到I/O地址0F000h现种皱米蔫扦沙踪救董学宁馏相弛闺焊安悲荤蜂梭板僚遇橱莲蜂丙胆枕悯第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.2直接寻址模式直接寻址的分类见下表:寻址模式描述DP直接寻址使用DPH指定的主数据页,和DP相连接形成23位数据空间地址,用于访问存储器和MMR。SP直接寻址使用SPH指定的主数据页,和SP相连接形成23位地址,用于访问数据存储器里的堆栈值。寄存器bit直接寻址用一个偏移来指定一个bit地址。该模式用于访问一个寄存器bit或者两个相邻的寄存器bit。PDP直接寻址用PDP(外设数据页寄存器)和一个偏移,来指定一个I/O端口地址。该模式用来访问I/O空间的单元。抨闻冯谴等斋枯奏疗习啪景布掸背心戈蕉证辅俭希锭狡着梢袄镜临剪室儿第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.2直接寻址模式直接寻址中的DP直接寻址和SP寻址与状态寄存器ST1-55的CPL位有关。当CPL=0采用DP直接寻址模式,操作数@Daddr当CPL=1采用SP直接寻址模式,操作数*SP(offset)直接寻址模式中的寄存器bit直接寻址和PDP直接寻址与状态寄存器ST1-55的CPL位无关。侵在肩纹枫疫爬剥宙驰萍倔垃新炭岭田镭朵撤识骄免霜瓤憎猎烤涪繁掌蓑第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.2直接寻址模式一、DP直接寻址DP直接寻址的23位地址构成:高7位由DPH提供,用来确定主数据页;其余低16位为以下两部分的和:(1)DP里的值。DP定义了在主数据页内的起始地址。(2)汇编程序计算的7-bit偏移量(Doffset)。DP直接寻址模式沪肘郧迅绅掷证冷菱纹姥蒋莲警坯还盘比威烦眠贺铅静忍透杉妈添闺编啼第三章TMS320C55x指令系统第三章TMS320C55x指令系统DP直接寻址偏移量(Doffset)的计算访问对象计算Doffset说明数据存储器Doffset=(Daddr-.dp)&7FhDaddr是读/写操作的16bit地址,.dp是利用汇编伪指令分配的数值(一般DP的匹配),&表示按位“与”MMRDoffset=Daddr&7FhDaddr是读/写操作的16bit地址,&表示按位“与”,mmap()迫使CPU把数据页视为0来操作。Doffset的计算有两种情况:表2-1DP直接寻址Doffset的计算一、DP直接寻址沏衔坐兹恼隅硅婆尾纽伐雀昂眺颓俄照斌候份眉通夸批柜别缔判秤缅骇酞第三章TMS320C55x指令系统第三章TMS320C55x指令系统DP直接寻址偏移量(Doffset)的计算DP直接寻址Doffset的计算代码示例:TheassemblercalculatesDoffset:Doffset=(1)寻址数据存储器Atruntime,the23-bitdata-spaceaddressisgenerated:23-bitaddress=(Daddr–.dp)&7Fh=(FFF4h–FFF0h)&7Fh=04hDPH:(DP+Doffset)=03:(FFF0h+0004h)=03FFF4hAMOV#03FFF0h,XDP.dp#0FFF0hMOV@0FFF4h,T2指令实例:;Maindatapageis03.Forrun-time,;DPisFFF0h.;Forassemblytime,.dpisFFF0h.;LoadT2withthevalueatlocal;addressFFF4h.分析:一、DP直接寻址括厢题歹磅囚荚壹丸唆烤始耙湘克厩禽式燥褂铜迅厕赣什孜款泰佬食耘脑第三章TMS320C55x指令系统第三章TMS320C55x指令系统DP直接寻址偏移量(Doffset)的计算DP直接寻址Doffset的计算代码示例:汇编器计算偏移量:Doffset=(2)寻址MMR(memory-mappedregister)程序运行时:(CPU:DPH=DP=0)23-bit地址产生如下:23-bitaddress=Daddr&7Fh=0010h&7Fh=10hDPH:(DP+Doffset)=00:(0000h+0010h)=000010hMOVmmap(@AR0),T2;LoadT2withthevalueinAR0.;mmap()qualifierindicatesaccesstoMMR.;AR0ismappedtoaddress000010hindataspace指令实例:分析:一、DP直接寻址谋贿诱况女斗萌嘎脊渤埋遍宰忧钉闪苫王驹诗效锥饰叁痪逸季尺笛图庶拖第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-6,@Daddr用于数据存储器寻址。设DPH=03h,DP=0000h。MOV@0005h,T2;DPH:(DP+Doffset)=03:(0000h+0005h)=030005h;CPU从030005h处读取数据装入T2例3-7,@Daddr用于MMR寻址.DPH=DP=00h。MOVmmap(@AC0L),AR2;DPH:(DP+Doffset)=00:(0000h+0008h)=000008h;CPU从000008h处读取数据装入AR2撵瘸丝祖曲科谊词拄答二熬甫宛忻吗较婉胰见僵泵锗厦澜介阴叫辖棕钱侄第三章TMS320C55x指令系统第三章TMS320C55x指令系统

二、SP直接寻址SP直接寻址的23位地址构成:最高7位地址由寄存器SPH确定;低16位地址是SP值和指令里指定的7位偏移量之和。偏移量范围是0~127。(由SPH和SP构成了扩展数据堆栈指针XSP)SPH和SP合并后形成扩展数据堆栈指针(XSP)可以单独向SPH和SP赋值,也可以使用一条指令向XSP赋值。糜材卜圃钳摩辙坑号列贬浊抖仓玲勘错遗惹急完封亢骗运境烫讽跑诡二呆第三章TMS320C55x指令系统第三章TMS320C55x指令系统☼主数据页0中的堆栈只能占用000060h~00FFFFh中的空间。因为000000h~00005Fh是保留给存储映射寄存器用的。SP直接寻址模式卫窄淆振补喂眉搀戍数匠罗圈邀废版始栅饺绝南此所几锹抖江浦蛹匿蝶俗第三章TMS320C55x指令系统第三章TMS320C55x指令系统

二、SP直接寻址

指令实例:(1)语法格式:MOVSmem,dst指令语句:MOV*SP(5),T2 指令寻址分析:假设SPH=00h,SP=FF00h;操作数*SP(5),T2的寻址地址为:指令执行结果:将数据空间中地址为00FF05h单元内的数值加载到T2寄存器中。 SPH:(SP+offset)=00FF05h;氦浅荆欧清嘛病粥拓款介恳兔顶暂显杏愤浆诱婿哨叔尿金滓丘刮骚漫倚靳第三章TMS320C55x指令系统第三章TMS320C55x指令系统三、寄存器位直接寻址模式操作数是@bitoffset只有寄存器的位测试、置位、清零、取反指令支持这种寻址模式。说明:(1)偏移量bitoffset是从所要位寻址的寄存器最低位开始,如果bitoffset是3,则正在寻址该寄存器的第3位。(2)该寻址方式只能访问以下的寄存器:AC0–AC3、AR0–AR7、T0–T3。指令实例:(1)语法格式:BSETBaddr,src指令语句:BSET@0,AC3 CPU置位AC3的第零位。指令寻址分析:睁耙薪节祟吧搓尧壹苔识贮汇焙术私沏髓厅玻哪溢蓄攫杆抵匣汇栅躬害针第三章TMS320C55x指令系统第三章TMS320C55x指令系统四、PDP直接寻址使用PDP寻址方式时,16bit的I/O空间地址的形成如下:64K×16bit的I/O空间被分成512个外设数据页,每页有128个字,用9位的外设数据页指针寄存器PDP指出页地址,同时由指令中指定的一个7位偏移值来表示页内的偏移量,从而形成一个16bit的外设I/O地址。靛胰椽霍贯呕镜低奖驳维募利羞望翁璃泉助酮捣姜汀戒予桐奏薄刚篆卉逗第三章TMS320C55x指令系统第三章TMS320C55x指令系统四、PDP直接寻址图2-5PDP直接寻址模式冤呀去钠聋惨锨魄嫂宵高落壁悠遮醒厂份钉达沽剩尚胳柏某也补痊湖东骂第三章TMS320C55x指令系统第三章TMS320C55x指令系统四、PDP直接寻址指令实例:用PDP直接寻址模式访问I/O空间语法:MOVSmem,dst语句:MOVport(@0),T2;指令寻址地址:PDP:Poffset语法:MOVk9,PDP 语句:MOV#008,PDP;PDP=008h 初始化PDP寄存器的语句:MOVport(@0),T2;PDP:Poffset=0400h对龄棍关柱万八惨卡柯驰术镑挨苇虱语要残迁谨个鲁喊叉醛泰陀佑探映叙第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-15,@Poffset用于对I/O空间的寻址,设PDP=511。MOVport(@0),T2;PDP:Poffset=FF80h,CPU从FF80h读取数据进T2MOVT2,port(@127);PDP:Poffset=FFFFh,CPU把T2的数据输出到I/O地址0FFFFh贺直屈麦镁氨胯另蜀祝淖领蠢敢匣樊茨沈辅迁哄桥吃惮臭嗓戈结栋卜矽车第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式CPU支持的间接寻址模式见下表:寻址模式功能AR间接寻址使用8个辅助寄存器(AR0~AR7)中的一个指向数据。CPU用辅助寄存器来产生地址的方式取决于访问数据空间、单个寄存器位或者I/O空间。双AR间接寻址地址产生过程与AR间接寻址模式相同。该模式用在访问两个或者多个数据存储器单元的指令中。CDP间接寻址用系数数据指针(CDP)指向数据。CPU用CDP产生的地址的方式取决于访问数据空间、单个寄存器位或者I/O空间。系数间接寻址地址产生过程与CDP间接寻址模式相同。该模式所支持的指令,可以在访问数据存储器里一个系数的同时,用双AR间接寻址访问另外两个数据存储器的值。凋玻醋秦忽坞驻陶俯瘤僧站丙胎傲伎赡旱锚靶护谓坝态卵编谋讫砧篆佑趋第三章TMS320C55x指令系统第三章TMS320C55x指令系统一、AR间接寻址模式通过一个辅助寄存器ARn(n=0,1,2,3,4,5,6,7)访问数据。ARn产生地址的方式取决于所访问的类型,具体见下表:表2-4AR间接寻址模式访问的类型访问ARn包含数据存储空间(存储器或MMR)一个23位地址的低16位。高7位由ARnH来提供。单个寄存器bit(或相邻两个bit)一个bitI/O空间一个16-bit的I/O地址。3.1.3间接寻址模式鞘蒂闲唱谗荣寇恍鹤刃驾型谢讳大辱吗套开晋六荣泣冉峦咏炸塞蛇舷嘎撞第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式(1)AR间接寻址模式访问数据存储空间访问数据空间时,使用一条装入XARn的指令,语法:AMOVk23,XAdst语句:AMOV#7FFFFFh,XAR0;将23位地址值(7FFFFFh)存入XAR0。获涤珍窗罐裁贝燥它恨捉心圭斟捡通秩讳效剧句臣案丈嘻懈晨伏遍疾闻夷第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式(2)AR间接寻址模式访问寄存器位访问寄存器位时,所选择的辅助寄存器,ARn中只有一个bit。例如:AR6里是0,则AR6指向所操作寄存器的最低bit0。指令实例:(1)语法格式:BSETBaddr,src

指令语句:MOV#15,AR6BSET*AR6,AC3 CPU置位AC3的第15位。指令寻址分析:说明:(1)该寻址方式只能访问以下的寄存器:AC0–AC3、AR0–AR7、T0–T3。札磊猿摆刃缓挂君醒至蔽踪缚衰尾做毅荆丫恼沾韶傍脱揽竟姥绞伴控柠讶第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式(3)AR间接寻址模式访问I/O空间访问I/O空间时,用16bit地址访问I/O空间里的字,辅助寄存器ARn中包含全部16-bitI/O地址。指令实例:用AR间接寻址模式访问I/O空间语法:MOVSmem,dst语句:MOVport(*ARn),T2;I/O空间中的值读入到T2中。MOV#FF80h,AR6; MOVport(*AR6),T2; MOVT2,port(*AR6+);MOVport(*-AR6),T2; 作业:分析每一条程序语句的运行结果。爬烙独敌啄李雅燃前缮袖帕诀哀曾秉镜册某晶夫孩囱熔丢桌记软夕斗绩铅第三章TMS320C55x指令系统第三章TMS320C55x指令系统表3-9DSP模式下的AR间接寻址模式(1)操作数指针修改方式访问数据类型*ARnARn值不变Smem、Lmem、Baddr*ARn+地址产生后,指针的值自增:对于16位/1位操作数,有ARn=ARn+1;对于32位/2位操作数,有ARn=ARn+2Smem、Lmem、Baddr*ARn-地址产生后,指针的值自减:对于16位/1位操作数,有ARn=ARn-1;对于32位/2位操作数,有ARn=ARn-2Smem、Lmem、Baddr*+ARn地址产生前,指针的值自增:对于16位/1位操作数,有ARn=ARn+1;对于32位/2位操作数,有ARn=ARn+2Smem、Lmem、Baddr*-ARn地址产生前,指针的值自减:对于16位/1位操作数,有ARn=ARn-1;对于32位/2位操作数,有ARn=ARn-2Smem、Lmem、Baddr*(ARn+T0/AR0)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;Smem、Lmem、Baddr*(ARn-T0/AR0)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn-T0;如果C54CM=1,有ARn=ARn-AR0;Smem、Lmem、Baddr旧论谨闻凶胡烈柜计灶蔗竖确犹鲍为坏枢饼欢节沛哆亢芯憎剁催涎皑苯锯第三章TMS320C55x指令系统第三章TMS320C55x指令系统表3-9DSP模式下的AR间接寻址模式(2)操作数指针修改方式访问数据类型*ARn(T0/AR0)ARn作为基地址不变,T0或AR0的值作为偏移地址Smem、Lmem、Baddr*(ARn+T0B/AR0B)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;上述加法按位倒序进位规律进行相加Smem、Lmem、Baddr*(ARn-T0B/AR0B)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn-T0;如果C54CM=1,有ARn=ARn-AR0;上述加法按位倒序借位规律进行相加Smem、Lmem、Baddr*(ARn+T1)地址产生后,指针的值为ARn=ARn+T1Smem、Lmem、Baddr*(ARn-T1)地址产生后,指针的值为ARn=ARn-T1Smem、Lmem、Baddr*ARn(T1)ARn作为基地址不变,T1值作为偏移地址Smem、Lmem、Baddr*ARn(#K16)ARn作为基地址不变,K16值作为偏移地址Smem、Lmem、Baddr*+ARn(#K16)地址产生前,指针的值变为ARn=ARn+K16Smem、Lmem、Baddr询实艺锌脆每钓销役摄凤沼除右执福吼浴隘拦呢形红捏艇盖瘦宁脯大屎觉第三章TMS320C55x指令系统第三章TMS320C55x指令系统表3-10控制模式下的AR间接寻址模式操作数指针修改方式访问数据类型*ARnARn值不变Smem、Lmem、Baddr*ARn+地址产生后,指针的值自增:对于16位/1位操作数,有ARn=ARn+1;对于32位/2位操作数,有ARn=ARn+2;Smem、Lmem、Baddr*ARn-地址产生后,指针的值自减:对于16位/1位操作数,有ARn=ARn-1;对于32位/2位操作数,有ARn=ARn-2Smem、Lmem、Baddr*(ARn+T0/AR0)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn+T0;如果C54CM=1,有ARn=ARn+AR0;Smem、Lmem、Baddr*(ARn-T0/AR0)地址产生后,指针的值变化:如果C54CM=0,有ARn=ARn-T0;如果C54CM=1,有ARn=ARn-AR0;Smem、Lmem、Baddr*ARn(T0/AR0)ARn作为基地址不变,T0或AR0的值作为偏移地址Smem、Lmem、Baddr*ARn(#K16)ARn作为基地址不变,K16的值作为偏移地址Smem、Lmem、Baddr*+ARn(#K16)地址产生前,指针的值变为ARn=ARn+K16Smem、Lmem、Baddr*ARn(short(#k3))ARn作为基地址不变,3位的无符号立即数作为偏移指针(k3的值为1~7)Smem、Lmem、Baddr锰布祖浙概焚彼航拢婿诅沮进萧币欠滚办投愈葱泛瘤骤杨垒滤脏乘咋抓酸第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-5,*ARn用于数据存储器寻址,设ARn工作在线性寻址状态。MOV*AR4,T2;AR4H:AR4=XAR4,CPU从XAR4处读取数据装入T2例3-6,*(ARn+T0)用于数据存储器寻址,设ARn工作在线性寻址状态。MOV*(AR4+T0),T2 ;AR4H:AR4=XAR4,CPU从XAR4处读取数据装入T2,然后AR4=AR4+T0销精镣品雕衔醛妒证贝代侮袄袒活支研孟硼济罕嫩嗜病恍殆疤起分椽位志第三章TMS320C55x指令系统第三章TMS320C55x指令系统例3-7,*(ARn+T0B)用于数据存储器寻址,设ARn工作在线性寻址状态。MOV*(AR4+T0B),T2 ;AR4H:AR4=XAR4,CPU从XAR4处读取数据装入T2,然后AR4=AR4+T0;在执行加法时,采用码位倒置算法愉湿揉荧锑柱廉簇衡族蹋裁折稽偷赛覆往吸口叁估嫩昆烈学徊邱始二决鞠第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式二、双AR间接寻址模式访问多数据空间双AR间接寻址模式用来:(1)执行访问两个16-bit数据存储器(XmemandYmem)的指令。

例如指令语法:ADDXmem,Ymem,ACx(2)并行执行两条指令,每条指令必须单独访问一个存储器SmemorLmem。例如指令语法:MOVSmem,dst||ANDSmem,src,dst提问:查本书附录分析指令功能。提问:查本书附录分析指令功能。颤坦啦谢寄靛箱芽垢诺居摔求和衅广儒河援珊讨析彬产溜维堪从会视粤脉第三章TMS320C55x指令系统第三章TMS320C55x指令系统表3-11双AR间接寻址方式操作数操作数指针修改方式访问数据类型*ARnARn值不变Smem,Lmem,Xmem,Ymem*ARn+地址产生后,ARn的值自增:对于16位操作数,ARn=ARn+1;对于32位操作数,ARn=ARn+2Smem,Lmem,Xmem,Ymem*ARn-地址产生后,ARn的值自减:对于16位操作数,ARn=ARn-1;对于32位操作数,ARn=ARn-2Smem,Lmem,Xmem,Ymem*(ARn+T0/AR0)地址产生后,T0或AR0中16位的有符号数加到ARn上:如果C54CM=0,则ARn=ARn+T0;如果C54CM=1,则ARn=ARn+AR0Smem,Lmem,Xmem,Ymem*(ARn-T0/AR0)地址产生后,ARn减去T0或AR0中16位的有符号数:如果C54CM=0,则ARn=ARn-T0;如果C54CM=1,则ARn=ARn-AR0Smem,Lmem,Xmem,Ymem*ARn(T0/AR0)ARn用作基地址则不变,T0或AR0中的16位有符号常数作为偏移地址如果C54CM=0,T0的值作为偏移地址;如果C54CM=1,AR0的值作为偏移地址Smem,Lmem,Xmem,Ymem*(ARn+T1)地址产生后,AR1加上T1中的16位有符号常数:ARn=ARn+T1Smem,Lmem,Xmem,Ymem*(ARn-T1)地址产生后,AR1减去T1中的16位有符号常数:ARn=ARn-T1Smem,Lmem,Xmem,Ymem凳处辆扩裙捻侮颁芯炳涩妓孺沟陋久瘩呜巍沫类默示窝塌特继孩催裸渤妊第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式三、CDP间接寻址模式CDP间接寻址模式使用系数数据寄存器CDP访问数据空间、寄存器位和I/O空间。CDP间接寻址操作数援索扒朱婿曲瘸屑宙判胯草晴漏澎驳昌感瑞暮昨掀泳亏野涂诗诞肠焦阵湖第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式三、CDP间接寻址模式指令实例:用

CDP间接寻址模式访问I/O空间语法:MOVSmem,dst语句:MOVport(*CDP),T2;I/O空间中的值(地址为CDP中的16-;bit数值)读入到T2中。指令实例:用CDP间接寻址模式访问数据空间语法:MOVSmem,dst语句:MOV(*CDP),T2;数据空间中的值(地址为XCDP中的23-;bit数值)读入到T2中。;CDPH:CDP=XCDP衙榆谆爽构奶诌喂皆古叉弃咬勒姆将孰蒲黎罩泌称沁度花阅审元喧霄耀叁第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.1.3间接寻址模式四、系数间接寻址模式系数间接寻址模式的地址产生过程与CDP间接寻址模式数据空间的地址产生过程一样。支持以下算术指令:FIR滤波、乘法、乘加、乘减、双乘加或双乘减。系数间接寻址模式功用:系数间接寻址模式主要是每个周期对3个存储器操作数操作的指令。其中两个操作数(Xmem和Ymem)用双AR间接寻址模式访问,第三个操作数Cmem用系数间接寻址模式访问。郧斜锤炎冗运莎静浴喝见玛宜掏祝嗣砖帽隐激估锡痔逻琴膀殉竖郑歼琶蓉第三章TMS320C55x指令系统第三章TMS320C55x指令系统四、系数间接寻址模式3.1.3间接寻址模式指令实例:系数间接寻址模式语法:MPYXmem,Cmem,ACx::MPYYmem,Cmem,ACy语句:MPY*AR0,*CDP,AC0;两个操作数(Xmem和Ymem)用;双AR间接寻址模式访问。::MPY*AR1,*CDP,AC1;系数数据Cmem采用系数间接寻;址,地址为CDPH:CDP=XCDP。指令寻址分析:CPU用XCDP处的系数乘以XAR0的值,并将结果存储到AC0中;同时,用同一个系数乘以XAR1的值,将结果存储到AC1中,不修改CDP的值。 指令说明:Cmem必须放在与Xmem和Ymem不同的存储器块里。 钟掠什仅硕洱吠星驻幽帮碾烈割塑皿捅鄙镑着邯囤贬挝铬诵玫骗斑串盅抚第三章TMS320C55x指令系统第三章TMS320C55x指令系统四、系数间接寻址模式3.1.3间接寻址模式系数间接寻址操作数图孩聊困餐戴述捂捂入筑啃弱览酗羚营渝伶别泌立摧陋阅康匀寸早涝支旱第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.2TMS320C55X的指令系统指令实例:MPY*AR0,*CDP,AC0::MPY*AR1,*CDP,AC1;隐含并行系数间接寻址方式一、C55X指令的并行执行(1)单指令中内置并行方式由一条指令同时执行两个不同的操作,通常用符号“::”来分割指令的两个部分,这种并行方式也称为隐含(内置)并行方式。泵闭堡激惕涣琶傈辆寥碌烟赚朽轿由椒租弱豺擦寞甸赣旧摧绅晚闹契杠痰第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.2TMS320C55X的指令系统指令实例:MPYM*AR1-,*CDP,AC1||XORAR2,T1;第一条指令在D单元执行乘法运算,第二条指令在A单元的ALU执行一个逻辑操作。一、C55X指令的并行执行(2)用户自定义的两条指令间的并行方式这类并行指令是用户或者C语言编译器定义的,是由两条指令同时并行执行两个操作,通常用符号“||”来分隔这两条指令。荫准窟疽拐粳题蕉栈减扛闲帽袱奖噬山缓熙垛沧括蜜搭沽主茧眼蚕写量阀第三章TMS320C55x指令系统第三章TMS320C55x指令系统3.2TMS320C55X的指令系统指令实例:MPYMT3=*AR3+,AC1,AC2||MOV#5,AR1;第一条指令隐含了内置并行方式;第二条指令是用户自定义的并行方式。一、C55X指令的并行执行(3)内置与用户自定义混合的并行方式。指令分析:MPYM[R][40][T3=][uns(]Xmem[)],[uns(]Ymem[)],ACx;ACx=M40(rnd(uns(Xmem)*uns(Ymem)))[,T3=Xmem]喻闷捆拢篡央唁榜才玄告答罗富锄虹坷分点辣愈嗅芝下名单拇野休砧冶瞻第三章TMS320C55x指令系统第三章TMS320C55x指令系统指令并行的规则两条指令的总长度不能超过6个字节在指令的执行过程中不存在操作器、地址产生单元、总线等资源冲突其中一条指令必须有并行使能位或两条指令符合软-双并行条件3.2TMS320C55X的指令系统一、C55X指令的并行执行京佬潘搪棕掣丈忧茵犀写副垄蜗无间败简珊肖归蝉蹿改斡英绢桨叶毖说抢第三章TMS320C55x指令系统第三章TMS320C55x指令系统不能使用并行方式的情况使用立即数寻址方式例如: *abs16(#k16);*(#k23);port(#k16); *ARn(K16);*+ARn(K16);*CDP(K16); *+CDP(K16)条件跳转、条件调用、中断、复位等程序控制指令例如: BCCP24,cond;CALLCCP24,cond; IDLE;INTRk5;RESET;TRAPk5使用下列指令或者操作修饰符例如: mmap();port();<instruction>.CR; <instruction>.LR寄菇储钨遍鹰悼柴夏偷谓讲化叭咕舰峰清诀烘辖鬃战坝恫叹媚恰宝苞傲句第三章TMS320C55x指令系统第三章TMS320C55x指令系统资源冲突C55x的资源运算器使用的操作器有:D单元的ALU、D单元的移位器、D单元的交换器、A单元的交换器、A单元的ALU和P单元地址产生单元两个数据地址(DA)产生单元、一个系数地址(CA)产生单元和一个堆栈地址(SA)产生单元只能使用给定数量的数据地址产生单元总线两个数据读(DR)总线、一个系数读(CA)总线、两个数据写(DW)总线、1个ACB总线(将D单元寄存器的内容传送给A单元和P单元的操作器)、一个KAB总线(立即数总线)和一个KDB总线(立即数总线)只能使用给定数量的总线馏仪土皿逮了兼糊低亥牵澎蹲私跃蜕蘸乏邻享孙肝宅私校延尘雌涧喊食株第三章TMS320C55x指令系统第三章TMS320C55x指令系统软-双并行条件两个存储器操作数必须是双AR间接寻址模式指令不能包含high_byte(Smem)和low_byte(Smem)指令不能读、写同一个存储器单元如果指令中的k4的值是0~8,就会改变XDP的值,所以,不能与加载DP的指令组成并行指令读重复计数寄存器(RPTC)指令不能和如下的任何一个单重复指令组成并行指令孩膜瞥埔仕剧笑窑优皿贸沮蛾堂拒缎疑各沁挖陆役置腔返还泰沪述娱虏钉第三章TMS320C55x指令系统第三章TMS320C55x指令系统算术运算指令位操作指令扩展辅助寄存器操作指令逻辑运算指令移动指令程序控制指令注:一条指令的属性包括:指令,执行的操作,是否有并行使能位,长度,周期,在流水线上的执行阶段以及执行的功能单元等。3.2TMS320C55X的指令系统二、TMS320C55XDSP的汇编指令获优漾恋审啦藉赎肥懂觉详弹横宵祷殿极么练夕阮双眺邯牵埃饲搏亨绥吝第三章TMS320C55x指令系统第三章TMS320C55x指令系统TMS320C55XDSP的汇编指令指令集中使用的术语、符号和缩写同毖烙件左炯狐尝晾拎揩韩调材砧疲鳃痴泊匿胸豹势胆胺沽奸黑淫疚明倍第三章TMS320C55x指令系统第三章TMS320C55x指令系统指令集中使用的运算符纠士右值雁翼嘲羚宵俱某恬宋爽眩贵澎汤挽肝唬炮犹陪蜜诵瓶瘫软善扬快第三章TMS320C55x指令系统第三章TMS320C55x指令系统算术运算指令加法指令加法指令有几点说明:如果目的操作数是累加器ACx,在D单元的ALU中进行运算操作;如果目的操作数是辅助或临时寄存器TAx,在A单元的ALU中进行运算操作;如果目的操作数是存储器(Smem),在D单元的ALU中进行运算操作;如果是移位指令(16位立即数移位除外),在D单元移位器中进行运算操作状态位影响指令执行的状态位有:CARRY,C54CM,M40,SATA,SATD,SXMD执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY状态位的含义见本书的附录C:TMS320C55X的状态寄存器。漫夯莲褒误料霜值政傻藉嫉吃迢鹅适慑吊犯号蠕歪拥醚胰嘛赴骆衰隔开悬第三章TMS320C55x指令系统第三章TMS320C55x指令系统加法指令

羹寅枝扳透融佰简渤叉卷雇号府蹦淄予迈驹齐跨贷岂庭炭汛报绕文酥洋事第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:ADD*AR3+,T0,T1;AR3间接寻址得到的内容与T0的内容相加,结果装入T1,并将AR3增1。执行前T00302330000EF00数据存储器0302hAR3T1CARRYT00303330022001EF00数据存储器0302hAR3T1CARRY执行后邯谭度男晒劫毯云拾冷抨蚂掸迭妖忠寸趟迪咏锌脐廷宋陆脏馒型慎畅挥兽第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:ADD*AR1<<T0,AC1,AC0;将由AR1寻址得到的内容左移T0位与AC1相加,结果装入AC0CARRY=0见仿真结果Carry受bit31影响!柬名铺函含源膏铂哭脑布舶斩械理昂述螟逆轧遍靠壁狐尹誊矮洽屠崩圣翁第三章TMS320C55x指令系统第三章TMS320C55x指令系统减法指令状态位影响指令执行的状态位有:CARRY,C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY指令篡沤翻容脱募隅悼诛旧茨赫纪凡套烬谤钙产箱晶孕墙叠枫绢丝炬魁奏杖债第三章TMS320C55x指令系统第三章TMS320C55x指令系统减法指令

芬机沛海陛菠骆帧讲住秆坚峭报支晰佃涧北滤晾悉壕很炳捐励赞关睛滩滁第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:SUBuns(*AR1),BORROW,AC0,AC1 将CARRY位求反,AC0减去由AR1寻址得到的 内容及CARRY的内容,并将结果装入AC1荧糟栗装淘启秃凉钙丙獭懦燕咽星凸喉动乐腑俺斌郡喳东丫惮候卿益灿窘第三章TMS320C55x指令系统第三章TMS320C55x指令系统条件减法指令SUBCSmem,[ACx,]ACy if((ACx–(Smem<<#15))>=0) ACy=(ACx–(Smem<<#15))<<#1+1 else ACy=ACx<<#1状态位影响指令执行的状态位有:SXMD。执行指令后会受影响的状态位:ACOVy,CARRY霞渗春逸恩招诌徐误会粕诞偶轻宋餐焰博例音捍荡惰增鸳装横兔段款税蔗第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:SUBC*AR1,AC0,AC1 如果(AC0–(*AR1)<<#15)>=0,则AC1=(AC0–(*AR1)<<#15)<<#1+1,否则AC1=AC0<<#1彝硕清块迸谅击株窟宪聂府般征龋珐核俱翅讲说凋耗撤馁沥烤符阂贵咸丁第三章TMS320C55x指令系统第三章TMS320C55x指令系统条件加减法指令状态位影响指令执行的状态位有:C54CM,M40,SATD,SXMD,TC1,TC2。执行指令后会受影响的状态位:ACOVy,CARRY咐仇乒蒜劫旨屠盂舍馈钱铁浩琳滤康碑述环斯枣屉觉各少公舶捆僧钳挟刽第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:ADDSUBCC*AR1,AC0,TC2,AC1 如果TC2=1,则AC1=AC0+(*AR1<<#16, 否则AC1=AC0-(*AR1)<<#16告官她脚爱仇瘤锹费择富遏唾画室灵捻勤授罐厚戴舱蠕诺旨概锁锹咬舜臀第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘法指令指令—在D单元的MAC中完成操作状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD执行指令后会受影响的状态位:ACOVx,ACOVy炭桔烬俗汗橇贩斜子鞘飘努缔熬捅芝蹿告庚空呐苞狭吐赔抄冉照隙绵峙血第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘法指令

颊刚哀帧罚园簇诫脏违愁李宿铸娩黔砒啥床教通重胯敛逾渭入拔灯用袋奶第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:MPYAC1,AC0;AC1=AC0*AC1陵瘸摘叔浇饥翌流搁畴站溺园充贱捐窍顿捣龟堡站摸冉蛀独鱼默后洪苞琅第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘加指令指令—在D单元的MAC中完成操作状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy照撩曙宵啪析敬壶齐瘟校域抓焦滞惜仍诀聘森繁兄召庭抢傅法趋手口醚唉第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘加指令赔豁崖烤弟钝妇漳患受赫以质过窑蛇剁狈鉴阜嘱仓喳搪伞汲夷悬宴移磁莲第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例1:MACMR*AR1,*CDP,AC2 AC2=AC2+(*AR1)*(*CDP)淄绿烩裁橙柿媒伞汪抉淌须枝乐踌抵蔓乔母铲争瓷烫靡瘩识必吭诉牡恍缓第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例2:MACMRuns(*AR2+),uns(*AR3+),AC3 AC3=(*AR2)+(*AR3)+AC3,AR2=AR2+1, AR3=AR3+1

哗佑潭梦星躁脚澄囚露吊膨皮田宛噬曙第曲象静累授附洽膳拨蹬啤轴倪望第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘减指令指令—在D单元的MAC中完成操作状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy拖聪固攒持淫闽耕星逛负控绥沧转锯滤颖娩铂储纪烦愚小耀愧瓮匆闲揽升第三章TMS320C55x指令系统第三章TMS320C55x指令系统乘减指令副盲保芦浆炔瞩佬哑锡构簧似阐哉剃究孩笋乳盆位乐亩醇省七旺应杰孜冯第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:MASRT1,AC0,AC1 AC1=AC1-AC0*T1李休膳旋晓廖摸艾宇衍凿广强摧宁希汽迂万清眠钢父迈倍童收俞谦步喊秒第三章TMS320C55x指令系统第三章TMS320C55x指令系统双乘加/减指令指令—利用D单元的两个MAC在一个周期内同时执行两个乘法或乘加/减运算状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy非杂瓷荆躬斗眠昧叶然狠劲吵踪屑戮飞眷谨腺忆灾擂辐蠕隶撇耪蝉瞒铃根第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例: MASR40uns(*AR0),uns(*CDP),AC0 ::MACR40uns(*AR1),uns(*CDP),AC1 ;AC0=AC0-uns(*AR0)*uns(*CDP) ;AC1=AC1-uns(*AR1)*uns(*CDP)娠抱秽苞立劣屉壬哀癌仪牺禹紊埋冬凝哉痊声涛窃巍压虎悦态扯偿段肇秘第三章TMS320C55x指令系统第三章TMS320C55x指令系统双16位算术指令指令—利用D单元中的ALU在一个周期内完成两个并行的算术运算,包括一加一减、一减一加、两个加法或两个减法状态位影响指令执行的状态位有:C54CM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY丫辨谣阳璃棵械刽治凳朱磕俞迷织矮啊耸知糠罚辙湾莉谢氖沥丧赞巡苹栈第三章TMS320C55x指令系统第三章TMS320C55x指令系统双16位算术指令埠眷碾则初瑚溢砂黑袜芍庶据啪捍述侈撬沮舰巨驹箱钒班喳鸥晌扰硫嘿润第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:ADDSUBT1,*AR1,AC1 ;AC1(39-16)=(*AR1)+T1 ;||AC1(15-0)=(*AR1)-T1沽训恫线轰箭脯忿旅钾汇攫矮妖锻舞蓖际欲绊痈隧者合搁吏虎怯铸袱巾秒第三章TMS320C55x指令系统第三章TMS320C55x指令系统比较和选择极值指令指令—在D单元的ALU中完成两个并行16位极值选择操作和一个40位极值选择操作状态位影响指令执行的状态位有:C54CM,SATD。执行指令后会受影响的状态位:ACOVw,CARRY衷真戌蜗鞠胎罢粤崖掀豺陇雨脉吸娄析遗桃怂蚌澎家湃瞅服暴泰出遥或团第三章TMS320C55x指令系统第三章TMS320C55x指令系统比较和选择极值指令稗华萄瓤世堪竭兔亥畜衔斑疯碱蔬董董限股讨候笺苏紊肺畏彬扔邵赠鸽省第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:MAXDIFFAC0,AC1,AC2,AC1豆撞莹殿礁肾毒踪绑刹喻臣母摆年咎妇派圃弄菌噪广靠苫绽短锤垛塑惨辉第三章TMS320C55x指令系统第三章TMS320C55x指令系统最大/最小值指令指令MAX[src,]dst;dst=max(src,dst)MIN[src,]dst;dst=min(src,dst)状态位影响指令执行的状态位有:C54CM,M40,SXMD。执行指令后会受影响的状态位:CARRY影损卧菜接养敖岔裔址眩肩芳厚姻鳖事缨坝譬竿摆刹跪沈蚊痞舔淫晌淮乔第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例1:MAXAC2,AC1 ;由于(AC2)<(AC1),所以AC1保 持不变且CARRY状态位置1举例2:MINAC1,T1;由于T1<AC1(15-0),所以T1的内容保持不变且将CARRY状态位置1摹晦俐峡凋泵扳储才浮掂嘿盛辅缨晓迂篡幼罗彩光袄野雄刘自侯歪芭箱璃第三章TMS320C55x指令系统第三章TMS320C55x指令系统存储器比较指令指令CMPSmem==K16,TCx ;IfSmem==K16thenTCx=1elseTCx=0状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx举例CMP*AR1+==#400h,TC1菠氯切刺罩浙林蔷钉汉甚捉交拥铅衣鞍升疑蔷柠稚烧勘粹规掳帘悲辰甚芋第三章TMS320C55x指令系统第三章TMS320C55x指令系统寄存器比较指令指令—在D单元和A单元的ALU中完成两个累加器、辅助寄存器或临时寄存器的比较,若累加器与辅助寄存器或临时寄存器比较,在A单元将ACx(15-0)与TAx进行比较状态位影响指令执行的状态位有:C54CM,M40,TCy。执行指令后会受影响的状态位:TCx俗袒召铃蛮梧罩碎逾呆循语退浙交粟畅挺勋剐瓜谎犁雇镁励晓敝梭盼舒勘第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例1:CMPAC1==T1,TC1 ;由于AC1(15-0)=T1,所以将TC1置1汞秋眼贞沦闪涯例柑梗诣楔脖军歧倚传汗镀沈扣鲁锯炭猎撼拿嘉窖限胡搞第三章TMS320C55x指令系统第三章TMS320C55x指令系统条件移位指令指令SFTCCACx,TCx;IfACx(39–0)=0thenTCx=1;IfACx(31–0)hastwosignbitsthen;ACx=ACx(31–0)<<#1andTCx=0;elseTCx=1状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx举例SFTCCAC0,TC1彤瑰窗秧忻筛慧吐隶泞棉租嘘哲三壬黎链漫富趟警挺枫仙傅脸供敌跃钩革第三章TMS320C55x指令系统第三章TMS320C55x指令系统带符号移位指令指令—移位指令中的移位值由立即数、SHIFTW或Tx内容确定状态位影响指令执行的状态位有:C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY纬延芬犹逊迹火卒鹊冶吓暗怕阐蝉毙河吭皋殴喷坎映薪陌蹋舰泵汾邦蛮亏第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例1:SFTST2,#1;T2=T2<<#1举例2:SFTSCAC0,#–5,AC1 ;AC1=AC0>>5,移出的位装入CARRY冯午了批素嗓绊嚼畦刘罚斗茫举射匈咎专隶姚设界竣灸贿衡孟桶梢喝厨见第三章TMS320C55x指令系统第三章TMS320C55x指令系统修改辅助寄存器(MAR)指令指令状态位影响指令执行的状态位有:ST2-55执行指令后会受影响的状态位:无举例AADD#255,T0;T0=T0+255AMOV#255,AR0;AR0=255AMAR*AR3+;AR3=AR3+1悉嗽懈韵耘喝饲彝数箭联打填迈鲜肘履至巾皮伍烯箍枚赎维瓤尼皂玄稀烫第三章TMS320C55x指令系统第三章TMS320C55x指令系统修改堆栈指针指令指令 AADDK8,SP;SP=SP+K8状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:无。举例 AADD#127,SP;SP=SP+127琳纸裂叼粱膏饥善蕉耿孙钞一姥滓硅怖蔬静席甚丝答旷啡手吾腺马涟驰殷第三章TMS320C55x指令系统第三章TMS320C55x指令系统隐含并行指令指令加-存储、乘加/减-存储、加/减-存储、装载-存储和乘加/减-装载状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY彼赛钧碑璃筷佃雹匝街舆茁僻氛挖并鳖晦蛊诺垦粹肌裸紊鹤换酌路兰挝匡第三章TMS320C55x指令系统第三章TMS320C55x指令系统隐含并行指令懊涂门闲脂纺偶苍任暇就烷氧服锥瘤醇塌含概疏劝迟寻夫思栓迷甥秘逢佩第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:MPYMR*AR0+,T0,AC1 ::MOVHI(AC0<<T2),*AR1+ ;AC1=(*AR0)*T0,因为FRCT=1,AC1=rnd(AC1*2), ;AC0=AC0<<T2,(*AR1)=AC0(31-16),AR1=AR1+1, ;AR0=AR0+1嘶焊全晃浩寿艺史菠歇漂袱协冀邵夫贵庙截脓浅凹荔栓桓暖秩兑驳廖旋衍第三章TMS320C55x指令系统第三章TMS320C55x指令系统绝对距离指令指令以并行方式完成两个操作,一个在D单元的MAC中,另一个在D单元的ALU中ABDSTXmem,Ymem,ACx,ACy;ACy=ACy+|HI(ACx)|;ACx=(Xmem<<#16)–(Ymem<<#16)状态位影响指令执行的状态位有:FRCT,C54CM,M40,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY鸽君柴犹描拿调渗炼芭偿造帖铜锭黑脚驰你吧晶食噪慨窍敝炙暖诱韩寸既第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:ABDST*AR0+,*AR1,AC0,AC1 ;AC1=AC1+|HI(AC0)| ;AC0=((*AR0)<<#16)–((*AR1)<<#16) ;AR0=AR0+1闽版选梨钢阿夸峪瀑呸扁婶样旺刘节胃獭无甲布狡劣习士判皋快涵贼和豢第三章TMS320C55x指令系统第三章TMS320C55x指令系统绝对值指令指令ABS[src,]dst;dst=|src|状态位影响指令执行的状态位有:C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,CARRY举例ABSAR1,AC1;AC1=|AR1|骨含磅恩机晴礁陆蹲猾绢阔阴蛙蜕假注耽晦甸钝父曹垄寿题繁秩爱含队佛第三章TMS320C55x指令系统第三章TMS320C55x指令系统FIR滤波指令指令FIRSADDXmem,Ymem,Cmem,ACx,ACy;ACy=ACy+(ACx(32-16)*Cmem) ;ACx=(Xmem<<#16)+(Ymem<<#16)FIRSSUBXmem,Ymem,Cmem,ACx,ACy;ACy=ACy+(ACx(32-16)*Cmem) ;ACx=(Xmem<<#16)–(Ymem<<#16)状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY升卫呈把裂宙犬狈龄之疼理卞爱浚溶撩权蝇苑拼哼苟序场适疲耽迄幻馏辞第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:FIRSADD*AR0,*AR1,*CDP,AC0,AC1 ;AC1=AC1+AC0(32-16)*(*CDP) ;AC0=((*AR0)<<#16)+((*AR1)<<#16)钥欢披究箱蒲剧穷援迸警睬关镍言锈仇析肇疆闪蜀论暑咎禄彦茶呼佐辽酶第三章TMS320C55x指令系统第三章TMS320C55x指令系统最小均方(LMS)指令指令LMSXmem,Ymem,ACx,ACy ;ACy=ACy+(Xmem*Ymem) ;::ACx=rnd(ACx+(Xmem<<#16))状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY泽列纵涌婿巍拇舟蔗颇骋衣晓丧桥舜仪罩矾厌飘馒抓害阅拌耀杜抱獭别蜕第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:LMS*AR0,*AR1,AC0,AC1 ;AC1=AC1+(*AR0)*(*AR1) ;::AC0=rnd(AC0+((*AR0)<<#16))冈丢号陵音轩谗跨拓吹盔芥乖努溜输坤躺盈嫌斩渣嫉将它荷脱不非义呀剑第三章TMS320C55x指令系统第三章TMS320C55x指令系统补码指令指令NEG[src,]dst;dst=–src状态位影响指令执行的状态位有:M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,CARRY举例NEGAC1,AC0;AC0=-AC1供泞氟易凶寒蹦沥干撂频尊兹刮鸡溯芋痛司枣脆僧滚诡组那音隆摧辫堂绘第三章TMS320C55x指令系统第三章TMS320C55x指令系统归一化指令指令MANTACx,ACy;ACy=mant(ACx),::NEXPACx,Tx;Tx=–exp(ACx)EXPACx,Tx;Tx=exp(ACx)状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:无举例MANTAC0,AC1;AC1等于AC0的尾数,即将AC0右移与32位带符号数对齐后的值;::NEXPAC0,T1;T1等于将AC0的MSB左移与32位带符号数对齐所移位的次数值榆函啥爵拟紧丘狮非奈偶牺厘搐化扮眶黑嫂风萝影胖栏柞平译焚液亡纯让第三章TMS320C55x指令系统第三章TMS320C55x指令系统饱和和舍入指令指令SAT[R][ACx,]ACy;ACy=saturate(rnd(ACx))ROUND[ACx,]ACy;ACy=rnd(ACx)状态位影响指令执行的状态位有:C54CM,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVy速勉钎联硅镑蕾吗捡崩卿淤诉兔竞森毖螟充戍乃搏位饭恤群缓吸挑傍姬忘第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例1:ROUNDAC0,AC1 ;AC1=AC0+8000h,且16个最低有效位清0举例2:SATAC0,AC1 ;将32位的AC0饱和,将饱和后的值FF80000000装入AC1掉郁匆钨帆挟砷亚孪仆事诣脱赋替墒酞罪拷导础嘲淋晋操马暮奸杯第贾铀第三章TMS320C55x指令系统第三章TMS320C55x指令系统平方差指令指令SQDSTXmem,Ymem,ACx,ACy ;ACy=ACy+(ACx(32-16)*ACx(32-16)) ;ACx=(Xmem<<#16)–(Ymem<<#16)状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY屡猎销鞍竟具会棘饭旦活陨洗夜兑籽窜甩逢丢羌赂攒昧校昆漓掇隆妥寸邦第三章TMS320C55x指令系统第三章TMS320C55x指令系统举例:SQDST*AR0,*AR1,AC0,AC1

温馨提示

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

评论

0/150

提交评论