执行下列程序段后AX,BX,CX,DX,寄存器的内容分别是什么?
问题描述:
执行下列程序段后AX,BX,CX,DX,寄存器的内容分别是什么?
START:MOV AX,01H
MOV BX,02H
MOV DX,03H
MOV CX,04H
NEXT:INC,AX
ADD BX,AX
SHR DX,1
LOOPE NEXT
答
INC,AX ->AX自加1
ADD BX,AX -> BX = BX+AX
SHR DX,1 -> DX右移1位并判断是否非零作为LOOPE NEXT的判断基准
LOOPE NEXT 如果DX非零,那么就跳回到NEXT:执行.
OK
那这样的话
AX -> 2
BX += AX -> BX=4
DX >> 1 => DX = 1
回到NEXT
AX->3
bx += 3 -> BX = 7
DX >>= 1 -> DX = 0;
结束
应该是AX=3,BX = 7 CX没变=4 DX=00