文档介绍:实验八移位操作实验
一、实验要求和目的
;
;
。
二、软硬件环境
:微机CPU 486以上,500MB以上硬盘,32M以上内存;
:装有MASM 、DEBUG、LINK和EDIT等应用程序。
三、实验涉及的主要知识单元
移位指令主要包括算术移位、逻辑移位、循环移位,以下分三类介绍。其中统一的语句格式为:
操作符 OPD,1
操作符 OPD,CL
功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。
1、算术移位
(1)算术左移指令SAL
格式:SAL OPD 1或CL
描述:
将(OPD)向左移动CL指定的次数,最低位补入相应的0,CF的内容为最后移入位的值。如图8-1所示,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。
图8-1 SAL
(2)算术右移指令SAR
格式:SAR OPD 1或CL
描述:
将(OPD)向右移动CL指定的次数且最高位保持不变;CF的内容为最后移入位的值。如图8-2所示,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。
图8-2 SAR
2、逻辑移位
(1)逻辑左移
格式:SHL OPD 1或CL
描述:
把目的操作数的低位向高位移CL规定的次数,空出的低位补0,CF的内容为最后移入位的值。与算术左移相同,如图8-1所示,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。
(2)逻辑右移
格式:SHR OPD 1或CL
描述:
把目的操作数的高位向低位移CL规定的次数,空出的高位补0,CF的内容为最后移入位的值。如图8-3所示,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。
图8-3 SHR
3、循环移位
循环移位包括不带进位的循环移位指令ROL、ROR和带进位的循环移位指令RCL、RCR。
(1)不带进位循环左移指令ROL
格式:ROL OPD 1或CL
描述:
把目的操作数的低位向高位移CL规定的次数,移出的位不仅要进入CF,而且还要填补空出的位,CF的内容为最后移入位的值。如图8-4所示,受影响的标志位:CF、OF。
图8-4 ROL
(2)不带进位循环右移指令ROR
格式:ROR OPD 1或CL
描述:
把目的操作数的高位向低位移CL规定的次数,移出的位不仅要进入CF,而且还要填补空出的位,CF的内容为最后移入位的值。如图8-5所示,受影响的标志位:CF、OF。
图8-5 ROR
(3)带进位循环左移指令RCL
格式:RCL OPD 1或CL
描述:
把目的操作数的低位向高位移CL规定的次数,用原CF的值填补空出的位,移出的位进入CF。如图8-6所示,受影响的标志位:CF、OF。
图8-6 RCL
(4)带进位循环右移指令RCR
格式:RCR OPD 1或C