Все сравнения в x86 (и любые архитектуры, которые используют флаги) реализуются путем вычитания, а затем устанавливаются некоторые флаги в зависимости от результата. Затем процессор может использовать эти флаги для определения любых операторов сравнения, таких как>,> =, =, <=, <</p>
Например, чтобы проверить, равны ли два значения, он проверит, равен ли результат нулю (ZF = 1). Чтобы проверить Ниже приведены некоторые условия сравнения на x86. Вы можете увидеть их здесь
JE Jump if equal ZF = 1 74 0F 84
JZ Jump if zero
JNE Jump if not equal ZF = 0 75 0F 85
JNZ Jump if not zero
JB Jump if below unsigned CF = 1 72 0F 82
JNAE Jump if not above or equal
JC Jump if carry
JNB Jump if not below unsigned CF = 0 73 0F 83
JAE Jump if above or equal
JNC Jump if not carry
JBE Jump if below or equal unsigned CF = 1 or ZF = 1 76 0F 86
JNA Jump if not above
JA Jump if above unsigned CF = 0 and ZF = 0 77 0F 87
JNBE Jump if not below or equal
Некоторые архитектуры (например, MIPS) не используют флаги, а используют аппаратный компаратор, а затем устанавливают регистр в какое-то конкретное значение