Есть ли способ вычислить операцию мода без использования DIV или IDIV на языке ассемблера x86?
Например, можно использовать DIV, чтобы взять остаток от деления. Но вместо того, чтобы использовать DIV, есть другие варианты?
Есть ли способ вычислить операцию мода без использования DIV или IDIV на языке ассемблера x86?
Например, можно использовать DIV, чтобы взять остаток от деления. Но вместо того, чтобы использовать DIV, есть другие варианты?
Алгоритм деления всегда можно написать самостоятельно, совершенно не используя инструкции DIV
или IDIV
.
Конечно, есть ряд модулей, где вам просто нужна инструкция AND
:
and eax, 255 ;Gives modulo 256
and eax, 15 ;Gives modulo 16
and
с точки зрения производительности.
- person Sep Roland; 27.11.2016
while (divisor <= number) number -= divisor;
уменьшитnumber
до диапазона0
-divisor-1
, что означает, что это будет остаток (конечно, требуется начальная проверка значений для угловых случаев). Что должно быть легко закодировано на ASM. - person Ped7g   schedule 28.11.2016