微机原理与应用 作者 曹玉珍 中国机械工业教育协会 组编 微机原理与应用-第3章.pptVIP

  • 2
  • 0
  • 约3.06万字
  • 约 82页
  • 2015-12-09 发布于广东
  • 举报

微机原理与应用 作者 曹玉珍 中国机械工业教育协会 组编 微机原理与应用-第3章.ppt

机械工业出版社 电子制作:邓蓓 第3章 指令系统 (4)段间直接转移 格式: JMP 目标标号 操作: IP ← OFFSET 目标标号 CS ← SEG 目标标号 说明: 目标标号是其他程序段内的一个标号。指令将目标标号的偏移地址取代指令指针寄存器IP的内容,同时将目标标号的段基址装入CS(SEG 是取段基址操作符)。 例51 JMP LABLE-NAME (5)段间间接转移 格式:JMP 双字地址指针 操作:IP ← [EA] CS ← [EA+2] 说明:指令中的操作数是一个32位的双字存储单元。指令将存储单元前两个字节内容送到IP寄存器,后两个字节内容送到CS寄存器,以实现向另一代码段的转移。 例52 JMP DWORD PTR [BX][SI] 其中:DWORD PTR说明后面数据为双字。 机械工业出版社 电子制作:邓蓓 第3章 指令系统 2.条件转移指令 是依据标志寄存器状态标志位的值进行条件判断的。若条件符合,则转到操作数(一般位标号)指定的指令处执行;若条件不符合,则不转移,继续执行该指令后面的指令。条件转移指令共18条。 (1)根据单个标志位的条件转移指令,见表3-1。其中JCXZ例外,是根据CX寄存器的值转移的。 CX寄存器为零则转移 0 CX JCXZ 无溢出则转移 0 JNO 有溢出则转移 1 OF JO 有奇数个“1”则转移 0 JNP / JPO 有偶数个“1”则转移 1 PF JP / JPE 为正数则转移 0 JNS 为负数则转移 1 SF JS 不为零或不相等则转移 0 JNZ / JNE 为零或相等则转移 1 ZF JZ / JE 无进位或借位则转移 0 JNC 有进位或借位则转移 1 CF JC 说 明 转移条件 测试标志 指令助记符 表3-1 单个标志位的条件转移指令 机械工业出版社 电子制作:邓蓓 第3章 指令系统 例53 根据某一字节带符号数X是正、是零还是负使程序分别转移至标号为PLUS、ZERO、MINUS处执行,可用下列指令实现: MOV AL,X ;AL←X OR AL,AL ;AL不变,但影响状态标志位… JS MINUS ;X为负,转向MINUS JZ ZREO ;X为零,转向ZERO PLUS: … ;X为正时的处理程序段… MINUS:… ;X为负时的处理程序段 ZERO: … ;X为零时的处理程序段 注意:① 条件转移指令的目标标号必须是一个近标号,即目标地址到转移指令的下一条指令之间的距离必须在-128~+127的范围内。如果指令规定的条件满足,则将这个位移量加到IP寄存器上,即IP ← IP+disp8,实现程序的转移。 ② 这些指令不影响标志位 机械工业出版社 电子制作:邓蓓 第3章 指令系统 (2)根据复合标志位的条件转移指令 这类指令主要用于判断两个数的大小,根据相比较的数是无符号数还是带符号数而采用不同的复合标志位作为判断条件,指令见表3-2。 表3-2 复合标志位的条件转移指令 小于等于/不大于转移 SF≠O或ZF=1 JLE / JNG 小于/不大于不等于转移 SF≠O且ZF=0 JL / JNGE 大于等于/不小于转移 SF=O或ZF=1 JGE / JNL 大于/不小于不等于转移 SF=O且ZF=0 JG / JNLE 带 符 号 数 小于等于/不大于转移 CF=1或ZF=1 JBE / JNA 小于/不大于不等于转移 CF=1与ZF=0 JB / JNAE 大于等于/不小于转移 CF=0或ZF=1 JAE / JNB 大于/不小于不等于转移 CF=0且ZF=0 JA / JNBE 无 符 号 数 说 明 转 移 条 件 指令助记符 测试操作数类型 机械工业出版社 电子制作:邓蓓 第3章 指令系统 比较两个数的大小时,既可选基于单个标志位的条件转移指令,又可根据数的特点选用有符合数或无符号数专用的比较转移指令,判断之前应先用比较指令做一次减法,设两数在AX与BX内,即为:“CMP AX,BX”,然后再选择条件转移指令,两数大小比较情况分析具体见表3-3。 表3-3 两数大小比较分析 AX<BX SF=0 OF=1 AX>BX SF=1 OF=1(有溢出) AX>BX SF=0 OF=0(无溢出) AX<BX SF=1 OF=0(无溢出) CMP AX,

文档评论(0)

1亿VIP精品文档

相关文档