微机原理与接口 转移条件cc:单个标志状态 JZ/JE ZF=1 Jump if Zero/ Equal JNZ/NE ZF=o Jump if Not Zero/not equal 术JS SF=l Jump if Sign 第JNS sF=o Jump if Not sign HR JP/JPE PF=1 Jump if Parity/Parity Even H JNP/JPO PF=0 Jump if Not Parity/Parity Odd 业 JO OF=1 Jump if Overflow 出版社 JNO of=o Jump if Not Overflow JC CF=l Jump if Carry JNC cF=o Jump if Not Carry 多个助记符方便记忆
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 转移条件cc:单个标志状态 JZ/JE ZF=1 Jump if Zero/Equal JNZ/JNE ZF=0 Jump if Not Zero/Not Equal JS SF=1 Jump if Sign JNS SF=0 Jump if Not Sign JP/JPE PF=1 Jump if Parity/Parity Even JNP/JPO PF=0 Jump if Not Parity/Parity Odd JO OF=1 Jump if Overflow JNO OF=0 Jump if Not Overflow JC CF=1 Jump if Carry JNC CF=0 Jump if Not Carry 多个助记符方便记忆
微机原理与接口 转移条件cc:两数大小关系 JB/JNAE CF=1 Jump if Below/Not Above or equal JⅠNB/ JAE CF=0 Jump if Not Below/Above or equal 技JBE/ JNA CF=1或ZF=1 Jump if Below/ Not above 术·第4版 JNBE/JA CF=0HZF-0 Jump if not Below or equal/Above JL/ JNGE SF≠OF Jump if Less/ Not Greater or Equal BE JNL/JGE SF=OF 工业出版社 Jump if Not Less/ Greater or Equal JLE/ JNG ZF≠OF或ZF=1 Jump if Less or equal/ Not greater JⅠNLE/JGSF=0F且ZF=0 Jump if Not Less or Equal/ Greater
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 转移条件cc:两数大小关系 JB/JNAE CF=1 Jump if Below/Not Above or Equal JNB/JAE CF=0 Jump if Not Below/Above or Equal JBE/JNA CF=1或ZF=1 Jump if Below/Not Above JNBE/JA CF=0且ZF=0 Jump if Not Below or Equal/Above JL/JNGE SF≠OF Jump if Less/Not Greater or Equal JNL/JGE SF=OF Jump if Not Less/Greater or Equal JLE/JNG ZF≠OF或ZF=1 Jump if Less or Equal/Not Greater JNLE/JG SF=OF且ZF=0 Jump if Not Less or Equal/Greater
薇1.单个标志状态作为条件的条件转移指令 理J(JE)和(小N):利用零位标志ZF ●判断结果是零(相等)还是非零(不等 JS和N:利用符号标志SF ●判断结果是负还是正 J0和JNO:利用溢出标志OF 判断结果是溢出还是没有溢出 出JP(JPE和小NP(JPO):利用奇偶标志PF 社·判断结果低字节“1”的个数是偶数还是奇数 JC和JNC:利用进位标志CF ●判断结果是有进位(为1)还是无进位(为0)
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 1. 单个标志状态作为条件的条件转移指令 ➢JZ(JE)和JNZ(JNE):利用零位标志ZF 判断结果是零(相等)还是非零(不等) ➢JS和JNS:利用符号标志SF 判断结果是负还是正 ➢JO和JNO:利用溢出标志OF 判断结果是溢出还是没有溢出 ➢JP(JPE)和JNP(JPO):利用奇偶标志PF 判断结果低字节“1”的个数是偶数还是奇数 ➢JC和JNC:利用进位标志CF 判断结果是有进位(为1)还是无进位(为0)
〔例4-2〕个数折半程序-1 微机原理与接口技术·第4版机械工业出版社 mov eax,885;假设一个数据 shr eax,1;数据右移进行折半 Jnc goeven ;余数为0,即CF=0条件成立,转移 add eax, 1 ;否则余数为1,即CF=1,进行加1操作 Nk goeven: call dispuid 显示结果 43 运行结果
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 〔例4-2〕个数折半程序-1 mov eax,885 ; 假设一个数据 shr eax,1 ; 数据右移进行折半 jnc goeven ; 余数为0,即CF=0条件成立,转移 add eax,1 ; 否则余数为1,即CF=1,进行加1操作 goeven: call dispuid ; 显示结果 443 运行结果
〔例4-2〕个数折半程序-2 mov eax,886;假设一个数据 接 shr eax,1;数据右移进行折半 技 术 jc goodd 第 ;余数为1,即CF=1条件成立,转移到分 版支体,进行加1操作 机 Jmp goeven 械 ;余数为0,即CF=0,不需要处理,转移 业 出到显示! 版 社 goodd: add eax,1;进行加1操作 goeven: call dispuid;显示结果 jnc goeven·何不合二为-?
微 机 原 理 与 接 口 技 术 · 第 4 版 机 械 工 业 出 版 社 〔例4-2〕个数折半程序-2 mov eax,886 ; 假设一个数据 shr eax,1 ; 数据右移进行折半 jc goodd ; 余数为1,即CF=1条件成立,转移到分 支体,进行加1操作 jmp goeven ; 余数为0,即CF=0,不需要处理,转移 到显示! goodd: add eax,1 ; 进行加1操作 goeven: call dispuid ; 显示结果 jnc goeven 何不合二为一?