鱼C论坛

 找回密码
 立即注册
查看: 4426|回复: 4

难道它陷入了死循环?????

[复制链接]
发表于 2011-9-27 16:20:22 | 显示全部楼层
当然会是死循环了,你的内循环没有问题;可因为你外循环的次数cx的原值已经在进入内循环时候被破坏了;每次内循环loop s结束时候,cx=0,那么跳出内循环,接着loop s0,cx=ffffh;永远都不会为0,从而跳至外循环s0,又都会重置cx=3;你这儿内循环是可终止的,而外循环是死循环。
所以在进入内循环之前要保护外循环的cx值,可用栈也可以用寄存器暂存。用栈如下:     ...
      mov cx,4
s0:   push cx     ;暂存
        mov si,0
        mov cx,3
        
s:        mov al,[bx+si]
        and al,11011111b
        inc si
        loop s
        
        add bx,16
       pop cx     ;取出外循环次数
        loop s0





小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-3 03:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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