欢迎来到天天文库
浏览记录
ID:40448128
大小:463.60 KB
页数:12页
时间:2019-08-02
《微机原理80x86指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、五、控制转移类指令能够使程序的执行流程发生改变的指令1.无条件转移JMP转移指令只要执行无条件转移指令JMP,就使程序转移到指定的目标地址,从目标地址处开始执行指令。操作:有以下几种类型⑴段内直接短转移JMPSHORTopr;(IP)←(IP)+Data8Data8是一个字节的补码数范围:-128~+127⑵段内直接近转移JMPNEARPTRopr(IP)←(IP)+Data16Data16是两个字节的补码数范围:-32768~+32767⑶段内间接转移JMPWORDPTRopr(IP)←寄存器或存储器操作数⑷段间直接
2、转移JMPFARPTRopr指令中用立即数的形式指出目标位置的段地址和偏移量⑸段间间接转移JMPDWORDPTRopr目标位置的段地址和偏移量保存在存储器中说明:①在汇编语言中通常使用标号表示要转移到的位置。②在DEBUG环境中通常使用直接指出的是将要转移到的位置。③使用该指令,可以使程序流程改变到任何目标位置。2.条件转移根据判断条件是否成立决定是否转移。按照判断条件的不同分为以下类型:单个标志、无符号数判断、有符号数判断、CX寄存器。条件转移都是段内直接短转移,即(IP)<=(IP)+Data8类型的转移。⑴判断单
3、个标志ZF:JZ(JE),JNZ(JNE)SF:JS,JNSOF:JO,JNOPF:JP,JNPCF:JC,JNC⑵判断无符号数的大小助记符中的意义:A:大于,B:小于,E:等于JB(JNAE),JNB(JAE)同JC,JNC,JBE(JNA),JNBE(JA):判断CFandZF⑶判断有符号数的大小助记符中的意义:G:大于,L:小于,E:等于JL(JNGE):SFxorOF=1JNL(JGE):SFxorOF=0JLE(JNG):(SFxorOF)andZF=1JNLE(JG):(SFxorOF)andZF=0使用比
4、较大小的指令时,必须区分是有符号数还是无符号数。⑷判断CX寄存器JCXZ:CX=03.循环循环指令的转移也都是段内直接短转移,即(IP)←(IP)+Data8类型的转移。LOOP循环判断CX是否等于零,不等于零则循环LOOPZ(LOOPE)当为零或相等时循环判断CX是否等于零,不等于零且ZF=1则循环LOOPNZ(LOOPNE)当不为零或不相等时循环判断CX是否等于零,不等于零且ZF=0则循环操作:①CX←CX-1②根据判断结果确定是否循环说明:①循环指令不影响状态标志。②如果目标位置的位移量超出Data8所能够表示的
5、范围,则需要用JMP辅助来完成循环。4.子程序调用CALL子程序调用指令用法:CALLdst说明:由编译程序自动匹配为某种寻址方式RET子程序返回指令用法:RET段内返回:IP←[SP],SP←SP+2段间返回:IP←[SP],SP←SP+2,CS←[SP],SP←SP+2编译程序自动匹配为段内或段间的返回RETData16在RET的基础上,把SP再加上一个字数据:SP←SP+Data16六、处理器控制指令1.标志处理指令CLC对CF清零,CF←0STC对CF置位,CF←1CMC对CF取反,CF←CFCLD对DF清零,
6、DF←0STD对DF置位,DF←1CLI对IF清零,IF←0STI对IF置位,IF←12.外部同步指令HLT(Halt)停机处理器停止工作,等到外部中断到来,中断结束后继续向下执行。WAIT(Wait)等待处理器处于等待状态,等到外部的TEST引脚上的低电平到来。ESC(Escape)换码该指令是一个交权的指令前缀,把指令给协处理处理。一般和WAIT指令一起使用,通过TEST引脚和协处理器同步。LOCK(Lock)封锁该指令是一个前缀,使得使用此前缀的指令执行时一直维持总线封锁状态。3.空操作指令NOP(NoOpera
7、tion)空操作一个字节的机器码,不执行任何操作,常用在调试程序时使用。
此文档下载收益归作者所有