80X86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令.doc

80X86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80X86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令

80X86汇编语言程序设计 第二章 8086/8088寻址方式和指令系统 -(五)转移指令 1.无条件转移指令(没有条件碰到就转) (1)无条件段内直接转移指令 格式:JMP 标号 这条指令使控制无条件地转移到标号地址处。 例如:NEXT:MOV AX,CX …… JMP NEXT ;转到NEXT处 …… JMP OVER ;转到OVER处 …… OVER: MOV AX,1 无条件段内直接转移指令格式如下:由操作码和地址差值构成。 指令的操作码 | 地址差 地址差:是程序中该无条件转移指令的下一条指令的开始地址到转移目标地址(标号所指定的开始地址)的差值 。因为,在执行无条件段内转移指令时,实际的动作是把指令中的地址差加到指令指针IP上,使IP之内容为目标地址,从而达到转移的目的。段内无条件直接转移指令中的地址差可用一个字节表示,也可用一个字表示。如果地址差只要用一个字节表示,就称为短转移;如果地址差要用一个字表示,就称为近转移。 段内短跳转:(-128~127) JMP SHORT QUEST 段内近跳转:(64KB) JMP NEAR PTR PROG (2)无条件段内间接转移指令 格式:JMP OPRD 这条指令使控制无条件地址转移到由操作数OPRD的内容给定的目标地址处。操作数OPRD可以是通用寄存器,也可以是字存储单元。 (3)无条件段间直接转移指令 格式:JMP FAR PTR 标号 这条指令使控制无条件地转移到标号所对应的地址处。标号前的符号“FAR PTR”向汇编程序说明这是段间转移。 例如:JMP FAR PTR EXIT EXIT是定义在另一个代码段中的标号。 无条件段间直接转移指令的具体动作时把指令中包含的目标地址的段值和偏移分别置入CS和IP。 这种在指令中直接包含转移目标地址的转移方式称为绝对转移。 (4)无条件段间间接转移指令 格式:JMP OPRD 这条指令使控制无条件地转移到由操作数OPRD的内容给定的目标地址处。操作数OPRD必须是双字存储单元。 例如:JMP DWORD PTR [1234H] 双字存储单元的低字内容送IP; 双字存储单元的高字内容送CS。 例如:(IP)=2BC0H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,(224A0)=0600H,(275B9)=098AH 试为以下的转移指令找出转移的偏移地址:(求IP) (1)段内直接寻址 (2)使用BX及寄存器间接寻址方式的段内间接寻址 (3)使用BX及寄存器相对寻址方式的段内间接寻址 答案:(1)偏移地址=D+IP=5119H+2BC0H=7CD9H (2)JMP BX (16d*DS+BX)=212A0+1200=(224A0)=0600H (3)JMP [BX+D] (16d*DS+BX+D)=212A0+1200+5119=(275B9)=098AH 2.条件转移指令 -8086/8088 提供了大量的条件转移指令,它们根据某标志位或某些标志位的逻辑运算来判别条件是否成立。如果条件成立,则转移,否则继续顺序执行。所有条件转移都只是段内转移。条件转移指令不影响标志。有些条件转移指令有两个助记符,还有些条件转移指令有三个助记符。使用多个助记符的目的是便于记忆和使用。条件转移指令使用的最多的转移指令。通常,在条件转移指令前,总有用于条件判别的有关指令。 下面的程序测试AX的低4位是否全是0,如果均是是0,那么使CX=0,否则使CX=-1 MOV CX,-1 ;先将CX=-1 TEST AX,0FH ;测试AX的低4位 JNZ NZERO ;不全为0则转移 MOV CX,0 ;全为0时使CX=0 NEZRO: …… 从表中可以看出有符号数间的次序关系称为大于(G)、等于(E)、小于(L);无符号数间的次序关系称为高于(A)、等于(E)、和低于(B)。所以,在使用时要注意区分它们。 下面程序实现两个无符号数(设在AX和BX中)的比较,把较大的数存放到AX中,把较小的数存放在BX中; CMP AX,BX JAE OK XCHG AX,BX OK:…… 如果要比较的两个数是有符号数,则可用下面的程序片段: CMP AX,BX JGE OK XCHG AX,BX OK:…… 无符号数之间大小比较后的条件转移指令和有符号数之间的大小比较后的条件转移指令测试的标志完全不同。无符号

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档