假定(dx)=0B9H,(CL)=3,(CF)=1,下列指令单独执行,DX的值为多少?RCL DX,CL 数学
网友回答
【答案】 RCL的功能是将数据的内容连同CF标志一起向左循环移动所规定的位数
在这道题中(DX) = 0B9H, (CL) = 3, (CF) = 1;要求执行RCL DX,CL
首先(DX) = 0B9H = 0000 0000 1011 1001B(二进制)
CF = 1, 0000 0000 1011 1001 移动0位(初始化)
CF = 0, 0000 0001 0111 0011 移动1位(第一次左移), 最右边的1是第0次的CF(1)
CF = 0, 0000 0010 1110 0110 移动2位(第二次左移), 最右边的0是第1次的CF(0)
CF = 0, 0000 0101 1100 1100 移动3次(第三次左移), 最右边的0是第2次的CF(0)
所以DX最后的值为05CCH
具体debug
PS:若有不明白的地方, 追答:
图中的顶是高,底是低
见图,我们就可以知道,在进行RCL的时候,CF先写入最低位(注意在这里,最低位的值不会被覆盖),然后数据中的值具体向左移动,最高位移入CF, 然后原先的那个CF覆盖最低位.
所以这里就是为什么进位总是最低位,那是CF的值