进入/退出过程指令
来源:互联网 发布:徐宥箴 知乎 编辑:程序博客网 时间:2024/04/29 05:23
在许多高级语言中,每个子程序(函数)都有自己的局部变量,这些局部变量只有当它们所在的子程序执行时才有意义。为了保存这些局部变量,当执行到这些子程序时,因为其局部变量已建立起相应的堆栈框架,因而当退出子程序时,应将这个框架撤除。ENTER和LEAVE指令相互配合,可完成上述工作。
指令格式 ENTER | imm16 ,imm8 | |
指令格式 LEAVE | | |
· ENTER指令为局部变量建立一个堆栈区,指令中imm16指出子程序中所需堆栈的字节数,imm8指出子程序的嵌套层数(0-31);
· LEAVE指令用于撤消前面ENTER指令的操作。
例4-26 LEAVE指令举例。
TASK | PROC NEAR | |
| ENTER 6 , 0 | ;建立堆栈区,并保存6个字节的局部变量 |
| ┇ | |
| LEAVE | ;撤消已建立的堆栈区 |
| RET | |
TASK | ENDP | |
另外80286的指令系统还包括一些保护模式下的系统控制类指令,这组指令是
与保护模式相适应的处理器控制指令,它们常用于操作系统以及其它的控制软
件中,应用程序设计中用到的不多,故而此处不作详细介绍。保护模式下的系统控制类指令见表4-18 。
表4-18 80286保护模式的系统控制指令 | |||||
助记符 | 功能 | 助记符 | 功能 | ||
CLTS |
| 清除任务转移标志 | LGDT SGDT | src dest | 装入全局描述符表寄存器GDTR 存储全局描述符表寄存器GDTR |
ARPL | dest , src | 调整请求特权级RPL | |||
LMSW SMSW | src dest | 装入机器状态字 存储机器状态字 | LIDT SIDT | src dest | 装入8字节中断描述符表寄存器IDTR 存储8字节中断描述符表寄存器IDTR |
LAR LSL | dest , src dest , src | 装入访问权限 装入段界限值 | LLDT SLDT | src dest | 装入局部描述符表寄存器LDTR 存储局部描述符表寄存器LDTR |
VERR VERW | src src | 检查读允许 | LTR STR | src dest | 装入任务寄存器TR 存储任务寄存器TR |
本文转自
http://courseware.lzu.edu.cn/upload/2006/mayide/dianzikejian/4/a12.htm
- 进入/退出过程指令
- Mac的bash_profile文件的进入和退出指令
- 进入与退出系统
- 页面进入退出特效
- Activity进入退出动画
- dialog动态进入、退出
- activity进入退出动画
- gdb进入和退出
- windows内核情景分析之进入与退出系统空间过程
- android 中Activity在程序运行过程中进入全屏和退出全屏
- linux 编辑文件过程中意外退出,再次进入报错解决
- 1.进入与退出系统
- S3C2440 异常进入和退出
- Activity、PopupWindow 进入,退出动画
- linux常用命令---进入与退出
- GDB 的进入和退出
- 设置Activity进入退出动画
- 关于vi进入与退出
- fjnu 1758 三天打鱼两天晒网
- Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
- IP协议 子网掩码
- fjnu 1711 马的路径
- Edubuntu 强劲功能截图
- 进入/退出过程指令
- [转载]再来一个较详细的排序算法及代码实例
- fjnu 1964 龙珠游戏
- ENTER和leave
- fjnu 1362 收集样本问题
- 多事之周
- 函数调用堆栈变化分析 - quanming1119的专栏 - CSDNBlog
- 深入浅出C#2008从入门到提高Step By Step(五)Windows应用程序常用控件类(4)-CheckBox
- Hello World