Может быть немного трудно найти sete
во многих руководствах, так как они не перечисляют его напрямую, как cmove
.Одна хитрость заключается в том, чтобы использовать функцию документирования в компиляторе Годболта
Просто напишите инструкцию, как эта
__asm("sete %al");
sete al
также будет работать, так как мы неНе важно, что это за операнды, важнее всего мнемоника.Затем, если вы наведете указатель мыши на слово sete
, вы увидите всплывающую подсказку с документацией.Теперь наведите курсор на это слово и нажмите Ctrl + F8 .Появится другое всплывающее окно
SETE help
Устанавливает целевой операнд на 0 или 1 в зависимости от настроек флагов состояния (CF, SF, OF, ZF и PF) врегистр EFLAGS.Операнд-адресат указывает на регистр байтов или байт в памяти.Суффикс кода условия (cc) указывает на условие, которое проверяется.
В конце всплывающего окна вы также увидите ссылку на документацию для этой инструкции , где выможно увидеть это
0F 94 SETE r/m8 M Valid Valid Set byte if equal (ZF=1).
REX + 0F 94 SETE r/m8* M Valid N.E. Set byte if equal (ZF=1).
ZF будет установлен, когда результат равен нулю, что также указывает на «равное» условие