汇编指令
循环移位指令RORROLRCLRCR具体怎么移位的?比如ROR99H,1RCR99H,1最好每个都举例给我讲详细周六考三级,急~谢了...
循环移位指令ROR ROL RCL RCR 具体怎么移位的? 比如ROR 99H,1 RCR 99H,1 最好每个都举例给我讲详细 周六考三级,急~ 谢了
展开
2个回答
展开全部
ROR:右循环移位指令
如:ROR 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数右移,其最低位移入最高位,同时最低位也移入标志CF
即变为1100 1100B=CCH
ROL:左循环移位指令
如:ROL 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数左移,其最高位移入最低位,同时最高位也移入标志CF
即变为0011 0011B=33H
RCL:带进位的左移
如:RCL 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数的最高位移入CF,而CF中原有内容移入操作数的最低位
若CF原本为1,则原来的数变为0011 0011B=33H
若CF原本为0,则原来的数变为0011 0010B=32H
RCR:带进位的右移
如:RCR 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数的最低位移入CF,而CF中原有内容移入操作数的最高位
若CF原本为1,则原来的数变为1100 1100B=CCH
若CF原本为0,则原来的数变为0100 1100B=4CH
如:ROR 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数右移,其最低位移入最高位,同时最低位也移入标志CF
即变为1100 1100B=CCH
ROL:左循环移位指令
如:ROL 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数左移,其最高位移入最低位,同时最高位也移入标志CF
即变为0011 0011B=33H
RCL:带进位的左移
如:RCL 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数的最高位移入CF,而CF中原有内容移入操作数的最低位
若CF原本为1,则原来的数变为0011 0011B=33H
若CF原本为0,则原来的数变为0011 0010B=32H
RCR:带进位的右移
如:RCR 99H,1
99H=1001 1001B(16进制转2进制),逗号后的1表示移位1次
执行命令后,操作数的最低位移入CF,而CF中原有内容移入操作数的最高位
若CF原本为1,则原来的数变为1100 1100B=CCH
若CF原本为0,则原来的数变为0100 1100B=4CH
更多追问追答
追问
要是RCR 1 0000 0010 ,2 是多少? 再讲一遍 好像有些懂了,1有点特殊 换2试试
追答
RCR 1 0000 0010 ,2
最前面那个1是CF吧?如果不是CF,是十六进制
指令应该写成RCR 0001 0000 0010,2 或RCR 102H,2;
如果这个数是CF的话,
指令里面不要写成这样,应该写成 RCR 0000 0010,2 或 RCR 02H,2
如果最前面的1是CF,则右移2位
右移第一次:变为1000 0001=81H,此时CF为最低位的数字,即CF=0
右移第二次:变为0100 0000=40H,此时CF为第二次右移之前最低位的数字,即CF=1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询