- 1、本文档共78页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 call 和 ret 指令 10.1 ret 和 retf 10.2 call 指令 10.3 依据位移进行转移的call指令 10.4 转移的目的地址在指令中的call指令 10.5 转移地址在寄存器中的call指令 10.6 转移地址在内存中的call指令 10.7 call 和 ret 的配合使用 10.8 mul 指令 10.9 模块化程序设计 10.10 参数和结果传递的问题 10.11 批量数据的传递 10.12 寄存器冲突的问题 引言 call和ret 指令都是转移指令,它们都修改IP,或同时修改CS和IP。 它们经常被共同用来实现自程序的设计。 这一章,我们讲解call和ret 指令的原理。 10.1 ret 和 retf ret指令用栈中的数据,修改IP的内容,从而实现近转移; 操作 retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移; 操作 10.1 ret 和 retf CPU执行ret指令时,进行下面两步操作: (1)(IP)=((ss)*16+(sp)) (2)(sp)=(sp)+2 10.1 ret 和 retf CPU执行retf指令时,进行下面两步操作: (1)(IP)=((ss)*16+(sp)) (2)(sp)=(sp)+2 (3)(CS)=((ss)*16+(sp)) (4)(sp)=(sp)+2 10.1 ret 和 retf 可以看出,如果我们用汇编语法来解释ret和retf指令,则: CPU执行ret指令时,相当于进行: pop IP CPU执行retf指令时,相当于进行: pop IP pop CS 10.1 ret 和 retf 示例程序 ret指令 程序中ret指令执行后,(IP)=0,CS:IP指向代码段的第一条指令。 retf指令 程序中retf指令执行后,CS:IP指向代码段的第一条指令。 特别提示 检测点10.1(p179) 没有完成此检测点,请不要向下进行。 10.2 call 指令 CPU执行call指令,进行两步操作: (1)将当前的 IP 或 CS和IP 压入栈中; (2)转移。 call 指令不能实现短转移,除此之外,call指令实现转移的方法和 jmp 指令的原理相同,下面的几个小节中 ,我们以给出转移目的地址的不同方法为主线,讲解call指令的主要应用格式。 10.3 依据位移进行转移的call指令 call 标号(将当前的 IP 压栈后,转到标号处执行指令) CPU执行此种格式的call指令时,进行如下的操作: (1) (sp) = (sp) – 2 ((ss)*16+(sp)) = (IP) (2) (IP) = (IP) + 16位位移 10.3 依据位移进行转移的call指令 call 标号 16位位移=“标号”处的地址-call指令后的第一个字节的地址; 16位位移的范围为 -32768~32767,用补码表示; 16位位移由编译程序在编译时算出。 演示 10.3 依据位移进行转移的call指令 从上面的描述中,可以看出,如果我们用汇编语法来解释此种格式的 call指令,则: CPU 执行指令“call 标号”时,相当于进行: push IP jmp near ptr 标号 特别提示 检测点10.2(p181) 没有完成此检测点,请不要向下进行。 10.4 转移的目的地址在指令中的call指令 前面讲解的call指令,其对应的机器指令中并没有转移的目的地址 ,而是相对于当前IP的转移位移。 指令“call far ptr 标号”实现的是段间转移。 操作 10.4 转移的目的地址在指令中的call指令 CPU执行“call far ptr 标号”这种格式的call指令时的操作: (1) (sp) = (sp) – 2 ((ss) ×16+(sp)) = (CS) (sp) = (sp) – 2 ((ss) ×16+(sp)) = (IP) (2) (CS) = 标号所在的段地址 (IP) = 标号所在的偏移地址 10.4 转移的目的地址在指令中的call指令 从上面的描述中可以看出,如果我们用汇编语法来解释此种格式的 call 指令,则: CPU 执行指令 “call far ptr 标号” 时,相当于进行: push CS push IP jmp far ptr 标号 特别提示 检测点10.3(p181) 没有完成此检测点,请不要向下进行。 10.5 转移地址在寄存器中的call指令 指令格式:call 1
您可能关注的文档
- _海关_及_红字_的同构关系.pdf
- _南柯记_集唐诗的整理及注析_兼对_南柯记_评注_相关注释的补正.pdf
- 第3节 PLD开发工具-第二部分.pdf
- _平面的基本性质_教学设计_教学感悟及点评.pdf
- _梧桐雨_及_长生殿_创作心理同构初探.pdf
- _中而不古_新而不洋_求索_析王学仲艺术研究所方案构思.pdf
- 第3节 动态规划2.pdf
- 第3节 断路器的控制电路.ppt
- _中国经济史研究_文稿体例和注释格式规定_.pdf
- “SJT—B表面活性剂/聚合物”二元复合体系流动性与调驱效果.pdf
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
最近下载
- 数字信号处理(北航)中国大学MOOC慕课 章节测验答案.docx
- 2022-2023学年盐城市滨海县高一上学期期中数学试卷(含答案解析).docx
- 挂牌上锁试题及答案.docx
- (必威体育精装版)24年秋统编一年级语文上册语文园地五(精品课件).pptx
- 国家开放大学必威体育精装版《建筑测量》形考任务(1-4)试题及答案 .pdf
- 血液净化治疗技术管理 第5部分:血液净化医疗机构应急处置规程.pdf VIP
- 福建省生活垃圾焚烧厂运行维护、检测监管与考核评价标准.doc
- DB32/T 3545.6-2023 血液净化治疗技术管理 第6部分:独立血液净化中心设置规范.pdf VIP
- 勾股定理 (共24张).ppt VIP
- SEW减速机说明书.pptx
文档评论(0)