汇编语⾔指令集之条件转移指令
汇编判断指令条件转移指令较多,容易混淆,在此记录⼀下便于⽇后使⽤
1. 根据单个条件标志的设置情况转移
指令英⽂含义格式测试条件JZ/JE jump if zero/equal结果为零/相等则转移JZ/JE OPR ZF=1 JNZ/JNE jump if not zero/equal结果不为零/不相等则转移JNZ/JNE OPR ZF=0 JS jump if sign结果为负则转移JS OPR SF=1 JNS jump if not sign结果为正则转移JNS OPR SF=0 JO jump if overflow溢出则转移JO OPR OF=1 JNO jump if not overflow不溢出则转移JNO OPR OF=0 JP/JPE jump if parity/parity even奇偶位为1则转移JP/JPE OPR PF=1 JNP/JNPE jump if not parity/parity even奇偶位为0则转移JNP/JNPE OPR PF=0 JB/JNAE/JC jump if below/not above、not equal/carry低于/不⾼于或不等于/进位为1则转移JB/JNAE/JC OPR CF=1 JNB/JAE/JNC jump if not below/ above、equal/not carry不低于/⾼于或等于/进位为零则转移JNB/JAE/JNC OPR CF=0适⽤于测试某⼀次运算的结果并根据其不同特征产⽣程序分⽀不同的处理的情况
2. ⽐较两个⽆符号数,并根据⽐较的结果转移
指令英⽂含义格式测试条件等价于JB/JNAE/JC jump if below/not above、not equal/carry低于/不⾼于或
不等于/进位为1则转移JB/JNAE/JC OPR CF=1< JNB/JAE/JNC jump if not below/ above、equal/not carry不低于/⾼于或等于/进位为零则转移JNB/JAE/JNC OPR CF=0≥JBE/JNA jump if below/equal、not above低于/等于、不⾼于则转移JBE/JNA OPR CF并ZF=1≤JNBE/JA jump if not below/not equal、above不低于/不等于、⾼于则转移JNBE/JA OPR CF并ZF=0> 3. ⽐较两个带符号数,并根据⽐较的结果转移
指令英⽂含义格式测试条件等价于JL/JNGE jump if less、not greater/equal⼩于、不⼤于/不等于则转移JL/JNGE OPR SF异或CF=1< JNL/JGE jump if not less、greater/equal不⼩于、⼤于/等于则转移JNL/JGE OPR SF异或CF=0≥JLE/JNG jump if less/equal、not greater⼩于/等于、不⼤于则转移JLE/JNG OPR(SF异或CF)并ZF=1≤JNLE/JG jump if not less/not equal、 greater不⼩于/不等于、⼤于则转移JNLE/JG OPR(SF异或CF)并ZF=0>
4.测试CX或ECX的值为0则转移指令
1. LCXZ (jump if CX register is zero) CX寄存器的内容为零则转移
格式:JCXZ OPR
测试条件:(CX)=0
2. LECXZ (jump if ECX register is zero) ECX寄存器的内容为零则转移
格式:JECXZ OPR (386及其后继机型可⽤)
测试条件:(ECX)=0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论