《汇编语言程序设计》-相伟-电子教案第4章.ppt

《汇编语言程序设计》-相伟-电子教案第4章.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
21世纪高等院校规划教材 第4章 分支程序设计 本章主要讲解分支程序设计的基本思想和设计方法。通过本章学习,读者应掌握以下内容: 段内寻址与段间寻址 无条件转移指令 条件转移指令 二分支程序设计方法 多分支程序设计方法 4.1 转移地址的寻址方式 Intel 8086/8088CPU中,程序的执行顺序是由代码段寄存器CS和指令指针IP确定的。CS包含当前指令所在代码段的段地址,IP则是要执行的下一条指令的偏移地址。通常情况下,程序是顺序执行的,即CPU取出指令后,自动形成下一条指令的地址,依指令序列顺序执行。但有时需要改变程序的流程,这就要给出目标指令的段地址(CS)和偏移地址(IP)值,这就是与转移地址有关的寻址方式。 与转移地址有关的寻址方式有四种:段内直接寻址、段内间接寻址、段间直接寻址和段间间接寻址。 4.1.1 段内寻址 段内寻址分为段内直接寻址和段内间接寻址两种方式。其转移方式是在当前代码段64KB范围内转移,因此不需要更改段地址CS的值,只要改变偏移地址IP的值即可。 1.段内直接寻址 指令中直接给出转移地址的偏移量(8位或16位),转移目标与转移指令在同一段内。转移指令执行后,CS值保持不变。转移的有效地址为当前的IP值与指令中指定的偏移量之和。即 目标地址 = IP(当前值)+ 偏移量 其中偏移量为8位或16位有符号数。若偏移量为正数,向前转移(即高地址方向);若偏移量为负数,则向后转移(即低地址方向)。另外,对8位偏移量,其转移范围为-128 ~ +127,称为短转移;对16位偏移量,其转移范围为-32768 ~ +32767,称为近转移。 短转移指令为2字节指令,IP的当前值为转移指令所在的IP值加2。近转移指令为3字节指令,IP的当前值为转移指令所在的IP值加3。 例4-1:分析下列指令。 JMP SHORT DSP1 ;短转移指令 JMP NEAR PTR DSP2 ;近转移指令 假设两条指令存放地址均为1000H:0200H,偏移量DSP1为08H,偏移量DSP2为0012H。 短转移指令执行时, 当前IP值 = 0200H + 2 = 0202H。 目标地址 = IP(当前值)+ 偏移量 = 0202H + 08H = 020AH 指令执行后将转向1000H:020AH去执行。 近转移指令执行时, 当前IP值 = 0200H + 3 = 0203H。 目标地址 = IP(当前值)+ 偏移量 = 0203H + 0012H = 0215H 指令执行后将转向1000H:0215H去执行。 2.段内间接寻址 与段内直接寻址方式相同,转移目标与转移指令在同一段内。转移指令执行后,CS值保持不变。与段内直接寻址方式不同的是,转移的有效地址值存放在16位的通用寄存器或连续两个存储单元中。若有效地址在存储单元中,一定要指出存储单元为字型。 例4-2:假设(DS)=2000H,(BX)=3000H,(23000H)=2536H,分析下列指令。 JMP BX 指令执行后,将BX的内容直接赋给IP。所以,(IP)= 3000H 。 JMP WORD PTR[BX] 指令执行后,先计算出存储单元地址23000H,再从该单元中取出内容送给IP。所以,(IP)= 2536H 。 4.1.2 段间寻址 段间寻址分为段间直接寻址和段间间接寻址两种方式。其转移方式是从当前代码段跳转到另一个代码段,因此需要修改CS段地址和IP偏移地址的值。 1.段间直接寻址 在指令中直接给出了转移目标的段地址和偏移地址。只要用指令中指定的偏移地址代替IP寄存器的内容,用指令中指定的段地址代替段寄存器CS的内容就可以完成从一个段到另一个段的转移操作。段间直接转移通常叫远转移(far jump),指令的操作数必须附加FAR PTR操作符。 例4-3:执行如下指令 JMP FAR PTR DSP 假设指令存放地址为1000H:0200H, DSP的有效地址为3620H,段地址 为2000H。 则指令执行后, (IP)= 3620H,(CS)= 2000H。 程序转移到2000H:3620H处继续执行。 2.段间间接寻址 与段间直接寻址方式相同,转移目标与转移指令不在同一段内,转移指令执行后,CS和IP都发生变化。不同的是转移目标的偏移地址和段地址存储在两个连续的字存储单元中。因此指令中需要用DWORD PTR操作符将存储单元指定为双字单元。指令执行时,根据存储单元的寻址方式计算出存储单元地址,从该存储单元取

文档评论(0)

经管专家 + 关注
实名认证
内容提供者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档