鱼C论坛

 找回密码
 立即注册
查看: 2869|回复: 5

[争议讨论] 容易混淆的问题之 loop

[复制链接]
发表于 2012-9-28 21:07:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
   mov cx,0      
s: add ax,ax   
   loop s  
问一个容易混淆的问题。 CX刚开始就等于0 那么他是先执行一次 add ax,ax   结束呢 还是 直接结束呢?

意思也就是 说 他是 先判断后循环 还是先循环后判断呢(不管条件有没有满足先执行一次)。?非常容易混淆!!求解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-28 23:04:39 | 显示全部楼层
程序是一步一步向下执行的,先执行mov cx, 0, 然后是add ax, ax,  再然后就是loop s, 这句啊,执行最后这句时就判断cx是否等于0, 按这题来说cx刚好为0, 所以就不跳转了,继续向下执行。这有疑惑吗,没按出来。

补充内容 (2012-9-28 23:06):
现在不可以修改回答了啊,我多打了几个字。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-28 23:12:33 | 显示全部楼层

                               
登录/注册后可看大图

不好意思好久没看书都记不清了。还是得多看书啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-28 23:18:12 | 显示全部楼层
唉,图片又没了。本来要发的图上是这么写的“CPU在执行loop指令的时候, 要进行两步操作, 一、(cx) = (cx) - 1, 二、判断cx是否为0, 不为零则转至标号处, 为零则继续向下执行。“
你是因为debug看到了它转至标号处才产生这样的疑惑的吧。因为(cx) - 1后不为零啊,至于等于多少你自己debug看吧 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-28 23:23:29 | 显示全部楼层
貌似是执行到 loop时,先减一再判断是否为零.循环很多次.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-10-7 22:59:39 | 显示全部楼层
先判断后循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 14:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表