注册 登录
编程论坛 汇编论坛

算术右移问题求解!

遮天云 发布于 2010-09-30 10:43, 1183 次点击
假定(DX)=0B9H,(CL)=3,(CF)=1,确定下列各条指令单独执行后DX中的值
(1)SHR DX,1
(2)SAR DX,CL
答案给出的结果是(1)05C(这个道是知道)但第二个执行后答案给定的结果确实17H,不知道为什么?到底SAR是怎么移动数据的,麻烦给讲解一下!谢谢
对于SAR书上的解释是,最高有效位右移,同时在把他自身的值填入!即如原来的是0则仍为0,原来的是1,仍为1
红色部分道是怎么理解啊@!这汇编学的头都大了

[ 本帖最后由 遮天云 于 2010-9-30 11:01 编辑 ]
5 回复
#2
寒风中的细雨2010-09-30 17:54
看清楚(dx) = 0b9h  就没问题
#3
遮天云2010-10-03 17:10
哦~!谢谢你!~这汇编学的打击人呐
#4
恪守灬一生2010-10-11 16:31
DX=0B9H,化成二进制表示为0000 1011 1001
执行SHR DX,1后,CF=1,DX=0000 0101 1100,也即是DX=05CH;
执行SAR DX,CL后,CF=0,DX=0000 0001 0111,也即是DX=17H;
两次执行不同的是CF值,CF是进位标识符;
#5
轻狂如我心伤2010-10-16 20:18
(1)SHR DX,1   (dx)=05CH
(2)SAR DX,CL     (DX)=17H
1