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

下载本文档

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

文档简介

TMS320C55x的指令系统

寻址方式TMS320C55x的指令系统

7/29/20231东华理工大学机械与电子工程学院指令中使用的语法元素符号如下:Smem:来自数据、I/O空间或存储器映射寄存器的16bit数据;Lmem:来自数据空间或存储器映射寄存器的32bit数据;Xmem&Ymem:同时来自数据空间的两个16bit数据;Cmem:来自内部数据空间的16bit数据;Baddr:代表累加器AC0-AC3、辅助寄存器AR0-AR7、暂存器T0-T3的位域,对位域的置1、清0、测试、求补等位运算用到该元素。(Bit-Address)7/29/20232东华理工大学机械与电子工程学院指令中涉及的寄存器如下:1.累加器(AC0-AC340bitACxG:ACxH:ACxL)2.扩展数据页寄存器(XDP,DPH,DP)

XDP的高7位是DPH,DP是数据页寄存器。DPH和DP都可作为存储器映射寄存器(MMR)访问,但是XDP不可作为MMR访问。7/29/20233东华理工大学机械与电子工程学院3.辅助寄存器(AR0-7)与扩展辅助寄存器(XAR0-7)

ARn可作为存储器映射寄存器(MMR)访问;

ARnH是扩展辅助寄存器的高位,不可单独访问,只能通过访问XARn进行。

XARn不是存储器映射寄存器。7/29/20234东华理工大学机械与电子工程学院地址寄存器名位域000000/1hIER0/IF46hIER1/IFR110-00000/02/4B/03/04hST0/1/2/3_5515-0000006/7hST0/ST1(C54)15-0000008/9/AhAC0L/H/G15-0/16-31/39-3200000B/C/DhAC1L/H/G15-0/16-31/39-32000024h-26hAC2L/H/G15-0/16-31/39-32000028h-2AhAC3L/H/G15-0/16-31/39-3200000F/38hTRN0/1(传输)15-000001Dh(C54兼容)PMST状态寄存器315-000001Eh(C54兼容)

XPC扩展程序计数器7-0000020h-23(0E)h

T0-T3(T3第2地址)15-0000049h-4Ah

IVPD/IVPH:DSP/主机中断向量指针15-0000044hRPTC:单循环计数器15-0000047-48DBIER0-1:调试中断使能寄存器0-115-2/10-04.常用存储器映射寄存器(MMR)地址表(00h-5Fh)7/29/20235东华理工大学机械与电子工程学院地址寄存器名位域000010h-17hAR0-715-0000018h/4Dh

SP(数据堆栈指针)15-000002Bh

DPH扩展数据页高字6-000002Eh

DP数据页寄存器15-000002Fh

PDP外设数据页寄存器8-000004Ch

SSP系统堆栈指针15-000004Eh

SPH扩展堆栈指针高字6-0000027h

CDP系数数据指针15-000004Fh

CDPH系数数据指针高字6-0000019/30/47h

BK03/BK47/BKC:CDP循环缓冲区大小寄存器15-000001A/39h

BRC0/BRC1块重复计数器0/115-000001B/1Ch

RSA0L/REA0L块重复首/尾地址寄存器的低字15-00000/32h-35hBSA01/23/45/67:ARn循环缓冲区首地址寄存器(AR0-1,2-3,4-5,6-7)15-0000036h

BSAC:CDP的循环缓冲区首地址寄存器15-000003C-3DhRSA0H(23-16)/RSA0L:块重复首地址寄存器015-000003E-3FhREA0H(23-16)/REA0L:块重复末地址寄存器015-07/29/20236东华理工大学机械与电子工程学院寻址方式寻址方式是指如何指定指令和操作数所在存储空间的地址。C55xDSP支持三种寻址模式绝对寻址:模式指令中的常数作为地址或部分地址完成寻址,共有三种方式:K16,K23,I/O;直接寻址模式:使用地址的偏移地址寻址,共有四种方式:DP(ST1-55CPL=0),SP(ST1-55CPL=1),寄存器位,PDP(外设数据页指针);间接寻址模式:使用指针完成寻址,共有四种方式:AR,双AR,CDP,系数间接寻址。7/29/20237东华理工大学机械与电子工程学院绝对寻址模式

