有关汇编上的移位指令的几个小题

假定(DX)=0B9H , (CL)=3 , (CF)=1 确定下列各条指令单独执行后DX中的值。
(1) SAR DX, CL ;(DX)=17H
(2) RCL DX, CL ;(DX)=2CCH
(3) ROR DX, CL ;(DX)=2017H
(4) RCR DL, 1 ;(DX)=0DCH
这几个题我做的和答案都不一样 请各位高手说的具体详细些 步骤说的详细些!!!!
是啊 你说的 是这样!就是不太明白 有循环的移位啊 怎么个移发 其中的还有进位位的参与啊! 所以向高手们请教 给做做 每一步说得具体点~~~~

补充。。。
CF DX
1 0000 0000 1011 1001 1011 1001
SAR DX, CL 表示向右不带进位移动CL位,就是0001 0111,就是17H
0000 0000 1011 1001
RCL DX, CL 带进位的循环左移 得到0000 0010 1100 1100 就是2CCH CF为1,当循环每执行一次就将CF中的值替换为操作数的最高位,同时将原CF的值放入操作数的最低位。这里1011 1001 左移3次依次变化为
CF=0 0000 0001 0111 0011
CF=0 0000 0001 1110 0110
CF=0 0000 0010 1100 1100 就是2CCH

ROR DX, CL 右循环移位指令 它每移位一次,操作数右移,其最低位移入最高位,同时最低位也移入标志CF
0000 0000 1011 1001 (移动3次,依次移动)
1000 0000 0101 1100 CF=1
0100 0000 0010 1110 CF=0
0010 0000 0001 0111 CF=0 结果为2017H

RCR DL, 1 带进位循环右移 同左移 注意这里是DL 不是DX
0000 0000 1011 1001 (移动3次,依次移动)
0000 0000 1101 1100 结果为0DCH
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-03
写成二进制:
CF DX
1 00001011 1001

SAR DX, CL 表示向右不带进位移动CL位,就是0001 0111 ,就是17H

RCL DX, CL 带进位想左循环移位

其他类似!!!
相似回答