![]() | 第2章 开始设计程序 | -19- | |||||||||||||||||||
![]() |
① 如果使用LOOP指令来完成循环(还有别的方法),在进入循环体前必须把循环的次数放入CX寄存器中; ② LOOP指令所带的目的地址必须"小于或等于"它本身的地址,目的地址只能是偏移量且它减去LOOP指令下面的地址之差必须在[0 -128]范围内; ③ CPU每次执行LOOP指令时,总是自动地把CX中的计数值减1,根据减的结果是0还是非0来决定是否转移到目的地址去执行指令,一旦CX被减至0,则CPU不再转移,而是执行LOOP下面的指令。 |
||||||||||||||||||||
![]() 图2-3 LOOP指令的执行过程 |
图2-3反映了循环的流程。在这个程序中LOOP指令的目的地址就是它自身的地址,这样的循环是空循环,它可以完成"延时"。 有了第4,5条指令后,我们就能听到喇叭发出的声音了。经过这一系列的分析,我们可以画出整个程序的流程图(如图2-4)。 |
||||||||||||||||||||
![]() 图2-4 PROG1程序的流程图 |
|||||||||||||||||||||
请务必注意,每一条汇编指令所完成的工作都是微观上的,每条指令单独作用并不能产生宏观效果。声音的产生是所有指令共同作用的结果。所以不要象学习高级语言那样将发出声音归功于程序中的某一条指令。图2-5反映出这些指令间的有机配合。 | |||||||||||||||||||||
![]() 图2-5 各指令的配合 |
|||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |