 
         
         
         
         
        版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及应用第五章8086指令系统第二十九讲程序控制指令之无条件转移指令下面我们来学习处理器控制指令程序控制指令之无条件转移指令首先来学习一下转移指令,8086指令系统程序控制指令之无条件转移指令转移指令通过修改指令的偏移地址或段地址及偏移地址实现程序的转移无条件转移指令:无条件转移到目标地址条件转移指令:当具备一定条件时转移到目标地址通常指状态标志位转移指令转移指令是通过修改指令的偏移地址IP或者是同时修改段基址CS和偏移地址IP的值来实现程序的转移8086指令系统程序控制指令之无条件转移指令转移指令通过修改指令的偏移地址或段地址及偏移地址实现程序的转移无条件转移指令:无条件转移到目标地址条件转移指令:当具备一定条件时转移到目标地址通常指状态标志位转移指令CSIP修改指令偏移地址或段地址及偏移地址实现程序的转移转移指令转移指令分无条件转移指令和条件转移指令8086指令系统程序控制指令之无条件转移指令转移指令通过修改指令的偏移地址或段地址及偏移地址实现程序的转移无条件转移指令:无条件转移到目标地址条件转移指令:当具备一定条件时转移到目标地址通常指状态标志位无条件转移指令条件转移指令转移指令无条件转移指令不需要满足任何条件就可以转移到目标地址,条件转移指令是指当具备一定条件的时候才转移到目标地址,这里的条件就是标志位的状态8086指令系统程序控制指令之无条件转移指令转移指令通过修改指令的偏移地址或段地址及偏移地址实现程序的转移无条件转移指令:无条件转移到目标地址条件转移指令:当具备一定条件时转移到目标地址通常指状态标志位无条件转移指令条件转移指令无条件转移到目标地址具备一定条件转移一定条件标志位状态首先我们来看一下无条件转移指令
