我试图找出 x86 指令集系列中条件跳转(JE/JNE、JZ/JNZ)的行为。
哪个条件标志CMP指令集以及如何,如果结果相等,如果不相等?例如:
CMP eax, 0(真的)CMP eax, 0(错误的)
我试图找出 x86 指令集系列中条件跳转(JE/JNE、JZ/JNZ)的行为。
哪个条件标志CMP指令集以及如何,如果结果相等,如果不相等?例如:
CMP eax, 0 (真的)
CMP eax, 0 (错误的)
该CMP指令在内部执行 aSUB并相应地设置标志。
所以所有由 a 设置的标志SUB也由CMP.
即标志SF, ZF, AF, PF, 和CF被设置。
此信息取自处理器的英特尔手册 ( https://software.intel.com/en-us/articles/intel-sdm )。