汇编中的loop指令问题
书上说loop指令是先把CX减掉1,然后再判断CX是否为0,如果为0,退出循环,那么照它这么说,就等于循环了[CX]-1遍而不是[CX]遍了,就是说如果CX为10的话,实...
书上说loop指令是先把CX减掉1,然后再判断CX是否为0,如果为0,退出循环,那么照它这么说,就等于循环了[CX]-1遍而不是[CX]遍了,就是说如果CX为10的话,实际只循环了9遍,我没有理解错吧?但是书上讲的例子:
MOV CX 11
S: ADD AX AX
LOOP S
说程序做了11次AX+AX,不知道是我上面理解错误,还是在LOOP S这条指令上面的S: ADD AX AX指令在循环前已经执行过一遍,所以再加上LOOP的10遍就等于11遍了,又或者是其他的理解方法,请高手指点迷津...... 展开
MOV CX 11
S: ADD AX AX
LOOP S
说程序做了11次AX+AX,不知道是我上面理解错误,还是在LOOP S这条指令上面的S: ADD AX AX指令在循环前已经执行过一遍,所以再加上LOOP的10遍就等于11遍了,又或者是其他的理解方法,请高手指点迷津...... 展开
1个回答
2013-05-25
展开全部
首先汇编顺序执行的,在执行到loop前add ax ax已经被执行了一次了,然后才执行到loop s这一句,然后你的理解是对了,loop指令是执行10次。不过add ax ax却执行了11次
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询