第3章80X86指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80386的保护环 段式地址转换 分页机制 小 结 * 在子程序中 (过程),最后一条指令必须是返回指令RET,它将堆栈中保存的返回地址自动弹出至CS和IP。 CALL指令 段内调用 段间调用 直接调用 间接调用 直接调用 间接调用 (近调用) (远调用) * (3) RET n 返回指令。n为弹出值,它使SP值在正常返回之后的基础上再加上n (n为偶数)。这是为了丢弃原已压栈的一些参数。 * 2. 条件转移指令 条件转移指令共有18条,这些指令根据状态标志决定是否转移,转移的目标范围在-128~+127之间。 * 条件转移指令的执行流程 条件满足 ? 顺序执行下一条指令 目标处执行 N Y,转移 * (1) 无符号数条件转移指令 设执行了指令CMP AX,BX,其中AX,BX中均为无符号数(设AX=A,BX=B) ,则采用以下指令进行转移: 含 义 指 令 转 移 条 件 A高于B A高于等于B A低于等于B A低于B JA / JNBE JAE / JNB JB / JNAE JBE / JNA CF=0 AND ZF=0 CF=0 OR ZF=1 CF=1 AND ZF=0 CF=1 OR ZF=1 * (2) 有符号数条件转移指令 设执行了指令CMP AX,BX,其中AX,BX中均为有符号数(设AX=A,BX=B) ,则采用以下指令进行转移: 含 义 指 令 转 移 条 件 A>B A≥B A≤B A<B JG / JNLE JGE / JNL JL / JNGE JLE / JNG SF⊕OF=0 AND ZF=0 SF⊕OF=0 OR ZF=1 SF⊕OF=1 AND ZF=0 SF⊕OF=1 OR ZF=1 * (3) 单状态标志转移指令 含 义 指 令 转 移 条 件 等于/ 结果为0 JE / JZ JNE / JNZ JC JNC ZF=0 ZF=1 CF=0 CF=1 不等于/ 结果不为0 有进位/ 有借位 无进位/ 无借位 溢出 不溢出 有偶数个“1” 有奇数个“1” 符号位为 1 符号位为 0 JO JNO JP / JPE JNP / JPO JS JNS OF=0 OF=1 PF=0 PF=1 SF=0 SF=1 * 3. 循环控制指令 以CX寄存器作为计数指针,每循环一次,CX减1,当CX减至0时,停止循环。 * (1) LOOP 目标标号 功能:CX-1 →CX,若CX≠0则转移至目标,否则顺序执行下一条指令。 循环前CX必须赋初值(循环次数) (2) LOOPE/LOOPZ 目标标号 功能:CX-1→CX,若CX≠0且ZF=1则转移至目标,否则停止循环(CX=0或ZF=0)。 * (3) LOOPNE/LOOPNZ 目标标号 功能:CX-1→CX,若CX≠0且ZF=0则转移至目标,否则停止循环(CX =0或ZF=1)。 (4) JCXZ 目标标号 功能:若CX=0则转移至目标地址,否则顺序执行下一条指令。 * 4. 中断指令 (1) 中断入口地址表 8086系统允许有256种中断类型(0~255),各种类型的中断在中断入口地址表中占4个字节,前2个字节用于存放中断入口地址的偏移地址,后2个字节用来存放中断入口地址的段基址。 * …… 偏移地址 段基址 偏移地址 段基址 00000H 00004H 00008H 003FCH 003FFH 0# 1# 2# 255# …… * (2) 中断的响应过程 ①标志寄存器FR压栈; ②使IF = 0,TF = 0; ③将当前程序断点的基址和偏移地址入栈保护(以便能够正确返回); * ④将中断类型号×4,得到中断入口地址在中断入口地址表的位置,从该位置起连续的4个单元中获得中断入口地址置入CS,IP; ⑤CPU转向中断服务程序执行相关程序。 * (3) 中断指令 ①INT n 功能:执行软件中断,中断类型号为n, n = 0~255。 ②INTO 功能:等价于INT 4,当运算结果产生溢出(OF = 1)时,产生溢出中断。 * ③ IRET 功能:中断返回。 执行的操作: ? 从堆栈中弹出断点地址送CS和IP; ? 恢复标志寄存器的内容; ? CPU回到被打断的地址处继续执行主程序。 * 3.5.1.6 处理器控制指令 1. 标志位操作指令 (2) CLD;使DF = 0 (用于串操作之中) STD;使DF = 1 (3) CLI;使IF = 0 (禁止可屏蔽中断) STI;使IF = 1 (允许可屏蔽中断) CLC;使CF = 0

文档评论(0)

339910001 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档