终端服务子程序
终端服务子程序是一种特殊的子程序,它在终端模式下运行。与普通子程序相比,终端服务子程序具有以下特点:
- 它可以访问终端屏幕。
- 它可以接收来自键盘的输入。
- 它可以控制光标位置。
由于这些特点,终端服务子程序通常用于开发交互式应用程序,例如文本编辑器、文件管理器和游戏。
终端子程序的返回指令
终端子程序可以使用以下指令返回到调用程序:
-
RET
指令:返回到调用程序并清除堆栈。 -
RETN
指令:返回到调用程序但不清除堆栈。 -
RETI
指令:返回到调用程序并启用中断。 -
RETF
指令:返回到调用程序并释放锁。
在大多数情况下,使用
RET
指令就足够了。但是,如果需要保留堆栈上的数据或启用中断,则可以使用其他指令。
普通子程序
普通子程序是不在终端模式下运行的子程序。它不能访问终端屏幕、接收键盘输入或控制光标位置。
普通子程序通常用于执行特定任务,例如数学计算或数据处理。它们由调用程序调用,并在执行完任务后返回。
终端服务子程序与普通子程序的比较
特征 | 终端服务子程序 | 普通子程序 |
---|---|---|
访问终端屏幕 | 是 | 否 |
接收键盘输入 | 是 | 否 |
控制光标位置 | 是 | 否 |
用途 | 交互式应用程序 | 执行特定任务 |
结论
终端子程序是一种特殊的子程序,它在终端模式下运行并可以访问终端屏幕。它可以使用特定的返回指令返回到调用程序。普通子程序是不在终端模式下运行的子程序,通常用于执行特定任务。各类通用平台,子程序调用的过程大致都相似。 子程序调用指令读取到并解码后,首先将当前程序的断点地址保存,不同硬件平台保存方式有所不同,有的是压栈,有的是保存进特定寄存器;然后将子程序的入口地址设置为当前程序地址,之后就会开始读取并执行子程序了。 子程序结束后会通过指令返回调用点,返回值会通过寄存器或堆栈给出,CPU取出原先保存的断点地址设置为当前程序指针,然后就继续主程序的执行。 所以为了保证调用后的执行环境与调用前相同,子程序开始处通常要保存相关寄存器环境,在子程序结束前将这些寄存器复原。
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论