首页 理论教育 逻辑运算和移位指令实用技巧

逻辑运算和移位指令实用技巧

时间:2023-10-22 理论教育 版权反馈
【摘要】:对标志位的影响:逻辑运算和移位指令中除了两条带进位的循环移位指令外,其余均不影响psw中的各标志位。常用的逻辑运算和移位类指令有逻辑与、逻辑或、逻辑异或、循环移位、清0、求反(非)等24条指令,它们的操作数都是8位的。循环移位指令示意图如图32所示。图3-2 累加器移位指令示意图

逻辑运算和移位指令实用技巧

对标志位的影响:逻辑运算和移位指令中除了两条带进位的循环移位指令外,其余均不影响psw中的各标志位。但当目的操作数累加器a时,影响psw中的奇偶校验位p。

常用的逻辑运算和移位类指令有逻辑与、逻辑或、逻辑异或、循环移位、清0、求反(非)等24条指令,它们的操作数都是8位的。逻辑运算都是按位进行的,除用于逻辑运算外,还可用于模拟各种数字逻辑电路的功能,进行逻辑电路的设计。

1.逻辑与运算指令(6条)

功能:实现两个操作数的逻辑与。

指令格式:978-7-111-46285-9-Chapter03-34.jpg

其中,<src>包括rn、@ri、direct、#data。

anl direst,<src>

其中,<src>包括a、#data。

适用场合:实现逻辑与,主要用于使操作数的某些位不变(这些位与“1”),某些位置0(这些位与“0”)。

2.逻辑或运算指令(6条)

功能:实现两个操作数的逻辑或。

指令格式:978-7-111-46285-9-Chapter03-35.jpg

其中,<src>包括rn、@ri、direct、#data。

orl direst,<src>

其中,<src>包括a、#data。

适用场合:实现逻辑或,主要用于使操作数的某些位不变(这些位或“0”),某些位置1(这些位或“1”)。

3.逻辑异或运算指令(6条)

功能:实现两个操作数的逻辑异或。(www.xing528.com)

指令格式:978-7-111-46285-9-Chapter03-36.jpg

其中,<src>包括rn、@ri、direct、#data。

xrl direst,<src>

其中,<src>包括a、#data。

适用场合:实现逻辑异或,主要用于使操作数的某些位不变(这些位异或“0”),某些位取反(这些位异或“1”)。

4.循环移位指令(4条)

mcs51系列单片机的循环移位指令共有不带进位的循环左、右移位(操作码为rl,rr)和带进位的循环左、右移位(操作码为rlc,rrc)指令4条。

特点:只能对累加器a进行循环移位。

指令格式:操作码a

功能:累加器a中的数据逐位左移一位相当于原内容乘2,而逐位右移一位相当于原内容除以2。循环移位指令示意图如图32所示。

5.累加器清0与取反指令(2条)

指令格式:978-7-111-46285-9-Chapter03-37.jpg

特点:可以节省存储空间,提高程序执行效率

对标志位的影响:clr a指令只影响psw的p标志位,cpl a指令不影响psw各标志位。

978-7-111-46285-9-Chapter03-38.jpg

图3-2 累加器移位指令示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