k16绝对寻址其操作数为*abs16(#k16),[k16:16位的无符号常数]将7位的寄存器DPH和k16级联形成一个23位的地址,用于对数据空间的访问

K16绝对寻址模式

7/29/20238东华理工大学机械与电子工程学院k23绝对寻址操作数为*(#k23),[k23:23位的无符号常数]I/O绝对寻址操作数是*port(#k16),[k16:16位无符号常数]使用助记符指令,操作数是port(#k16)(操作数前没有*)

k23绝对寻址模式

I/O绝对寻址7/29/20239东华理工大学机械与电子工程学院直接寻址方式描述DP直接寻址用DPH和DP合并的扩展数据页指针寻址存储空间和存储器映射寄存器。

(ST1_55CPL=0)SP直接寻址用SPH和SP合并为扩展堆栈指针寻址存储空间中的堆栈。

(ST1_55CPL=1)寄存器位直接寻址用偏移地址指定一个位地址,用于寻址特定寄存器中的一个或两个相邻的位,与CPL无关。PDP直接寻址用PDP和一个偏移地址寻址I/O空间,与CPL无关。DP:DataPagePointer

SP:dataStackPointer

PDP:

PeripheralDatapagePointer直接寻址方式需使用DP、SP、PDP、ARn。直接寻址模式

7/29/202310东华理工大学机械与电子工程学院高7位由DPH提供,用来确定主数据页低16位由两部分组成:DP7位偏移量(Doffset)DP直接寻址模式

DP直接寻址7/29/202311东华理工大学机械与电子工程学院

SP直接寻址

SPH确定高7位地址16位地址由SP和7位偏移量决定,偏移量范围是0~127由SPH和SP构成了扩展数据堆栈指针XSP

SP直接寻址模式7/29/202312东华理工大学机械与电子工程学院寄存器位寻址

操作数是@bitoffset,为寄存器最低位开始的偏移值只有寄存器的位测试、置位、清零、取反指令支持这种寻址模式PDP直接寻址(64K×16位I/O空间,128字/512页,PDP的9位)

PDP直接寻址模式

7/29/202313东华理工大学机械与电子工程学院间接寻址方式寻址方式描述AR间接寻址(AuxiliaryRegister)

使用AR0-AR7中的任一寄存器访问数据。CPU使用辅助寄存器产生地址的方式取决于访问数据的来源:数据空间、存储器映射寄存器(MMRs)、I/O空间或是独立的寄存器位。双AR间接寻址

与AR间接寻址相似,但借助两个辅助寄存器,可同时访问两个或更多的数据。CDP间接寻址(CoefficientDataPointer)

使用系数数据指针(CDP)访问数据。CPU使用CDP产生地址的方式取决于访问数据的来源:数据空间,MMR,I/O或是独立的寄存器位。系数间接寻址(coefficient)

与CDP间接寻址方式相似,它可以在访问数据空间某一系数的同时,借助两个辅助寄存器(双AR)可在数据空间访问另外两个数据。CPU支持的间接寻址方式有4种,都支持线性/循环寻址7/29/202314东华理工大学机械与电子工程学院间接寻址模式AR间接寻址模式

通过一个辅助寄存器ARn(n=0~7)访问数据空间ST2-55的ARMS位决定AR间接寻址的操作类型ARMS=0,DSP模式:CPU提供增强应用的高效执行功能ARMS=1,控制模式:CPU能够优化代码的长度AR间接寻址DSP模式7/29/202315东华理工大学机械与电子工程学院双AR间接寻址模式通过辅助寄存器(AR0~AR7)同时访问两个数据存储单元实现功能:执行一条可完成两个16位数据空间访问的指令X/Ymen

并行执行两条指令

,每条指令访问一个存储数据S/Lmen

双AR间接寻址操作数

7/29/202316东华理工大学机械与电子工程学院CDP间接寻址模式使用系数数据指针(CDP)对数据空间、寄存器位和I/O空间进行访问CDP间接寻址操作数7/29/202317东华理工大学机械与电子工程学院系数间接寻址模式支持以下算术指令:FIR滤波乘法乘加乘减双乘加或双乘减

系数间接寻址操作数7/29/202318东华理工大学机械与电子工程学院3.2.1C55x指令的并行执行指令并行的特征

单指令中内置并行方式—隐含并行方式

例如:

MPY*AR0,*CDP,AC0::MPY*AR1,*CDP,AC1用户自定义的两条指令间的并行方式

例如:

MPYM*AR1–,*CDP,AC1||XORAR2,T1内置与用户自定义混合的并行方式例如:

MPYMT3=*AR3+,AC1,AC2||MOV#5,AR1

指令并行的规则两条指令的总长度不能超过6个字节;在指令的执行过程中不存在操作器、地址产生单元、总线等资源冲突;其中一条指令必须有并行使能位或两条指令符合软-双并行条件。7/29/202319东华理工大学机械与电子工程学院不能使用并行方式的情况

使用立即数寻址方式例如:

*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>.LR7/29/202320东华理工大学机械与电子工程学院资源冲突C55x的资源运算器可使用的操作器有:D单元的ALU、D单元的移位器、D单元的交换器、A单元的交换器、A单元的ALU和P单元。地址产生单元两个数据地址(DA)产生单元、一个系数地址(CA)产生单元和一个堆栈地址(SA)产生单元。只能使用给定数量的数据地址产生单元。总线两个数据读(DR)总线、一个系数读(CA)总线、两个数据写(DW)总线、1个ACB总线(将D单元寄存器的内容传送给A单元和P单元的操作器)、一个KAB总线(立即数总线)和一个KDB总线(立即数总线)只能使用给定数量的总线7/29/202321东华理工大学机械与电子工程学院软-双并行条件

两个存储器操作数必须是双AR间接寻址模式指令不能包含high_byte(Smem)和low_byte(Smem)

指令不能读、写同一个存储器单元如果指令中的k4的值是0~8,就会改变XDP

的值,所以,不能与加载DP的指令组成并行指令读重复计数寄存器(RPTC)指令不能和如下的任何一个单重复指令组成并行指令

RPT,RPTADD,RPTSUB,RPTCC。7/29/202322东华理工大学机械与电子工程学院3.2.2TMS320C55XDSP的汇编指令指令集中使用的术语、符号和缩写7/29/202323东华理工大学机械与电子工程学院指令集中使用的运算符7/29/202324东华理工大学机械与电子工程学院TMS320C55x指令集按操作类型分类算术运算指令位操作指令扩展辅助寄存器操作指令逻辑运算指令移动指令程序控制指令注:一条指令的属性包括:指令,执行的操作,是否有并行使能位,长度,周期,在流水线上的执行阶段以及执行的功能单元等。

7/29/202325东华理工大学机械与电子工程学院算术运算指令加法指令

加法指令有几点说明:如果目的操作数是累加器ACx,在D单元的ALU中进行运算操作;如果目的操作数是辅助或临时寄存器TAx,在A单元的ALU中进行运算操作;如果目的操作数是存储器(Smem),在D单元的ALU中进行运算操作;如果是移位指令(16位立即数移位除外),在D单元移位器中进行运算操作状态位影响指令执行的状态位有:CARRY,C54CM,M40,SATA,SATD,SXMD执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202326东华理工大学机械与电子工程学院加法指令

7/29/202327东华理工大学机械与电子工程学院举例:

ADD*AR3+,T0,T1;AR3间接寻址得到的内容与T0的内容相加,结果装入T1,并将AR3增1。7/29/202328东华理工大学机械与电子工程学院举例:

ADD*AR1<<T0,AC1,AC0;将由AR1寻址得到的内容左移T0位与AC1相加,结果装入AC0。7/29/202329东华理工大学机械与电子工程学院减法指令状态位影响指令执行的状态位有:CARRY,C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY指令7/29/202330东华理工大学机械与电子工程学院减法指令

7/29/202331东华理工大学机械与电子工程学院举例:

SUBuns(*AR1),BORROW,AC0,AC1将CARRY位求反,AC0减去由AR1寻址得到的内容及CARRY的内容,并将结果装入AC1。

7/29/202332东华理工大学机械与电子工程学院条件减法指令SUBCSmem,[ACx,]ACy if((ACx–(Smem<<#15))>=0)

ACy=(ACx–(Smem<<#15))<<#1+1 else

ACy=ACx<<#1状态位影响指令执行的状态位有:SXMD。执行指令后会受影响的状态位:ACOVy,CARRY7/29/202333东华理工大学机械与电子工程学院举例:

SUBC*AR1,AC0,AC1

如果(AC0–(*AR1)<<#15)>=0,则AC1=(AC0–(*AR1)<<#15)<<#1+1,否则AC1=AC0<<#17/29/202334东华理工大学机械与电子工程学院条件加减法指令状态位影响指令执行的状态位有:C54CM,M40,SATD,SXMD,TC1,TC2。执行指令后会受影响的状态位:ACOVy,CARRY7/29/202335东华理工大学机械与电子工程学院举例:

ADDSUBCC*AR1,AC0,TC2,AC1

如果TC2=1,则AC1=AC0+(*AR1<<#16, 否则AC1=AC0-(*AR1)<<#167/29/202336东华理工大学机械与电子工程学院乘法指令指令在D单元的MAC中完成操作

状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD执行指令后会受影响的状态位:ACOVx,ACOVy7/29/202337东华理工大学机械与电子工程学院乘法指令

7/29/202338东华理工大学机械与电子工程学院举例:

MPYAC1,AC0;AC1=AC0*AC17/29/202339东华理工大学机械与电子工程学院乘加指令指令在D单元的MAC中完成操作

状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy

7/29/202340东华理工大学机械与电子工程学院乘加指令7/29/202341东华理工大学机械与电子工程学院举例1:

MACMR*AR1,*CDP,AC2 AC2=AC2+(*AR1)*(*CDP)7/29/202342东华理工大学机械与电子工程学院举例2:

MACMRuns(*AR2+),uns(*AR3+),AC3 AC3=(*AR2)+(*AR3)+AC3,

AR2=AR2+1,AR3=AR3+1

7/29/202343东华理工大学机械与电子工程学院乘减指令指令在D单元的MAC中完成操作

状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy

7/29/202344东华理工大学机械与电子工程学院乘减指令

7/29/202345东华理工大学机械与电子工程学院举例:

MASRT1,AC0,AC1 AC1=AC1-AC0*T17/29/202346东华理工大学机械与电子工程学院双乘加/减指令指令—利用D单元的两个MAC在一个周期内同时执行两个乘法或乘加/减运算状态位影响指令执行的状态位有:FRCT,SMUL,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVx,ACOVy

7/29/202347东华理工大学机械与电子工程学院举例:

MASR40uns(*AR0),uns(*CDP),AC0 ::MACR40uns(*AR1),uns(*CDP),AC1

;AC0=AC0-uns(*AR0)*uns(*CDP) ;AC1=AC1-uns(*AR1)*uns(*CDP)7/29/202348东华理工大学机械与电子工程学院双16位算术指令指令—利用D单元中的ALU在一个周期内完成两个并行的算术运算,包括一加一减、一减一加、两个加法或两个减法状态位影响指令执行的状态位有:C54CM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202349东华理工大学机械与电子工程学院双16位算术指令7/29/202350东华理工大学机械与电子工程学院举例:

ADDSUBT1,*AR1,AC1

;AC1(39-16)=(*AR1)+T1

;||AC1(15-0)=(*AR1)-T17/29/202351东华理工大学机械与电子工程学院比较和选择极值指令指令—在D单元的ALU中完成两个并行16位极值选择操作和一个40位极值选择操作状态位影响指令执行的状态位有:C54CM,SATD。执行指令后会受影响的状态位:ACOVw,CARRY7/29/202352东华理工大学机械与电子工程学院比较和选择极值指令7/29/202353东华理工大学机械与电子工程学院举例:

MAXDIFFAC0,AC1,AC2,AC17/29/202354东华理工大学机械与电子工程学院最大/最小值指令指令MAX[src,]dst;dst=max(src,dst)MIN[src,]dst;dst=min(src,dst)状态位影响指令执行的状态位有:C54CM,M40,SXMD。执行指令后会受影响的状态位:CARRY7/29/202355东华理工大学机械与电子工程学院举例1:

MAXAC2,AC1

;由于(AC2)<(AC1),所以AC1保 持不变且CARRY状态位置1举例2:

MINAC1,T1;由于T1<AC1(15-0),所以T1的内容保持不变且将CARRY状态位置1

7/29/202356东华理工大学机械与电子工程学院存储器比较指令指令CMPSmem==K16,TCx

;IfSmem==K16thenTCx=1elseTCx=0状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx举例CMP*AR1+==#400h,TC17/29/202357东华理工大学机械与电子工程学院寄存器比较指令指令—在D单元和A单元的ALU中完成两个累加器、辅助寄存器或临时寄存器的比较,若累加器与辅助寄存器或临时寄存器比较,在A单元将ACx(15-0)与TAx进行比较状态位影响指令执行的状态位有:C54CM,M40,TCy。执行指令后会受影响的状态位:TCx

7/29/202358东华理工大学机械与电子工程学院举例1:

CMPAC1==T1,TC1

;由于AC1(15-0)=T1,所以将TC1置17/29/202359东华理工大学机械与电子工程学院条件移位指令指令SFTCCACx,TCx

;IfACx(39–0)=0thenTCx=1;IfACx(31–0)hastwosignbitsthen;ACx=ACx(31–0)<<#1andTCx=0;elseTCx=1状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

举例SFTCCAC0,TC17/29/202360东华理工大学机械与电子工程学院带符号移位指令指令—移位指令中的移位值由立即数、SHIFTW或Tx内容确定状态位影响指令执行的状态位有:C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202361东华理工大学机械与电子工程学院举例1:

SFTST2,#1;T2=T2<<#1举例2:

SFTSCAC0,#–5,AC1

;AC1=AC0>>5,移出的位装入CARRY

7/29/202362东华理工大学机械与电子工程学院修改辅助寄存器(MAR)指令指令状态位影响指令执行的状态位有:ST2-55执行指令后会受影响的状态位:无举例AADD#255,T0;T0=T0+255AMOV#255,AR0;AR0=255AMAR*AR3+;AR3=AR3+17/29/202363东华理工大学机械与电子工程学院修改堆栈指针指令指令

AADDK8,SP;SP=SP+K8

状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:无。举例

AADD#127,SP;SP=SP+1277/29/202364东华理工大学机械与电子工程学院隐含并行指令指令加-存储、乘加/减-存储、加/减-存储、装载-存储和乘加/减-装载状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202365东华理工大学机械与电子工程学院隐含并行指令

7/29/202366东华理工大学机械与电子工程学院举例:

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

7/29/202367东华理工大学机械与电子工程学院绝对距离指令指令以并行方式完成两个操作,一个在D单元的MAC中,另一个在D单元的ALU中ABDSTXmem,Ymem,ACx,ACy

;ACy=ACy+|HI(ACx)|;ACx=(Xmem<<#16)–(Ymem<<#16)状态位影响指令执行的状态位有:FRCT,C54CM,M40,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202368东华理工大学机械与电子工程学院举例:

ABDST*AR0+,*AR1,AC0,AC1

;AC1=AC1+|HI(AC0)|

;AC0=((*AR0)<<#16)–((*AR1)<<#16) ;AR0=AR0+17/29/202369东华理工大学机械与电子工程学院绝对值指令指令ABS[src,]dst

;dst=|src|状态位影响指令执行的状态位有:C54CM,M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,CARRY举例

ABSAR1,AC1;AC1=|AR1|7/29/202370东华理工大学机械与电子工程学院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,CARRY7/29/202371东华理工大学机械与电子工程学院举例:

FIRSADD*AR0,*AR1,*CDP,AC0,AC1

;AC1=AC1+AC0(32-16)*(*CDP)

;AC0=((*AR0)<<#16)+((*AR1)<<#16)7/29/202372东华理工大学机械与电子工程学院最小均方(LMS)指令指令LMSXmem,Ymem,ACx,ACy

;ACy=ACy+(Xmem*Ymem)

;::ACx=rnd(ACx+(Xmem<<#16))状态位影响指令执行的状态位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,ACOVy,CARRY7/29/202373东华理工大学机械与电子工程学院举例:

LMS*AR0,*AR1,AC0,AC1

;AC1=AC1+(*AR0)*(*AR1)

;::AC0=rnd(AC0+((*AR0)<<#16))7/29/202374东华理工大学机械与电子工程学院补码指令指令NEG[src,]dst

;dst=–src

状态位影响指令执行的状态位有:M40,SATA,SATD,SXMD。执行指令后会受影响的状态位:ACOVx,CARRY举例

NEGAC1,AC0;AC0=-AC1

7/29/202375东华理工大学机械与电子工程学院归一化指令指令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位带符号数对齐所移位的次数值7/29/202376东华理工大学机械与电子工程学院饱和和舍入指令指令SAT[R][ACx,]ACy

;ACy=saturate(rnd(ACx))ROUND[ACx,]ACy

;ACy=rnd(ACx)状态位影响指令执行的状态位有:C54CM,M40,RDM,SATD。执行指令后会受影响的状态位:ACOVy

7/29/202377东华理工大学机械与电子工程学院举例1:

ROUNDAC0,AC1

;AC1=AC0+8000h,且16个最低有效位清0举例2:

SATAC0,AC1

;将32位的AC0饱和,将饱和后的值FF80000000装入AC1

7/29/202378东华理工大学机械与电子工程学院平方差指令指令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,CARRY7/29/202379东华理工大学机械与电子工程学院举例:

SQDST*AR0,*AR1,AC0,AC1

;AC1=AC1+(AC0(32-16))*(AC0(32-16)) ;AC0=((*AR0)<<16)-((*AR1<<16)7/29/202380东华理工大学机械与电子工程学院位操作指令

位域比较指令指令BANDSmem,k16,TCx

;If(((Smem)ANDk16)==0),TCx=0

;elseTCx=1状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

举例:BAND*AR3,#00A0h,TC2

;由于(*AR3)ANDk16==0,TC2=07/29/202381东华理工大学机械与电子工程学院位计数指令BCNTACx,ACy,TCx,Tx

;Tx=(ACxANDACy)中1的个数 ;若Tx为奇数,则TCx=1,反之TCx=0状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

举例:BCNTAC1,AC2,TC1,T1

;T1=(AC1与AC2)中1的个数,个数是奇数,TC1=17/29/202382东华理工大学机械与电子工程学院位域扩展和抽取指令指令位域抽取:BFXTRk16,ACx,dst

;从LSB到MSB将k16中非零位对应的ACx中的位抽取出来,依次放到dst的LSB中位域扩展:BFXPAk16,ACx,dst

;将ACx的LSB放到k16中非零位对应的dst中的位置上,;ACx的LSB个数等于k16中1的个数状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:无7/29/202383东华理工大学机械与电子工程学院举例1:

BFXTR#8024h,AC0,T2

;从最低位到最高位将(8024h)中非零位对应的AC0中的位抽取出来依次放到T2的LSB中

举例2:

BFXPA#8024h,AC0,T2

;将AC0的LSB放到#8024h中非零位对应的T2中的位置上,AC0的LSB个数等于#8024h中1的个数

7/29/202384东华理工大学机械与电子工程学院存储器位操作指令指令测试、清零、置位和取反

状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

7/29/202385东华理工大学机械与电子工程学院举例1:

BTSTAC0,*AR0,TC1

;位地址AC0(3-0)=8,测试(*AR0)的位8,结果存入TC1举例2:

BTSTNOT#12,*AR0,TC1

;测试(*AR0)的位12,结果存入TC1,并将(*AR0)的位12取反

7/29/202386东华理工大学机械与电子工程学院寄存器位操作指令指令测试、置位、清零和取反操作状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

7/29/202387东华理工大学机械与电子工程学院举例1:

BTST@#12,T0,TC1

;测试T0的位12,将结果存入TC1

举例2:

BNOTAR1,T0

;将T0中由AR1确定的位12取反

7/29/202388东华理工大学机械与电子工程学院举例3:

BTSTPAR1(T0),AC0

;由基地址(AR1)和偏移地址T0确定的位地址为39,测试AC0中的第39位并存入TC1;测试AC0中的第40位并存入TC27/29/202389东华理工大学机械与电子工程学院状态位设置指令指令置位和清零状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:已经选择的状态位7/29/202390东华理工大学机械与电子工程学院举例1:

BCLRAR1LC,ST2_55

;由标号AR1LC确定位地址为1,将ST2-55的位2清零

举例2:

BSETCARRY,ST0_55

;由标号CARRY确定位地址为11,将ST0-55的位11置位

举例3:

BSETCARRY

;将ST0-55的CARRY(位11)置位

7/29/202391东华理工大学机械与电子工程学院扩展辅助寄存器操作指令

指令状态位影响指令执行的状态位有:ST2-55。执行指令后会受影响的状态位:无7/29/202392东华理工大学机械与电子工程学院举例1:

AMAR*AR1+,XAR0;将(*AR1)的内容装入XAR0,且AR1增1AMOV#7FFFFFh;将23位的值(7FFFFFh)装入XAR0MOVdbl(*AR3),XAR1;将(*AR3)低7位和(*(AR3+1))的16位装入XAR17/29/202393东华理工大学机械与电子工程学院位操作指令

位域比较指令指令BANDSmem,k16,TCx

;If(((Smem)ANDk16)==0),TCx=0

;elseTCx=1状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:TCx

举例:BAND*AR3,#00A0h,TC2

;由于(*AR3)ANDk16==0,TC2=07/29/202394东华理工大学机械与电子工程学院逻辑运算指令

按位与/或/异或/取反指令指令状态位影响指令执行的状态位有:C54CM,M40。执行指令后会受影响的状态位:无7/29/202395东华理工大学机械与电子工程学院举例1:

NOTAC0,AC1

;将AC0的内容取反,结果存入AC1

举例2:

ANDAC0,AC1;AC1=AC1ANDAC0

举例3:AC0<<#4,AC1;将AC0逻辑左移4位后与AC1相或,结果存 入AC1举例4:XORAC0,AC1;AC1=AC1XORAC07/29/202396东华理工大学机械与电子工程学院逻辑移位指令状态位影响指令执行的状态位有:C54CM,M40。执行指令后会受影响的状态位:CARRY7/29/202397东华理工大学机械与电子工程学院举例1:

SFTLAC1,#1;AC1=AC1<<#1,由于M40=0,CARRY=位31,且位(39-32)清零

举例2:

SFTLAC0,T0,AC1;AC1=AC0<<-6,由于M40=0,所以(39-32)清零

7/29/202398东华理工大学机械与电子工程学院循环移位指令ROLBitOut,src,BitIn,dst

;将BitIn移进src的LSB,src被移出的位存放于BitOut,此时的结果放到dst中RORBitIn,src,BitOut,dst

;将BitIn移进src的MSB,src被移出的位存放于BitOut,此时的结果放到dst中状态位影响指令执行的状态位有:CARRY,M40,TC2。执行指令后会受影响的状态位:CARRY,TC2举例:ROLCARRY,AC1,TC2,AC1;将TC2移入AC1的LSB,将AC1中位31移出放入CARRY,由于M40=0,将AC0(39-32)清零7/29/202399东华理工大学机械与电子工程学院移动指令

累加器、辅助寄存器或临时寄存器装载、存储、移动和交换存储单元间的移动及初始化入栈和出栈CPU寄存器装载令、存储和移动7/29/2023100东华理工大学机械与电子工程学院累加器、辅助寄存器或临时寄存器装载、存储、移动和交换指令指令状态位影响指令执行的状态位有:C54CM,M40,RDM,SATD,SXMD。执行指令后会受影响的状态位:ACOVx

举例1:MOVAC0,*(#0E10h);将AC0(15-0)存入E10h单元7/29/2023101东华理工大学机械与电子工程学院举例2:

MOVAC0,AC1;AC1=AC0,由于M40=0,在31位检测到溢出,将ACOV1置位

举例3:

MOV#248,AC1;AC1=#248举例4:SWAPAR4,T0,将AR4的内容和T0的内容互换7/29/2023102东华理工大学机械与电子工程学院存储单元间的移动及初始化指令状态位影响指令执行的状态位有:无。执行指令后会受影响的状态位:无7/29/20231

温馨提示

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

评论

0/150

提交评论