Оператор if()
означает «пропустить это, если условие не выполнено».
Если условие истинно, вы хотите, чтобы выполнение провалилось в тело if
, а если оно ложно, вы хотите, чтобы выполнение перепрыгнуло через тело if
.
Таким образом, очевидный / буквальный способ компиляции if
- это использование jcc в обратном условии, например jnl
. (Оптимизированный код, безусловно, мог бы работать намного лучше для тех тесно связанных блоков if / else, как вычитание и условное отрицание.)
Если вы хотите использовать jl
, вы должны поместить тело if
вне строки, возможно, после ret
в конце функции, а затем отскочить от него.