- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
五、控制转移类指令能够使程序的执行流程发生改变的指令1.无条件转移JMP转移指令只要执行无条件转移指令JMP,就使程序转移到指定的目标地址,从目标地址处开始执行指令。操作:有以下几种类型⑴段内直接短转移 JMPSHORTopr ;(IP)←(IP)+Data8Data8是一个字节的补码数范围:-128~+127
⑵段内直接近转移JMPNEARPTRopr (IP)←(IP)+Data16Data16是两个字节的补码数范围:-32768~+32767⑶段内间接转移JMPWORDPTRopr (IP)←寄存器或存储器操作数⑷段间直接转移JMPFARPTRopr指令中用立即数的形式指出目标位置的段地址和偏移量
段间间接转移JMPDWORDPTRopr目标位置的段地址和偏移量保存在存储器中说明:在汇编语言中通常使用标号表示要转移到的位置。在DEBUG环境中通常使用直接指出的是将要转移到的位置。使用该指令,可以使程序流程改变到任何目标位置。
条件转移根据判断条件是否成立决定是否转移。按照判断条件的不同分为以下类型:单个标志、无符号数判断、有符号数判断、CX寄存器。条件转移都是段内直接短转移,即(IP)=(IP)+Data8类型的转移。判断单个标志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使用比较大小的指令时,必须区分是有符号数还是无符号数。
JCXZ:CX=0判断CX寄存器循环指令的转移也都是段内直接短转移,即(IP)←(IP)+Data8类型的转移。循环判断CX是否等于零,不等于零则循环LOOPZ(LOOPE)当为零或相等时循环判断CX是否等于零,不等于零且ZF=1则循环LOOPNZ(LOOPNE)当不为零或不相等时循环判断CX是否等于零,不等于零且ZF=0则循环LOOP循环
循环指令不影响状态标志。如果目标位置的位移量超出Data8所能够表示的范围,则需要用JMP辅助来完成循环。说明:操作:CX←CX-1根据判断结果确定是否循环
01子程序调用02CALL子程序调用指令03用法:CALLdst04说明:由编译程序自动匹配为某种寻址方式05RET子程序返回指令06用法:RET07段内返回:IP←[SP],SP←SP+208段间返回:IP←[SP],SP←SP+2,09CS←[SP],SP←SP+210编译程序自动匹配为段内或段间的返回
在RET的基础上,把SP再加上一个字数据:RETData16SP←SP+Data16
CLC 对CF清零,CF←001STC 对CF置位,CF←102CMC 对CF取反,CF←CF03CLD 对DF清零,DF←004STD 对DF置位,DF←105CLI 对IF清零,IF←006STI 对IF置位,IF←107标志处理指令六、处理器控制指令
01外部同步指令02HLT(Halt)停机03处理器停止工作,等到外部中断到来,中断结束后继续向下执行。04WAIT(Wait)等待05处理器处于等待状态,等到外部的TEST引脚上的低电平到来。06ESC(Escape)换码07该指令是一个交权的指令前缀,把指令给协处理处理。08一般和WAIT指令一起使用,通过TEST引脚和协处理器同步。
LOCK(Lock)封锁1该指令是一个前缀,使得使用此前缀的指令执行时一直维持总线封锁状态。2空操作指令3NOP(NoOperation)空操作4一个字节的机器码,不执行任何操作,常用在调试程序时使用。5
文档评论(0)