



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
过程调用类型处理器支持两种类型的过程调用:1CALL与RET指令2ENTER与LEAVE指令,配合CALL与RET指令这两种过程调用机制都使用了程序栈(通常简称为“栈”)保存调用过程的状态、传递参数到被调过程,并为当前执行的过程存储局部变量。栈栈是一组连续的内存单元(见图6-1),它位于SS寄存器指定的段中,最长可达4GBytes(即段的最大长度)。PUSH指令将数据压入栈中,ESP寄存器递减,写入项位于栈顶。POP指令读取栈顶的数据,ESP寄存器递增。程序或操作系统可以设置多个栈,栈的最大数量取决于段和可用的物理内存。当设置了多个栈时,同一时间只有一个栈当前栈是可用的,当前栈所在的段由SS寄存器指定。所有的栈操作都是在当前栈进行的,比如,将ESP寄存器中的值作为内存地址时,它指向的是当前栈的一个地址。图6-1 栈结构1设定一个栈。设定一个栈段。将此栈段的段选择器载入SS寄存器(使用MOV、POP或LSS指令)。载入栈指针到ESP寄存器(使用MOV、POP或LSS指令)。2栈对齐栈指针可以是16位(字)或32位(双字)边界,这取决于栈段的宽度,而栈段的宽度取决于段描述符中的D标志。处理器并不会检查栈指针是否对齐,这是运行在处理器上的程序和任务的职责,未对齐的栈指针会极大地降低性能,有时候还会导致程序故障。3栈访问的地址大小属性隐性地使用栈的指令(比如PUSH和POP)有两种地址大小属性,16位或32位。显性地址的属性取决于当前代码段的D标志和是否有67H地址大小前缀。栈顶的地址大小属性决定了在栈访问中使用SP还是ESP。4过程链接信息处理器为过程链接提供了两种指针:栈帧基址指针和返回指令指针。栈被分为多个帧,每一个栈帧都可以有局部变量、过程链接信息和传递到其它过程的参数。栈帧基址指针(包含在EBP寄存器中)是栈帧内部固定的参考点。在转移到被调过程的第一条指令之前,CALL指令会把EIP寄存器中的地址push到当前栈,这一地址称为返回指令指针。处理器并不会跟踪返回指令指针的位置,程序员必须在执行RET指令之前确保栈指针指向返回指令指针。使用CALL与RET调用过程CALL指令可以跳转到当前代码段(近调用)或其它代码段(远调用)的过程。近调用通常用于访问当前运行的程序或任务的本地过程,远调用通常用于访问操作系统过程或不同任务中的程序。RET指令与CALL指令匹配。1近调用与返回操作CALL:。将EIP寄存器的当前值入栈。载入被调过程的偏移到EIP寄存器。开始执行被调过程RET:。pop栈顶值(返回指令指针)到EIP寄存器。如果RET指令有可选的n参数,递增栈指针(由n参数指定的字节数)。恢复调用过程的运行2远调用与返回操作CALL:。将CS寄存器的当前值入栈。将EIP寄存器的当前值入栈。载入被调过程的段选择器到CS寄存器。载入被调过程的偏移到EIP寄存器RET:。pop栈顶值(返回指令指针)到EIP寄存器。pop栈顶值(返回的代码段的段选择器)到CS寄存器。如果RET指令有可选的n参数,递增栈指针(由n参数指定的字节数)。恢复调用过程的运行3参数传递在过程之间传递参数有三种方式:通用寄存器、参数表或者栈。4保存过程状态信息处理器不会在调用过程时保存通用寄存器、段寄存器或EFLAGS寄存器的内容,所以必须显性地保存需要的值。PUSHA与POPA指令能帮助保存和恢复通用寄存器的内容。PUSHA按照以下顺序将通用寄存器的值入栈:EAX,ECX,EDX,EBX,ESP(执行PUSHA指令之前的值),EBP,ESI和EDI。POPA指令恢复PUSHA指令保存的值(除了ESP值)。PUSHF指令将EFLAGS寄存器的低字入栈,而PUSHFD指令将整个EFLAGS寄存器入栈。5调用到其它权级IA-32架构的保护机制提供四种权限等级,编号0到3,数字越大,权限越小。图6-3. 保护等级中断与异常处理器提供两种机制中断程序运行:。中断是由I/O设备触发的异步事件。异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省观音片2026届九年级化学第一学期期中预测试题含解析
- 2026届江西省萍乡市英语九年级第一学期期末学业水平测试试题含解析
- 黑龙江省七台河市名校2026届九年级英语第一学期期末监测试题含解析
- 江苏省连云港市名校2026届九年级化学第一学期期中综合测试模拟试题含解析
- 2025年新能源光伏电站运维技术测试题库及答案
- 广东省韶关市乳源县2026届九上化学期中学业质量监测试题含解析
- 2026届重庆市两江新区化学九上期中达标检测试题含解析
- 福建省龙岩市永定区湖坑中学2026届九上化学期中考试模拟试题含解析
- 生命科学园区租赁协议及生物医药产业孵化合作协议
- 创业公司核心员工离职协议及股权激励范本
- 四川成都交易集团有限公司招聘笔试题库2025
- 2025-2026学年一年级上册统编版道德与法治教学计划
- 2025年《资料员专业基础知识》考试题库及答案
- 2025年法规审查要点与合规操作实务方案
- 2025年银发经济老年教育产业现状与未来发展趋势白皮书
- 国开2025年秋季《形势与政策》专题测验1-5答案
- 2025-2030中国金红石开发利用市场发展潜力与产销规模规划报告
- 2025年智慧数据中心绿色运维解决方案深度解析
- 成本控制与成本分析方法指导手册
- 环境灾害预警系统-洞察及研究
- 无人机基地技术支持与服务方案
评论
0/150
提交评论