第3章_5控制转移(免费阅读).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.42,3.44~3.48 中断指令(4条) 中断指令可以引起CPU中断,这种由指令引起的中断称为软中断 中断指令与过程调用指令有些类似,都是将断点地址先入栈,然后转移到子程序 过程调用可以是NEAR或FAR,能直接或间接调用,而中断只能利用存储器间接转移到它的服务程序,服务程序的入口地址从中断向量表获得 过程调用只保护断点地址进栈,而中断指令还要保护标志寄存器进栈 9、中断调用指令 INT 格式:INT n 功能:调用类型号为n的中断服务程序,n为0~255。 操作: SP←SP-2 [SP]←FR ;PUSHF IF←0 ;CLI TF←0 SP←SP-2 [SP]←CS ;PUSH CS SP←SP-2 [SP]←IP ;PUSH IP CS←(0000H:[n×4+2]) IP←(0000H:[n×4]) IP CS XXXX XXXX SP XXXX SP FR 【例】INT 21H ;调用类型号为21H的中断服务程序 11、溢出中断指令 INTO 格式:INTO 功能:若OF=1则进入类型号为4的溢出中断服务程序 说明:相当于执行指令 INT 4H INTO指令一般放在算术运算指令之后,若运算结果使溢出标志OF=1,则执行INTO指令时便会产生溢出中断,使程序转入类型号为4的溢出中断服务程序,否则不产生中断。 【例】 ADD AL,BL INTO ;若ADD指令运算结果有溢出(OF=1),则进入类型号为4的溢出中断服务程序 10、中断指令 INT3 格式:INT3 功能:同INT 03H 12、中断返回指令 IRET 格式:IRET 功能:从中断服务子程序中返回到主程序(原程序) 说明:IRET指令与RET指令相类似,都是使控制返回到主程序,但IRET指令除从栈中弹出两个字分别送IP、CS外,还弹出第三个字送标志寄存器FR。 IP CS XXXX XXXX SP SP XXXX CS FR FR IP * * 第三章 指令系统 1 2 8086CPU的指令格式 8086CPU的指令系统 3 8086CPU的寻址方式 指令系统 指令分类 数据传送指令 算术运算指令 逻辑运算与移位指令 串操作指令 控制转移指令 处理机控制指令 程序控制指令用来控制程序的执行顺序,用于实现分支、循环、过程调用/返回、中断调用/返回等程序结构 CS:IP总是指向下一条即将执行的指令的地址,通过改变IP和CS的值,可以改变程序的执行顺序,但程序中不能使用MOV指令直接改变CS和IP的值,只能通过程序控制指令实现 段间转移 段内转移 同时改变CS和IP的值,又称远转移,目标属性为FAR。可转移到1MB地址空间的任一位置 只改变IP的值,不改变CS的值,又称近转移/短转移,目标属性为NEAR/SHORT,只能在代码段内转移 近转移 短转移 转移距离用1个字表达,转移范围为代码段内相对当前指令地址-32768~+32767,转移类型为NEAR PTR 转移距离用1个字节表达,转移范围为代码段内相对当前指令地址-128~+127,转移类型为SHORT 转移类型 实际编程时,汇编程序会根据目标地址的属性,自动处理成短转移、近转移或远转移。 程序员可用操作符short、near ptr 或far ptr 强制成为需要的转移类型。 直接转移:在转移指令中直接指明目标地址 间接转移:转移的目标地址间接存储于某寄存器或存储器单元中 相对转移:把当前的IP值增加或减少某一个值,也就是以当前指令为中心往前或往后转移一个距离(位移量) 绝对转移:以新的值完全代替当前的IP值或CS:IP值 所有段内直接转移都是相对转移 所有段内间接转移都是绝对转移 所有段间转移都是绝对转移 转移类指令的目标地址通常采用标号,由汇编程序自动计算目标地址 无条件转移指令(3条) 1、无条件转移指令 JMP(JuMP) 格式:JMP d 功能:程序无条件转移到目标地址d去执行 说明:目标地址d常常用标号表示,标号是目标地址的符号表示。有6种目标地址寻址方式。 ① 段内直接转移(短转移):是相对转移,位移量在指令中占1个字节,转移范围不超过-128~+127字节。 格式: JMP SHORT 标号 JMP 标号(汇编程序自动计算转移距离生成短转移指令) 操作: IP←IP+2 ± 位移量(8位) 【例】 JMP START或JMP SHORT START ;IP←IP+2 + START ② 段内直接转移(近转移):是相对转移,位移量在指令中占2个字节,转移范

文档评论(0)

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

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

1亿VIP精品文档

相关文档