微机接口课件第4章8086指令系统西(下).pptVIP

微机接口课件第4章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文档。上传文档
查看更多
【例4-7】 已知:(CS)=1000H,(IP)=0100H,(DS)=2000H,(BX)=0200H,(20200H)=34H,(20201H)=12H, 执行指令:CALL WORD PTR [BX]。 指令执行过程如图4-2所示。 3.段间直接调用 格式:CALL FAR PTR OPR 功能:主程序和子程序不在同一个代码段内,操作数为子程序名,指令中直接给出要调用的子程序的入口段地址和偏移地址。 【例4-8】 已知:主程序所在代码段的段地址为1000H,(IP)=0100H, 子程序SUM的入口地址为2000H:0200H, 执行指令:CALL FAR PTR SUM。 指令执行过程如图4-3所示。 4.段间间接调用 格式:CALL DWORD PTR OPR 功能:主程序和子程序不在同一个代码段内,操作数为一个32位存储器单元, 其内容为要调用的子程序的入口偏移地址(低16位)和段地址(高16位)。 【例4-9】 已知:主程序所在代码段的段地址为1000H,(IP)=0100H, (DS)=2000H,(BX)=0200H, (20200H)=78H,(20201H)=56H,(20202H)=34H,(20203H)=12H, 执行指令:CALL DWORD PTR [BX]。 4.3.5 返回指令 子程序执行完后,通过返回指令返回主程序继续执行。 返回指令一般作为子程序的最后一条指令,其作用是将CALL指令压入堆栈顶部的返回地址弹出,返回到主程序中,继续执行CALL指令的下一条指令。 注意:该指令对标志位无影响。 4.3.6 中断指令 中断分为内部中断和外部中断两大类。 内部中断又称为软件中断,主要是用来处理程序中的某些异常情况; 外部中断又称为硬件中断,主要用于处理外部设备和CPU之间的信息交换。 软件中断 在程序运行过程中,中断指令用于产生软件中断,调用中断服务程序或异常处理程序,完成对某些特殊情况的处理。 8086系统中有256种中断服务程序,并用0~255对其进行编号,称为中断类型号。 中断服务程序的入口地址(包括段地址和偏移地址)称为中断向量,包含4个字节。 其中,低地址的两个字节存放该入口地址的偏移地址,高地址的两个字节存放段地址。 中断向量按顺序存放在00000H~003FFH的内存区域中, 其地址可由中断类型号获得,计算方法是:中断类型号×4。 1.中断指令 格式:INT n 功能:调用中断类型号为n(0~255)的中断服务程序。 执行中断时,首先将标志位寄存器的内容、INT指令的下一条指令的段地址和偏移地址分别压入堆栈保存,将标志位IF和TF清0, 然后根据n的值计算出中断向量的存放地址,接着从该地址处取出中断向量分别送入IP和CS。 2.溢出中断指令 格式:INTO 功能:程序运行过程中,如果运算结果产生溢出,即OF=1,则调用溢出中断处理程序。 此指令相当于中断类型号为4的INT指令。 3.中断返回指令 格式:IRET 功能:退出中断服务程序,返回被中断的程序,一般作为中断服务程序的最后一条指令。 指令执行时,将堆栈顶部保存的内容依次弹出,分别送入IP、CS和标志位寄存器。 注意:IRET指令将影响所有标志位的值。 4.2.1 标志位操作指令 标志位操作指令共7条,用于设置标志位CF、DF和IF的值,对其他标志位无影响,如表4-1所示。 4.2.2 外部同步指令 外部同步指令共5条,用于控制处理器的状态,它们的操作不影响标志位,如表4-2所示。 实训4-1 寻找字符串中指定字符 【算法分析】 在文章的每一段开头,一般要缩进几个空格。现有一个以空格开头的字符串,找出其中第一个非空格字符,并把其偏移地址存入指定内存单元ADDR中。 首先,将字符串首地址送入DI,设置字符串操作方向,将字符串长度送入CX,并为ADDR设置初值。 重复执行传扫描指令,直到找到第一个非空格字符,使DI指向第一个非空格字符,并将其偏移地址存入ADDR。 若未找到非空格字符,则程序结束。 【源程序】 DSEG SEGMENT;数据段,给变量指定数据,分配存储空间 STR DB This is a string!$ ;定义源字符串 NUM EQU $-STR ;NUM为字符串STR的长度 DSEG ENDS ESEG SEGMENT ;附加段 DB NUM DUP (?) ESEG ENDS SSEG SEGMENT STACK ;堆栈段 DB 100 DUP (?) SSEG ENDS CSEG SEGMENT ;代码段 ASSUME CS: CSEG, DS: DSEG, SS: SSEG, E

文档评论(0)

181****7126 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档