逻辑运算指令_第1页
逻辑运算指令_第2页
逻辑运算指令_第3页
逻辑运算指令_第4页
逻辑运算指令_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

逻辑运算指令2026/7/619:41DSP原理及应用2

逻辑运算指令

’C54x的指令系统具有丰富的逻辑运算指令。

包括:与运算指令(AND)或运算指令(OR)异或运算指令(XOR)

移位操作指令(SHIFT)测试操作指令(TEST)2026/7/619:41DSP原理及应用3

逻辑运算指令(1)与运算指令

操作码:AND、ANDM

指令格式:操作码源操作数

[,移位数]

,目的操作数

源操作数:Smem、#lk、src

移位数:16、SHIFT、SHFT

目的操作数:src、dst、Smem

2026/7/619:41DSP原理及应用4(1)与运算指令

与逻辑运算指令共有5条。

序号指令功能说明1ANDSmem,srcsrc

=src&Smem源操作数与累加器与运算2AND#lk[,SHFT],src[,dst]dst

=src&#lk<<SHFT长立即数移位后与累加器与运算3AND#lk,16,src[,dst]dst

=src&#lk<<16长立即数左移16位与累加器与运算4ANDsrc[,SHIFT][,dst]dst=dst&src<<SHIFT源累加器移位后与目标累加器与运算5ANDM#lk,SmemSmem

=Smem&#lk目标操作数与长立即数与运算2026/7/619:41DSP原理及应用5

逻辑运算指令(2)或运算指令

指令格式:操作码源操作数

[,移位数]

,目的操作数

1Smem[,SHFT],src

或运算指令共计5条。

OR2#lk,src[,dst]OR

163#lk,src[,dst]OR[,SHIFT]4src

[,dst]OR5#lk,SmemORM2026/7/619:41DSP原理及应用6(2)或运算指令

序号指令功能说明1ORSmem,srcsrc

=src

|Smem源操作数与累加器或运算2OR#lk[,SHFT],src[,dst]dst

=src

|#lk<<SHFT长立即数移位后与累加器或运算3OR#lk,16,src[,dst]dst

=src

|#lk<<16长立即数左移16位与累加器或运算4ORsrc[,SHIFT][,dst]dst=dst|src<<SHIFT源累加器移位后与目标累加器或运算5ORM#lk,SmemSmem

=Smem

|#lk目标操作数与长立即数或运算2026/7/619:41DSP原理及应用7

逻辑运算指令(3)异或运算指令

指令格式:操作码源操作数

[,移位数]

,目的操作数

异或运算指令共计5条。

1Smem[,SHFT],srcXOR2#lk,src[,dst]XOR

163#lk,src[,dst]XOR[,SHIFT]4src

[,dst]XOR5#lk,SmemXORM2026/7/619:41DSP原理及应用8(3)异或运算指令

序号指令功能说明1XORSmem,srcsrc

=src

Smem源操作数与累加器异或运算2XOR#lk[,SHFT],src[,dst]dst

=src

#lk<<SHFT长立即数移位后与累加器异或运算3XOR#lk,16,src[,dst]dst

=src

#lk<<16长立即数左移16位与累加器异或运算4XORsrc[,SHIFT][,dst]dst=dst

src<<SHIFT源累加器移位后与目标累加器异或运算5XORM#lk,SmemSmem

=Smem

#lk目标操作数与长立即数异或运算2026/7/619:41DSP原理及应用9

逻辑运算指令(4)移位操作指令

指令格式:操作码源操作数

[,移位数]

[,目的操作数]

’C54x共有6条移位指令,可实现带进位位循环移位、带TC位循环左移、算术移位、条件移位和逻辑移位等操作。

操作码:

ROL、ROLTC、ROR、SFTA、SFTC、SFTL

源操作数:

src

移位数:

SHIFT

目的操作数:dst

2026/7/619:41DSP原理及应用10(4)移位操作指令

带进位位循环左移操作数src:累加器A或B指令功能:

累加器src与进位位C循环左移一位。

执行过程:C→src(0)

src(30~0)→src(31~1)

src(31)→C

0→

src(39~32)

指令格式:ROLsrc

;C的值移入src的最低位;src左移一位;src的最高位移入C;src的保护位清02026/7/619:41DSP原理及应用11(4)移位操作指令

带测试位循环左移操作数src:累加器A或B指令功能:

累加器src与测试位TC循环左移一位。

执行过程:

指令格式:ROLTCsrc

39~32310累加器src保护位TC①

TC的值移入src的最低位

累加器src左移一位②③

src的最高位移入TC③④

src的保护位清0④

0

2026/7/619:41DSP原理及应用12(4)移位操作指令

带进位位循环右移操作数src:累加器A或B指令功能:

累加器src与进位位C循环右移一位。

执行过程:

指令格式:RORsrc

C的值移入src的31位②

累加器src右移一位③

src的最低位移入C④

