只有一行的有用程序是很少见的,机械语言也是如此。当执行的指令占据多个内存地址时,就会增加与指令长度相应的数值,然后,CPU的控制器就会参照程序计数器的数值,从内存中读取命令并执行。也就是说,程序计数器决定着程序的流程。
程序分为顺序执行、条件分支和循环三种。顺序执行是指按照地址内容的顺序执行指令。条件分支是指根据条件执行任意地址的指令。循环是指重复执行同一地址的指令。条件分支和循环中使用的跳转指令,会参照当前执行的运算结果来判断是否跳转。无论当前累加寄存器的运算结果是负数、零还是正数,标志寄存器都会将其保存(也负责存放溢出和奇偶校验的结果)。CPU在进行运算时,标志寄存器的数值会根据运算结果自动设定。条件分支在跳转指令前会进行比较运算。至于是否执行跳转指令,则由CPU在参考标志寄存器的数值后进行判断。运算结果的正、零、负三种状态由标志寄存器的三个位表示。
数据转送指令:寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作;
运算指令:用累加寄存器执行算术运算、逻辑运算、比较运算和移位运算;
跳转指令:实现条件分支、循环、强制跳转等;
call/return指令:函数的调用/返回调用前的地址。