求微机原理高手解答!

已知AX=0FFFFH,DX0001H
MOV CX,2
LOP:SHL AX,1
RCL DX,1
LOOP LOP
上述程序段执行后,DX=? AX=?
求详细解答过程 谢谢

MOV CX,2 ;循环两次
LOP:SHL AX,1 ;第一次:AX左移一位,AX=1111111111111110B,CF=1
;第二次:AX左移一位,AX=1111111111111100B,CF=1
RCL DX,1 ;第一次:DX带进位循环左移一位,DX=0000000000000011B
;第二次:DX带进位循环左移一位,DX=0000000000000111B
LOOP LOP
所以,上述程序段执行后,DX=0007H, AX=0FFFCH追问

请问大神 AX=1111111111111110B,CF=1这是怎么得来的呢?还有DX=0001H具体是怎么得到DX=0000000000000011B 的呢?麻烦您再解答一下 好吗?

追答

SHL AX,1,就是AX所有的位全部左移一位,最高位移进CF,最低位补0,原来AX=1111111111111111B,执行后就是:AX=1111111111111110B,CF=1
RCL DX,1,就是DX所有的位和CF一起左移一位,就将CF移进DX的低位,原来DX=0000000000000001B ,执行后就是:DX=0000000000000011B

温馨提示:答案为网友推荐,仅供参考