src的保护位清039~32310累加器src保护位C①②③④

0

2026/7/619:41DSP原理及应用13④

算术移位操作数src:累加器A或B指令功能:

根据SHIFT,src的内容算术移位。

指令格式:SFTAsrc,SHIFT[,dst]

If

SHIFT<0Thensrc((-SHIFT)-1)→C

src(39~0)<<SHIFT→src或dst

IfSXM=1Thensrc(39)→src(39~(39+SHIFT+1))

或src(39)→dst(39~(39+SHIFT+1))Else0→src(39~(39+SHIFT+1))

或0→dst(39~(39+SHIFT+1))Elsesrc(39-SHIFT)→C

(src)>>SHIFT→src或dst0→src((SHIFT-1)~0)

或0→dst((SHIFT-1)~0)

2026/7/619:41DSP原理及应用14④

算术移位执行过程:当SHIFT<0时,进行算术右移

1)src的第(-SHIET-1)位复制到进位位C;

2)40位src右移SHIFT位,结果存入src或dst;

3)符号扩展处理

若SXM=1,进行符号位扩展。

src(39)写入dst(39~(39+SHIFT+1))

若SXM=0,不进行符号位扩展。

0写入dst(39~(39+SHIFT+1))2026/7/619:41DSP原理及应用15④

算术移位执行过程:当SHIFT>0时,进行算术左移

1)src的第(39-SHIET)位复制到进位位C;

2)40位src左移SHIFT位,结果存入src或dst;

3)将0置入dst的低SHIFT的各位0写入dst((SHIFT-1)~0)2026/7/619:41DSP原理及应用16(4)移位操作指令

条件移位操作数src:累加器A或B指令功能:

指令格式:SFTCsrc

Ifsrc=0Then1→

TC

ElseIfsrc(31)=src(30)Thensrc<<1→

src0→

TCElse1→

TC2026/7/619:41DSP原理及应用17⑤

条件移位

执行过程:

当src=0时,将1写入测试位TC;

当src≠0时,进行条件移位。

若src有两个有效符号位,则移位。

32位src左移一位;保护位src(39~32)不变;

0写入测试位TC。

若src只有一个符号位,则不移位。

1写入测试位TC。2026/7/619:41DSP原理及应用18(4)移位操作指令

逻辑移位操作数src:累加器A或B

指令格式:SFTLsrc,SHIFT[,dst]指令功能:

IfSHIFT<0Thensrc((-SHIFT)-1)→

C

src(31~0)<<SHIFT→

dst0→

dst(39~(31+SHIFT+1)

IfSHIFT=0Then0→

C

Elsesrc(31-(SHIFT-1))→

Csrc((31-SHIFT)~0)<<SHIFT→

dst

0→dst((SHIFT-1~0)

0→dst(39~32)2026/7/619:41DSP原理及应用19⑥

逻辑移位执行过程:

若SHIFT<0,则进行逻辑右移。

src的第(-SHIFT-1)位复制到进位位C;src的低32位右移SHIFT位,结果存入dst;0写入dst(39~31+(SHIFT+1))。

若SHIFT=0,不进行逻辑移位,进位置0。

若SHIFT>0,则进行逻辑左移。

src的第(31-(SHIFT-1))位复制到进位位C;src((31-SHIFT)~0)左移SHIFT位存入dst;0写入dst的低SHIFT位,即0→dst((SHIFT-1)~0);

0写入dst的高8位,即0→dst(39~32)。2026/7/619:41DSP原理及应用20

逻辑运算指令(5)测试操作指令

’C54x共有5条测试操作指令。

BIT

指令格式:

BIT

Xmem,BITC

指令功能:

(Xmem(15-BITC))→TC功能说明:

将Xmem的指定位复制到TC位。

操作数:Xmem——双数据存储操作数

BITC——测试位的位代码,取值:0~15

2026/7/619:41DSP原理及应用21(5)测试操作指令

BITF

指令格式:

BITF

Smem,#lk

指令功能:

If((Smem)ANDlk)=

0

Then

0

→TC

Else

1

→TC功能说明:

测试Smem中由1k指定的某些位。

若指定的测试位为0,TC=0,否则,TC=1。

lk在测试指定位中起屏蔽作用。操作数:Smem——单数据存储操作数#lk——16位长立即数,取值:0~65

535

2026/7/619:41DSP原理及应用22(5)测试操作指令

BITT

指令格式:

BITT

Smem

指令功能:

(Smem(15-T(3~0)))→TC功能说明:

将Smem的指定位复制到TC中。

T寄存器的低4位T(3~0)用于确定测试位的位代码,位地址对应于15-T(3~0)。操作数:Smem——单数据存储操作数2026/7/619:41DSP原理及应用23(5)测试操作指令

CMPM

指令格式:

CMPM

Smem,#lk

操作数:Smem——单数据存储

温馨提示

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

评论

0/150

提交评论