03第三篇 Intel 80868088 CPU的指令系统05.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 8086/8088指令系统 3.3.5 转移类指令 控制转移指令分为: 无条件跳转指令 程序调用与返回指令 中断调用与返回指令 条件转移指令 循环控制指令 1.无条件跳转 (1) 无条件转移指令 - JMP p49 本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。根据设置CS、IP的方法,JMP指令分成4种情况。 ① 段内直接转移(短转移、近转移): JMP disp 指令中给出的8/16位的位移量加到IP。CS保持不变。 ② 段内间接转移(寄存器、存储器转移): JMP reg/mem reg/mem中的16位偏移地址送IP。CS保持不变。 ③ 段间远转移 JMP segment:offset 指令中给出的16位的段和16位的偏移地址送到CS和IP。 ④ 段间存储器间接转移 JMP mem32 mem32中的16位的段和16位的偏移地址送到CS和IP。 ① 段内直接转移 转移的目标地址由指令直接给出。指令中给出的目标地址实际上是一个相对于IP的位移量: 位移量 转移范围 汇编语言中格式 8位 -128~+127 JMP SHORT OPRD 16位 -32768~+32767 JMP NEAR PTR OPRD 例:JMP 0120H ;直接转向0120H JMP SHORT LP ;转向LP JMP NEAR PTR BBB ;转向BBB 由于是段内转移,故转移后CS内容保持不变 ② 段内间接转移 转移的目标地址由寄存器或存储单元的内容给出。 例:JMP SI 若(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址1200H处开始执行。 注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。 例:JMP [BX+DI] 设指令执行前: (DS)=3000H,(BX)=1000H, (DI)=2000H,(33000H)=2350H; 则指令执行后:(IP)=2350H,详见下页图。 在汇编语言中,段内间接寻址通常写成: JMP WORD PTR[BX+DI] 表示所取得的目标地址是一个字。 ③ 段间远转移 在指令中直接给出要转移到的目的段地址和偏移地址。 例:JMP 2000H:1000H 执行时,(IP)←1000H,(CS)←2000H 注:直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符FAR PTR。 例:JMP FAR PTR far_label 其中的far_label为远类型的标号。 【例】 JMP? FAR PTR NEXT??? ;转移到另一个段中的NEXT处,执行从NEXT 处开始的指令序列 JMP? 8000H:1200H???? ;转移到8000H:1200H处,执行从 8000H:1200H处开始的指令序列 本例中第二条指令的操作图示如下。 ④ 段间存储器间接转移 转移的目的地址(段和偏移)在两个相邻的字存储单元中。例如: JMP DWORD PTR[SI] 设指令执行前:(DS)=4000H,(SI)=1212H, (41212H)=1000H,(41214H)=4A00H 则指令执行后:(IP)=1000H,(CS)=4A00H 于是转到4B000H处开始执行指令。 例中的DWORD PTR表示转移地址是一个双字。 例:p50 例3.56 2. 程序调用与返回指令 过程(子程序) 一段具有特定功能的,供其它程序调用的公用程序。 特点 栈操作:调用子程序时,IP(CS)的内容被压入堆栈栈顶。从子程序返回时,栈顶的内容又被弹出到IP(CS)。 返回:子程序执行结束后一般均要返回调用程序。 调用:一次定义,多次调用; 参数:可带参数调用,以完成不同的功能。 优点 程序代码短,结构清晰,便于编程、调试、修改和阅读。 两条相关指令: 子程序调用指令 CALL 子程序返回指令 RET (1)调用指令CALL ②段内间接调用 ③段间直接调用 ④段间间接调用 (2)返回指令RET 3.中断调用与返回 8086/8088 CPU在程序中允许安排一条中断指令来引起一个中断过程,这种中断叫内部中断,或叫软中断。被中断的指令地址处称

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档