词条 | 程序控制指令 |
释义 | 程序控制指令:也称转移指令。执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。除各种条件转移指令外,还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。 转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。 程序控制指令主要包括三类,转移指令(包括无条件转移和有条件转移)、程序调用和返回指令,循环控制指令。其中,前两类指令在一般计算机中是必备的。最后一类指令用于对循环程序进行优化。 转移指令中的无条件转移指令通常有两种:一种是局部无条件,采用相对寻址方式,转移范围一般在+127到-128之间;另一种是全局无条件转移,可以在整个寻址空间内转移。 条件转移指令条件转移指令所依据的转移条件主要有:全零(Z)、正负号(N)、进位(C)、溢出(V)及它们的组合等。主要条件转移指令有: BEQ 等于零转移 BNEQ 不等于零转移 BLS 小于转移 BGT 大于转移 BLEQ 小于等于转移,或不大于转移 BGEQ 大于等于转移,或不小于转移 BLSU 不带符号小于转移 BGTU 不带符号大于转移 BLEQU 不带符号小于等于转移,或不带符号不大于转移 BGEQU 不带符号大于等于转移,或不带符号不小于转移 BCC 没有进位转移 BCS 有进位转移 BVC 没有溢出转移 BVS 有溢出转移 调用和返回指令第二类程序控制操作是程序调用和返回指令,主要有两条: CALL 转入子程序 RETURN 从子程序返回 这两条指令本身可以带有条件,当测试条件满足时转入子程序或从子程序返回,也可以不带条件。如果调用和返回指令本身不带条件,则要与条件转移指令联合使用,如果本身带有条件,目标程序就可以简化 在执行调用指令,要保存硬件现场(主要指程序计数器和处理机状态字)和软件程序现场(指在子程序中要使用的通用寄存器等);当从子程序返回时,再恢复这些现场。在设置有系统栈的计算机中,硬件现场和程序现场可以压入堆栈。如果没有设置堆栈,则要在主存储器中开辟出一块专门的区域或指定专门的通用寄存器来保存硬件现场。而软件程序现场的保存则由程序员自行决定。 另外中断控制指令和自陷指令(或称为过程调用指令)也属于程序调用指令。中断控制指令主要有:开中断、关中断、改变屏蔽状态、从中断程序返回等指令。自陷指令主要用来转入例行子程序,或在程序调式过程中用来设置断点。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。