灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2666回复:0

带进位的循环移位指令

楼主#
更多 发布于:2012-09-10 18:57

带进位的循环移位指令

带进位的循环移位指令有:带进位的循环左移RCL(Rotate Left Through Carry)和带进位的循环右移RCR(Rotate Right)。

指令的格式:RCL/RCR Reg/Mem, CL/Imm

受影响的标志位:CF和OF

带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。具体功能如下图(a)、(b)所示。

(a)、RCL(b)、RCR

下面是几个带进位循环移位的例子及其执行结果。

双精度移动指令指令操作数的初值指令执行后的结果

RCL AX, 1CF=0,(AX)=0ABCDH(AX)=579AH

RCL AX, 1CF=1,(AX)=0ABCDH(AX)=579BH

RCR AX, 2CF=0,(AX)=0ABCDH(AX)=AAF3H

RCR AX, 2CF=1,(AX)=0ABCDH(AX)=EAF3H

例5.12 编写指令序列把由DX和AX组成的32位二进制算术左移、循环左移1位。

解:

(DX,AX)算术左移1位指令序列(DX,AX)循环左移1位指令序列

SHL AX, 1

RCL DX, 1SHLD DX, AX, 1

RCL AX, 1

学习和理解带进位的循环移位指令的控件。

喜欢0 评分0
游客

返回顶部