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

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

ID:1245217

大小:182.00 KB

页数:7页

时间:2017-11-09

80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令_第1页
80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令_第2页
80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令_第3页
80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令_第4页
80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令_第5页
资源描述:

《80x86汇编语言程序设计 第二章⑧.8086 8088指令系统(五)转移指令》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、80X86汇编语言程序设计第二章8086/8088寻址方式和指令系统(五)转移指令1.无条件转移指令(没有条件碰到就转)(1)无条件段内直接转移指令格式:JMP标号这条指令使控制无条件地转移到标号地址处。例如:NEXT:MOVAX,CX……JMPNEXT;转到NEXT处……JMPOVER;转到OVER处……OVER:MOVAX,1无条件段内直接转移指令格式如下:由操作码和地址差值构成。指令的操作码地址差地址差:是程序中该无条件转移指令的下一条指令的开始地址到转移目标地址(标号所指定的开始地址)的差值。因为,在执行无条件段内转移指令时,实际的动作

2、是把指令中的地址差加到指令指针IP上,使IP之内容为目标地址,从而达到转移的目的。段内无条件直接转移指令中的地址差可用一个字节表示,也可用一个字表示。如果地址差只要用一个字节表示,就称为短转移;如果地址差要用一个字表示,就称为近转移。段内短跳转:(-128~127)JMPSHORTQUEST段内近跳转:(64KB)JMPNEARPTRPROG(2)无条件段内间接转移指令格式:JMPOPRD这条指令使控制无条件地址转移到由操作数OPRD的内容给定的目标地址处。操作数OPRD可以是通用寄存器,也可以是字存储单元。(3)无条件段间直接转移指令格式:J

3、MPFARPTR标号这条指令使控制无条件地转移到标号所对应的地址处。标号前的符号“FARPTR”向汇编程序说明这是段间转移。例如:JMPFARPTREXITEXIT是定义在另一个代码段中的标号。无条件段间直接转移指令的具体动作时把指令中包含的目标地址的段值和偏移分别置入CS和IP。这种在指令中直接包含转移目标地址的转移方式称为绝对转移。(4)无条件段间间接转移指令格式:JMPOPRD这条指令使控制无条件地转移到由操作数OPRD的内容给定的目标地址处。操作数OPRD必须是双字存储单元。例如:JMPDWORDPTR[1234H]双字存储单元的低字内

4、容送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)JMPBX(16dDS+BX)=212A0+1200=(224A0)=0600H(3)JMP[BX+D](

5、16dDS+BX+D)=212A0+1200+5119=(275B9)=098AH2.条件转移指令8086/8088提供了大量的条件转移指令,它们根据某标志位或某些标志位的逻辑运算来判别条件是否成立。如果条件成立,则转移,否则继续顺序执行。所有条件转移都只是段内转移。条件转移指令不影响标志。有些条件转移指令有两个助记符,还有些条件转移指令有三个助记符。使用多个助记符的目的是便于记忆和使用。条件转移指令使用的最多的转移指令。通常,在条件转移指令前,总有用于条件判别的有关指令。下面的程序测试AX的低4位是否全是0,如果均是是0,那么使CX=0,否则

6、使CX=-1MOVCX,-1;先将CX=-1TESTAX,0FH;测试AX的低4位JNZNZERO;不全为0则转移MOVCX,0;全为0时使CX=0NEZRO:……从表中可以看出有符号数间的次序关系称为大于(G)、等于(E)、小于(L);无符号数间的次序关系称为高于(A)、等于(E)、和低于(B)。所以,在使用时要注意区分它们。下面程序实现两个无符号数(设在AX和BX中)的比较,把较大的数存放到AX中,把较小的数存放在BX中;CMPAX,BXJAEOKXCHGAX,BXOK:……如果要比较的两个数是有符号数,则可用下面的程序片段:CMPAX,B

7、XJGEOKXCHGAX,BXOK:……无符号数之间大小比较后的条件转移指令和有符号数之间的大小比较后的条件转移指令测试的标志完全不同。无符号数和有符号数,两数是否相等可由ZF标志的反应。进位标志CF反应两个无符号数比较后的大小关系。两个有符号数比较后的大小关系由符号标志SF和溢出标志OF一起来反映。设要比较的两个不相等的有符号数a和b分别存放在寄存器AX和BX中,执行指令“CMPAX,BX”后,标志SF及OF的设置情况和两数的大小情况如下:当没有溢出(OF=0)时,若SF=0,则a>b若SF=1,则a

8、ab例如:设X、Y均为存放在X和Y单元中的16位操作数,先判X>50否,如满足条件则转移到TOO-HIGH去执行,然后做X-Y,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。