第3章80868088指令系统(2980KB).ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
控制传送指令-过程调用和返回(3) 2.段内间接调用 格式:CALL BX 功能:子程序的入口地址由BX给出 ,(BX) →IP 具体操作:(SP)-2→SP  (IP) →(SP+1) ,(SP) ;IP入栈  (BX) →IP ;修改IP值 格式: CALL WORD PTR [BX] 功能:子程序的入口地址[BX][BX+1]两个单元的内容。((BX+1),(BX)) →(IP) 控制传送指令-过程调用和返回(4) 3.段间直接调用 格式:CALL FAR PROC 功能:PROC可以是程序名或地址符号,PROC属性是Far,表示被调用过程在其他代码段,所以要修改CS和IP的值, 例如: CALL 3000H:2100H  执行步骤:    (SP)-2→SP;(CS)→ ((SP+1 ),(SP))   (SP)-2→SP;(IP)→((SP+1 ),(SP)) 2100H→IP;3000H→CS 控制传送指令-过程调用和返回(5) 4.段间间接调用指令 格式:CALL DWORD PTR [BX] 功能:若DS=6000H BX=0560H  执行步骤如下:   (SP)-2→SP;(CS)→(SP+1),(SP)   (SP)-2→SP;(IP)→(SP+1),(SP)    [60561H],[60560H]→IP   [60563H],[60562H]→CS 以上调用指令的地址由[BX]为间接地址的相邻4个单元给出。前两个单元为偏移地址,后两个单元为段地址 控制传送指令-过程调用和返回(6) 返回指令RET是CALL指令的逆操作。 RET n是调整堆栈指针的返回指令,允许废除一些在执行CALL指令以前入栈的参数。 例:阅读程序,分析堆栈的变化。 MOV SP, 1009H MOV AX, 2000H MOV BX, 4000H PUSH AX PUSH BX CALL NEAR ADDPRG MOV AX, MEM1 HLT ; ADDPRG: PUSHF MOV BP, SP MOV AX, [BP+4] ADD AX, [BP+6] MOV MEM1, AX POPF RET 4 控制传送指令-中断和中断返回(1) 中断概念:    计算机暂时中止正在运行的程序,转去处理一组专门的服务程序,完毕又返回到原被中止的程序继续执行,这样过程称为中断。 外部中断也叫硬中断:主要用来处理外设和CPU之间的通讯。 内部中断也叫软中断:主要用来处理类似除数为零或中断指令所引起的中断。 8086中断向量区占1024个字节,共256个向量。 控制传送指令-中断和中断返回(2) 8086/8088的中断向量区 IP CS IP CS IP CS IP 中断向量 类型0(除法) 类型1(单步) 类型2(非屏蔽中断) 类型3(断点) 类型4(溢出INT0) 00000H 00004H 00008H 0000CH 00010H CS IP : CS IP : : 中断指令及可屏蔽的外部中断 00014H 003FFH 控制传送指令-中断和中断返回(3) 1.内部中断指令 INT n;n=0~255 执行该指令功能: 将FLAG、CS、IP压入堆栈 根据中断类型号n×4到中断向量表中查到中断处理程序的入口地址IP和CS 前两个是偏移量赋给IP,后两个是段地址赋给CS CPU转去处理该中断程序。 例:INT 3 ;向量表地址:4×n(3)=0CH   执行步骤: ①(SP)-2→SP,F入栈 ② 0→(TF),0→(IF) ③(SP)-2→SP,CS内容入栈 ④查向量表,第二个字内容F000H→CS ⑤(SP)-2→SP,IP内容入栈 ⑥查向量表中第一个字内容0200H→IP 程序转移到CS:IP=F000:0200处执行 00 F0 00 02 0000CH 0000DH 0000EH 0000FH IP CS 控制传送指令-中断和中断返回(4) 2.IRET(Interrupt return)中断返回指令 放在中断处理程序的最后一条,它通过堆栈自动完成断点恢复和堆栈指针的修改,使程序返回到断点处继续执行。 操作步骤: ①弹栈→IP,恢复断点指针,SP+2→SP ②弹栈→CS,恢复断点处段地址,SP+2→SP ③弹栈→FLAG,恢复断点处的FLAG 寄

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档