第三章 8086的寻址方式和指令系统(三).pptVIP

第三章 8086的寻址方式和指令系统(三).ppt

  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文档。上传文档
查看更多
第三章 8086的寻址方式和指令系统(三)

五、程序控制指令 转移指令 循环控制 过程调用 中断控制 1. 转移指令 无条件转移指令 无条件转移到目标地址,执行新的指令 有条件转移指令 在具备一定条件的情况下转移到目标地址 转移指令的转移原理 通过修改代码段寄存器CS及指令指针IP的内容,使程序改变顺序执行的模式,转到新的目标地址执行。 无条件转移指令 指令格式: JMP dest dest可以是标号、立即数、寄存器、内存操作数。 功能:跳转到dest所指的目标地址处。 无条件转移的目标地址可以是在当前代码段,也可在另一代码段。 无条件转移指令 段内转移——目标地址与JMP指令在同一代码段。 寻址方式: 直接转移——指令中直接给出转移的目标地址。 间接转移——由指令中的寄存器或存储器间接给出 转移目标地址。 无条件段内转移 直接转移: JMP disp8/disp16 JMP LABLE JMP SHORT LABLE JMP NEAR LABLE 功能: CS不变,IP←IP+disp8/disp16 转移目标地址: 段基地址不变; 偏移地址=当前IP+位移量 无条件段内转移 间接转移: JMP BX JMP WORD PTR[BX] 无条件段间转移 直接转移: JMP 2100:0100H JMP FAR LABLE 功能: CS←立即数高16位/目标段地址 IP←立即数低16位/目标偏移地址 无条件段间转移 间接转移: JMP DWORD PTR[BX] 小结 条件转移指令 在满足一定的条件下,程序转移到目标地址继续执行; 在条件转移指令之前,应有一条为条件转移指令的执行形成条件的指令(如对标志位产生影响的指令); 条件转移指令均为段内短转移,即转移范围为: -128------+127 格式:JCC SHORT-LABLE 比较无符号数: JA=Jump on Above JNBE=Jump on Not Below or Equal A——Above B——Below N ——Not E ——Equal Z ——Zero 比较符号数: G ——Greater L ——Less E ——Equal O——Overflow P——Par S ——Sign 2. 循环控制指令 控制程序在以当前IP为中心的-128~+127范围内循环执行; 循环次数由CX寄存器指定。 无条件循环指令 格式: LOOP Lable 循环条件: CX ≠ 0 LOOP指令的操作相当于: DEC CX  ;(CX) ← (CX)-1 JNZ Lable ;如果CX的内容不为零,             则转移 条件循环指令 相等循环指令 格式: LOOPZ Lable LOOPE Lable 循环条件: CX ≠ 0且 ZF=1 3. 过程调用和返回 段内调用 段间调用 调用指令与转移指令的比较 用于调用一个子过程; 调用前须保护断点地址; 子过程执行结束后要返回原调用处继续执行原程序 —— 断点恢复。 调用指令的执行过程 将调用指令的下一条指令的地址(断点)压入堆栈; 获取子过程的入口地址(子过程第1条指令的偏移地址); (执行子过程,含相应参数的保存及恢复); 将断点偏移地址由堆栈弹出,返回原程序。 段内调用 子过程与原调用程序在同一代码段,在调用之前只需保护断点的偏移地址 格式: CALL NEAR PROC 段内调用例 CALL TIMRE CALL WORD PTR[SI] 段间调用 子过程与原调用程序不在同一代码段,在调用之前需保护断点的段基地址和偏移地址。 断点地址的保护是先将断点的CS压栈,再将IP压入堆栈。 指令格式: CALL FAR PROC 段间调用例 CALL FAR TIMRE CALL DWORD PTR[SI] 返回指令 从堆栈中弹出断点地址,返回原程序。 格式: RET RET指令一般位于子程序的最后。 小结: 4. 中断指令 中断指计算机暂时挂起正在执行的主程序而转向处理某件事,处理完后再恢复原进程的过程。对某件事的处理即执行一段例行程序,该程序被称为中断处理程序。 中断处理程序的入口地址,称为“中断

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档