- 1、本文档共206页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(2)INTO(Interrupt if Overflow) 指令格式: INTO 指令功能: 如果溢出标志OF=1: 引起类型号为4的中断,相当于执行INT 4 否则,什么也不做 (3)IRET(Return From Interrupt) 指令格式: IRET 指令功能: 用在中断程序的最后,用于返回主程序: IP出栈,SP+2; CS出栈,SP再+2; 标志寄存器FLAGS出栈,SP再+2 (4)IRETD(386以上) 指令格式: IRETD 指令功能: 用在中断程序的最后,用于返回主程序: EIP出栈,SP+4; CS出栈,SP再+2; 标志寄存器EFLAGS出栈,SP再+4 六、处理器控制类 标志操作指令: CLC、STC、CMC、CLD、STD、CLI、STI 其他处理器控制指令: NOP、HLT、WAIT、ESC、LOCK、BOUND、ENTER、LEAVE 图3-67 DEBUG下JMP指令段内寄存器间接转移示例 图3-68 DEBUG下JMP指令段内存储器间接转移示例 段间直接转移方式 指令格式: JMP 远程目标标号 指令功能: (CS)←标号的段地址 (IP/EIP)←标号的偏移量 例: 1000H:0100H JMP FAR PTR NEXT ;(CS)←2000H,(IP)←0130H …… …… 2000H:0130H NEXT: …… 图3-69 DEBUG下JMP指令段间直接转移示例 段间间接转移方式 指令格式: JMP 存储器操作数 8086:32位操作数,高16位→CS,低16位→IP 80386:64位操作数,高16位→CS,低32位→IP 例: 8086系统: JMP DWORD PTR [BX] ;(IP)←WORD PTR [BX] ;(CS)←WORD PTR [BX+2] 80386系统: JMP FWORD PTR [BX] ;(EIP)←DWORD PTR [BX] ;(CS)←WORD PTR [BX+4] 图3-70 DEBUG下JMP指令段间间接转移示例 (2)条件转移指令 指令格式: Jcc 目标标号 cc:转移条件 目标标号: 8086:只能是短程转移,转移位移量:-128 ~ +127 80386:可以是近程转移 指令功能: 根据当前标志寄存器或计数寄存器器CX/ECX的状态,决定是否转移 对标志寄存器的影响: 条件转移指令对标志寄存器不产生影响 无符号数比较大小: 时转移:JA / JNBE 转移条件:C = 0且Z = 0 ≥ 时转移:JAE / JNB / JNC 转移条件:C = 0 时转移:JB / JNAE / JC 转移条件:C = 1 ≤ 时转移:JBE / JNA 转移条件:C = 1或Z = 1 A:Above,大; B:Below,小;E:Equal,等; N:Not,非 对无符号数: CF:“0”说明“≥”;“1”说明“” AF:“0”说明“≠”;“1”说明“=” 有符号数比较大小 时转移:JG / JNLE 转移条件: ,且Z = 0 ≥ 时转移:JGE / JNL 转移条件: 时转移:JL / JNGE 转移条件: ≤ 时转移:JLE / JNG 转移条件: ,或Z = 1 指令中: G:Greater,大; L:Less,小; E:Equal,等; N:Not,非 如何判断带符号数的大小: 比较带符号数AL和BL: CMP AL,BL 如果AL、BL≥0,或AL、BL≤0,则-128≤ (AL)-(BL) ≤127,所以相减结果没有溢出,这时OF=0。 若(AL)≥(BL),则结果≥0,即S=0; 若(AL)(BL),则结果0,即S=1。 如果AL0,BL0,这时(AL)(BL),那么: 如果没有溢出,OF=0,那么结果落在区间[0,+127]中,这时S=0; 如果产生溢出,OF=1,那么结果超过+127,这时S=1。 如果AL0,BL0,这时(AL)(BL),那么: 如果没有溢出,OF=0,那么结果落在区间[-128,0]中,这时S=1; 如果产生溢出,OF=1,那么结果小于-128,这时S=0。 综合起来: (AL)≥(BL)时,有O=0且S=0,或者O=1且S=1,也即 ; (AL)(BL)时,有O=1且S=
文档评论(0)