子程序是任何较大程序中的程序,可以重复使用多次。
子程序的特点:
(1) 子程序是使用汇编语言中的调用和返回指令实现的。
(2) Call指令存在于主程序中,Return(Ret)指令存在于子程序中。
(3) 需要注意的是,主程序在任何子程序执行过程中都会暂停。此外,在子程序完成后,主程序从程序计数器中的下一个顺序地址开始执行。
(4) 对于任何子程序的执行,都会使用一个“堆栈”来存储主程序的“返回地址”。这里,返回地址是指主程序中调用指令之后紧接的下一条指令地址。该返回地址存在于程序计数器内。因此,在执行调用指令期间,程序计数器值首先作为返回地址推送到堆栈,然后程序计数器值更新为调用指令中的给定地址。类似地,在 Return(Ret) 指令的执行过程中,栈中的值被弹出,程序计数器的值被恢复以供主程序的进一步执行。
(5) Subprogram 的主要优点是它避免了代码的重复,并允许我们一次又一次地重用相同的代码。