小伙伴们都学过高级语言,高级语言汇总的条件控制流程主要分为顺序执行、条件分支、循环判断三种。
顺序执行是按照地址的内容顺序的执行命令。
条件分支是根据条件执行任意地址的指令。
循环是重复执行同一地址的指令。
一般情况下,顺序执行的情况较简单,每次执行一条指令程序计数器的值就是+1。
条件和循环分支会使得程序计数器的值指向任意的地址,这样一来,程序就可以返回到上一个地址来重复执行同一个指令,或者跳转到其它任意指令。
下面,我们就以条件分支举例来说明程序的执行过程:
程序的开始过程和顺序流程是一样的,程序的顺序流程和开始过程相同。
CPU从0100处就开始执行命令,在0100和0101中都是顺序执行,PC的值顺序+1,执行到0102地址的指令时,判断0106寄存器的数值大于0,跳转到0104地址的指令,再将数值输到显示器中,随后结束程序,0103的指令就被跳过了。
这和我们程序中的if()判断相同,在不满足条件的情况下,指令一般会直接跳过。
因此,PC的执行过程没有直接+1,而是下一条指令的地址。
|