一道简单的汇编语言问题求详细解答

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:58:47
我把对语句的理解和题目一起写在下面了,请高人指点下我不对和不会的地方

XOR AX,AX 貌似是令 AX=0
MOV BX,2 BX=2
MOV CX,4 CX=4(我知道这个是循环次数)
MOV DX,3 不知道干嘛的
L20: INC AX AX++
ADC BX,AX BX=BX+AX
SHR DX,1 不知道干嘛的
LOOPE L20 跳到L20处进行循环

最后是问BX为多
请顺便把答案写下哦
那个ADC BX AX的理解我写错了。。就是不知道怎么+的是BX=BX+AX+CF请问这道题的CF怎么来的?

明白了
加起来是12再把12的2进制
10100往右移动一位,得1010,是6.这样对不对?

XOR ax,ax ;ax清零
mov bx,2 ;bx=2
mov cx, 4 ;cx=4做循环用
MOV DX,3 ;dx=3;
l20:
inc ax ;ax=ax+1
adc bx,ax ;bx=ax+bx+cf这个是防止溢出,
SHR DX,1 ;移位指令,将DX进行移位,该指令会影响cf位。右移指令,是将最低位移入CF,CF位移入最高位。
loope l20

ADC是带进位的加法 所以要加上CF SHR是逻辑右移 最低位要移进CF 最后判断ZF和CX