无条件转移指令使程序无条件转移到IP指向的代码段的位置,并从这个地址开始执行程序无条件转移指令没有断点,没有返回,没有堆栈操作,也不影响任何标志位总之,就是IP让去哪里就去哪里,程序不会再回到转移前的位置,所以也不需要保留任何数据,也就没有堆栈的操作无条件转移指令本指令无条件转移到指定的内存地址,执行从该地址开始的程序段无断点,无返回,无堆栈操作,不影响标志位8086指令系统程序控制指令之无条件转移指令转移指令无条件转移到指定内存地址,从该地址执行程序无断点,无返回,无堆栈操作,不影响标志位无条件转移指令无条件转移指令按是否修改CS的值,可以分为段内转移和段间转移无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令段内转移段间转移如果只修改IP的值,不改变CS的值,就是段内转移无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令段内转移段间转移修改IP值,不改变CS值如果既修改IP的值也改变CS的值,就是段间转移无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令段内转移段间转移修改IP值也改变CS值按照指令寻址的方式不同,又分为直接转移和间接转移无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令直接转移间接转移无条件转移指令段内转移段间转移寻址方式:如果程序中直接指定了程序转移的位置就是直接转移如果程序中没有直接告诉我们转移的位置,而是通过寄存器或存储器的值去修改IP的值,那就是间接转移无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令与JMP不在同一代码段段内转移段间转移与JMP在同一代码段段内直接转移段内间接转移段间直接转移段间间接转移JMPOPRDJMPOPRD无条件转移指令的操作码是JMP,就是jump的简称,是跳转的意思无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令与JMP不在同一代码段段内转移段间转移与JMP在同一代码段段内直接转移段内间接转移段间直接转移段间间接转移JMPOPRDJMPOPRDJMP操作码jump:跳转后面是它的操作数无条件转移指令段内直接转移段内间接转移JMPOPRD段间直接转移段间间接转移与JMP在同一代码段与JMP不在同一代码段8086指令系统程序控制指令之无条件转移指令不论是直接转移还是间接转移凡段内转移CS不变,只改变IP凡段间转移CS和IP均改变转移指令无条件转移指令与JMP不在同一代码段段内转移段间转移与JMP在同一代码段段内直接转移段内间接转移段间直接转移段间间接转移JMPOPRDJMPOPRDOPRD操作数段内直接转移首先来看一下段内直接转移,这种情况最简单,保持CS不变,只改变IP,而且新IP的位置在指令中明确的给出转向地址是IP的当前值与位移量之和位移量:当前指令与目标指令之间的距离JMPSHORTDISP
;段内直接短转移,范围是-128~+127:[IP]+DISP8→IPJMPNEARDISP
;段内直接近转移,范围是-32768~32767:[IP]+DISP16→IP段内直接转移8086指令系统程序控制指令之无条件转移指令CSIP改变不变段内直接转移我们举两个例子第一个是JMPshortdisp,这是段内直接短转移,short限定了转移的距离是当前指令-128~+127的范围内第二个是JMPneardisp这是段内直接近转移,near限定了转移的距离是当前指令-32768~+32767的范围内转向地址是IP的当前值与位移量之和位移量:当前指令与目标指令之间的距离JMPSHORTDISP
;段内直接短转移,范围是-128~+127:[IP]+DISP8→IPJMPNEARDISP
;段内直接近转移,范围是-32768~32767:[IP]+DISP16→IP段内直接转移8086指令系统程序控制指令之无条件转移指令JMPshortdisp段内直接短转移范围:-128~+127:[IP]+DISP8→IPJMPNEARDISP段内直接近转移范围:-32768~32767:[IP]+DISP16→IP段内直接转移当遇到这种指令时,程序会计算当前位置跟目标位置之间的距离,并在IP的基础上加上这个距离,使得IP指向跳转的目标位置转向地址是IP的当前值与位移量之和位移量:当前指令与目标指令之间的距离JMPSHORTDISP
;段内直接短转移,范围是-128~+127:[IP]+DISP8→IPJMPNEARDISP
;段内直接近转移,范围是-32768~32767:[IP]+DISP16→IP段内直接转移8086指令系统程序控制指令之无条件转移指令JMPshortdisp段内直接短转移范围:-128~+127:[IP]+DISP8→IPJMPNEARDISP段内直接近转移范围:-32768~32767:[IP]+DISP16→IP转向地址是IP的当前值与位移量之和位移量:当前指令与目标指令之间的距离我们来看这个例子将bx值传送到ax中,然后就跳转到NEXt指示的位置上去这里NEXt跟当前IP指示的指令比较近,所以用short就可以了MOVAX,BXJMPSHORTNEXT;NEXT段内标号ANDCL,0FHNEXT:ORCL,7FH从AND指令到NEXT之间的距离就是相对位移量,JMP转移的地址=IP+位移量段内直接转移8086指令系统程序控制指令之无条件转移指令段内直接转移MOVAX,BXJMPSHORTNEXT;NEXT段内标号ANDCL,0FHNEXT:ORCL,7FH程序会计算AND到NEXT的距离,然后给IP加上这个距离,从而让IP指向NEXT的位置,从NEXT开始继续执行MOVAX,BXJMPSHORTNEXT;NEXT段内标号ANDCL,0FHNEXT:ORCL,7FH从AND指令到NEXT之间的距离就是相对位移量,JMP转移的地址=IP+位移量段内直接转移8086指令系统程序控制指令之无条件转移指令段内直接转移MOVAX,BXJMPSHORTNEXT;NEXT段内标号ANDCL,0FHNEXT:ORCL,7FHANDNEXT从AND指令到NEXT之间距离是相对位移量JMP转移的地址=IP+位移量再看段内间接转移,
段内间接转移就是IP要跳转的位置没有直接用标号的形式写出,而是放到了其他的位置上,由于IP是16位的数,所以,程序用一个寄存器或者是两个连续的内存单元给定IP的新值转移地址为指定的16位寄存器或存储器相邻两个单元可以采用各种寻址方式例:JMPBX ;执行后[IP]=[BX]
JMPWORDPTR[BX+DI]JMPOPRD段内间接转移谢谢!8086指令系统程序控制指令之无条件转移指令段内间接转移转移地址为指定的16位寄存器或存储器相邻两个单元可采用各种寻址方式例如JMPBX,就是将ip的新值放到BX中JMPwordptr[bx+di],就是将ip的新值放到bx+di指向的两个连续的内存单元中转移地址为指定的16位寄存器或存储器相邻两个单元可以采用各种寻址方式例:JMPBX ;执行后[IP]=[BX]
JMPWORDPTR[BX+DI]JMPOPRD段内间接转移谢谢!8086指令系统程序控制指令之无条件转移指令段内间接转移转移地址为指定的16位寄存器或存储器相邻两个单元可采用各种寻址方式JMPBX[IP]=[BX]执行后:JMPWORDPTR[BX+DI]JMPWORDPTR[BX+DI]例如JMPBX,就是将ip的新值放到BX中JMPwordptr[bx+di],就是将ip的新值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 过年升级活动方案
- 迪士尼花车活动方案
- 蜂蜜促销活动方案
- 装修公司看工地活动方案
- 贸易协会活动方案
- 落户慰问活动方案
- 诚信创意活动方案
- DB41∕T 1713-2018 普通干线公路养护大中修实施方案编制规程
- 基孔肯雅热诊疗方案2025年版培训课件、测试题及参考答案
- 2025年临床医师《医学基础理论》备考题库及答案解析
- 2026年一级造价师之建设工程计价考试题库500道附完整答案【名校卷】
- 山东省青岛2025年七年级上学期语文期中试卷附答案
- 冷库储存生姜合同范本
- 服务营销的考试题及答案
- 2025年场地租赁合同模板下载
- 高素质农民的有关课件
- 2025年四川烟草专卖局考试真题
- 2024年国家级检验检测机构资质认定评审员考试模拟试题及答案
- 彩绘曼陀罗课件
- 湾汇云中心公馆500㎡超豪宅方案
- 农发行保定市清苑区2025秋招笔试综合模拟题库及答案
 
            
评论
0/150
提交评论