第2章 2.7.2条件转移指令 Jcc J cabe 条件满足,发生转移:IP←IP+8位位移量 条件不满足,顺序执行 >指定的条件cc如果成立,程序转移到 由标号labe指定的目标地址去执行指 令;条件不成立,则程序将顺序执行 下一条指令 >操作数labe是采用短转移,称为相对 寻址方式
2.7.2 条件转移指令 ➢指定的条件cc如果成立,程序转移到 由标号label指定的目标地址去执行指 令;条件不成立,则程序将顺序执行 下一条指令 ➢操作数label是采用短转移,称为相对 寻址方式 Jcc Jcc label ;条件满足,发生转移:IP←IP+8位位移量 ;条件不满足,顺序执行 第 2 章
第2章 相对寻址方式 Jcc >Jcc指令的操作数labe是一个标号 个8位位移量,表示Jcc指令后的那条 指令的偏移地址,到目标指令的偏移地址 的地址位移 ■8位位移量是相对于当前P的,且距当前 P地址一128~+127个单元的范围之内, 属于段内短距离转移 ■Jcc目标地址就采用这种相对寻址方式 Jcc指令为2个字节,条件不满足时的 顺序执行就是当前指令偏移指针IP加2
第 2 章 相对寻址方式 ➢ Jcc指令的操作数label是一个标号 ◼ 一个8位位移量,表示Jcc指令后的那条 指令的偏移地址,到目标指令的偏移地址 的地址位移 ◼ 8位位移量是相对于当前IP的,且距当前 IP地址-128~+127个单元的范围之内, 属于段内短距离转移 ◼ Jcc目标地址就采用这种相对寻址方式 ➢ Jcc指令为2个字节,条件不满足时的 顺序执行就是当前指令偏移指针IP加2 Jcc
第2章 Jcc指令的分类 Jcc >Jcc指令不影响标志,但要利用标 志(表24)。根据利用的标志位 不同,17条指令分成4种情况: (1)判断单个标志位状态 (2)比较无符号数高低 (3)比较有符号数大小 (4)判断计数器CX为0
第 2 章 Jcc指令的分类 ➢Jcc指令不影响标志,但要利用标 志(表2.4)。根据利用的标志位 不同,17条指令分成4种情况: ⑴ 判断单个标志位状态 ⑵ 比较无符号数高低 ⑶ 比较有符号数大小 ⑷ 判断计数器CX为0 Jcc
第2章 判断单个标志位状态 Jcc >这组指令单独判断5个状态标志之 (1)Jz/E和JNz/JNE:利用零标志ZF,判断结 果是否为零(或相等) 例题239 (2)Js和JNS:利用符号标志SF,判断结果是 正是负 例题2.41 (3)J和JNo:利用溢出标志OF,判断结果是 否产生溢出 例题2.42 (4) JPJJPE和 JNPJJPO:利用奇偶标志PF,判 断结果中“1”的个数是偶是奇 例题243 (5) JCIJBIJNAE和 JNCIJNB/AE:利用进位 标志cF,判断结果是否进位或借位例题24
第 2 章 判断单个标志位状态 ➢ 这组指令单独判断5个状态标志之一 ⑴JZ/JE和JNZ/JNE:利用零标志ZF,判断结 果是否为零(或相等) ⑵JS和JNS:利用符号标志SF,判断结果是 正是负 ⑶JO和JNO:利用溢出标志OF,判断结果是 否产生溢出 ⑷JP/JPE和JNP/JPO:利用奇偶标志PF,判 断结果中“1”的个数是偶是奇 ⑸JC/JB/JNAE和JNC/JNB/JAE:利用进位 标志CF,判断结果是否进位或借位 Jcc 例题2.39 例题2.41 例题2.42 例题2.43 例题2.44
第2章 比较无符号数高低 Jcc >无符号数的大小用高( Above)低 (BeoW)表示 >利用cF确定高低、利用zF标志确定相 等(Equa) >两数的高低分成4种关系: (1)低于(不高于等于):JB(JNAE) (2)不低于(高于等于):JNB(JAE) (3)低于等于(不高于):JBE(JNA) (4)不低于等于(高于):JNBE(JA)
第 2 章 比较无符号数高低 ➢无符号数的大小用高(Above)低 (Below)表示 ➢利用CF确定高低、利用ZF标志确定相 等(Equal) ➢两数的高低分成4种关系: ⑴ 低于(不高于等于):JB(JNAE) ⑵ 不低于(高于等于):JNB(JAE) ⑶ 低于等于(不高于):JBE(JNA) ⑷ 不低于等于(高于):JNBE(JA ) Jcc