第三章 指令系统_02

第三章 指令系统_02

ID:21387226

大小:391.50 KB

页数:38页

时间:2018-10-21

第三章 指令系统_02_第1页
第三章 指令系统_02_第2页
第三章 指令系统_02_第3页
第三章 指令系统_02_第4页
第三章 指令系统_02_第5页
资源描述:

《第三章 指令系统_02》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章指令系统曲阜师范大学杏坛学院3.3.5程序控制指令无条件转移指令JMPOPRD(标号)其他转移命令条件转移指令依据单个标志位的条件转移指令用于无符号数的条件转移指令带符号数的条件转移指令循环指令LOOP指令其他转移指令中断指令程序控制转移类指令转移类指令可改变CS与IP的值或仅改变IP的值,以改变指令执行的顺序。程序转移指令:凡是能改变指令执行顺序的指令统称为程序转移指令。程序控制转移类指令分类:共分六类,无条件转移指令、子程序调用和返回指令、条件转移指令、循环控制指令、中断指令、处理器控制命令。1.程

2、序转移的地址程序的寻址是由CS和IP完成的,为使程序转移到一个新的地址执行,同时改变CS和IP或只改变IP的内容均可。可直接转移(转移的目的地址直接出现在指令的机器码中)。也可间接转移(转移的目的地址间接存储于某一个寄存器或某一个内存变量中)。(1)段间转移、段间调用同时改变CS和IP内容。将下一条指令的IP入栈(SP-2),CS入栈(SP-2)。返回式出栈(2)段内转移、段内调用只改变IP的内容,将下一条指令的IP入栈(SP-2),返回式出栈。可分为16位偏移量NEAR和8位偏移量SHORT,16位偏移量适

3、用于无条件转移指令和条件转移指令;8位偏移量适用于条件转移指令,范围为-128~+127。注:段间转移、段间调用、段内转移、段内调用的CS和IP的入栈和出栈是由机器自动完成的。2.无条件转移指令无条件转移指令可以转移到存储器的任何程序段。格式:JMP[转移方式]OPRD功能:转移到OPRD所指向的存储器单元处执行程序。规定:OPRD可为除立即数外的各种寻址方式。(1)段内直接短转移指令格式:JMPSHORTOPRD;(IP)←(IP)+OPRD规定:OPRD为8位地址偏移量,为符号地址(标号)。由SHORT指

4、出,范围为-128~+127。(2)段内直接近转移指令格式:JMPNEARPTROPRD;(IP)←(IP)+OPRD规定:OPRD为16位地址偏移量,为符号地址(标号)。由NEAR指出,NEAR可省略(指令可写成JMPOPRD)。目的地址与JMP指令应处于同一地址段范围之内。(3)段内间接转移指令格式:JMPWORDPTROPRD;(IP)←[EA]规定:OPRD可为除立即数外的各种寻址方式。若OPRD为16位寄存器,则(IP)←(reg);若OPRD为存储器中的一个字,则(IP)←(add+1)(add)

5、。如:JMPWORDPTR[BX];(IP)←((DS)☓16+(BX))JMPWORDPTRBX;(IP)←(BX)(4)段间直接(远)转移指令格式:JMPFARPTROPRD;(IP)←OPRD的段内偏移地址(CS)←OPRD所在的段地址规定:OPRD为直接寻址方式。(5)段间间接转移指令格式:JMPDOWRDPTROPRD;(IP)←[EA](CS)←[EA+2]3.子程序调用和返回指令(1)子程序调用指令CALLCALL指令用来调用一个过程或子程序。由于过程或子程序有段间调用(即远程FAR)和段内调用

6、(即近程NEAR)之分。所以CALL也有FAR和NEAR之分。因此返回指令RET也分段间与段内返回两种。格式:CALL子程序名DST段内调用:CALLNEARPTROPRD;(SP)←(SP-2),((SP)+1)(SP))←(IP),(IP)←子程序DST的地址(即:IP+16位位移量)规定:CALL指令首先将当前IP内容压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中。段间调用:CALLFARPTROPRD;(SP)←(SP-2),((SP)+1),(SP))=(CS);(SP)←(SP-

7、2),((SP)+1),(SP))=(IP);(IP)=[EA];(CS)=[EA+2]规定:CALL指令先把CS压入堆栈,再把IP压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中,然后从堆栈中再取出第二个字放入CS中,作为段间返回地址。(2)子程序返回指令RET格式:RET;(IP)←((SP)+1,SP),(SP)←(SP)+2RETn;(IP)←((SP+1),SP),(SP)←(SP+2),返回后(SP)←(SP+n)规定:RETn指令要求n为0----0FFFFH范围内的偶数,当RE

8、T正常返回后,再做SP=SP+n操作。相当于子程序返回后,将栈中的n个单元腾出来了。主要用于主程序为某个子程序提供一定的参数或参数地址。4.条件转移指令8086的条件转移指令是根据标志寄存器中各标志位的状态,决定程序是否进行转移。条件转移指令的目的地址必须在现行的代码段(CS)内,并且以当前指令指针寄存器IP内容为基准,其位移必须在十127~—128的范围之内。格式:指令助记符目的地址功能:当条件满

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

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

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