Nasm x86-64 битовое деление - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь разделить на ассемблере

Я не могу найти в Интернете хороший пример того, как разделить на 64 бита.

Пока у меня есть 2 значения в двух переменных

input
input2

который где читается в

Я умею умножаться хорошо, но я застрял в делении

, так что если я не хочу делитьдва целых числа, я делаю

mov rcx, [input]

mov rdi, [input2]

idiv rcx, rdi

, которые автоматически дают Sme ошибку, потому что предполагается, что деление только один регистр, поэтому я предполагаю, что при использовании idiv, он автоматически делит некоторыезарегистрироваться, по указанному вами, поэтому я попытался

idiv rcx

, но я получаю "ошибку с плавающей запятой"

идеи?

1 Ответ

3 голосов
/ 13 января 2012

Быстрый просмотр документации показывает две возможности деления на 64-битные числа:

IDIV р / м32

Подразделенное деление EDX: EAX на r / m32 , с результатом, сохраненным в EAX ← Частное, EDX ← Остаток.

IDIV р / м64

Подразделение RDX: RAX со знаком r / m64 , с результатом, сохраненным в RAX ← Частное, RDX ← Остаток.

Это будет целочисленное деление. Ваш вопрос помечен с плавающей точкой - если вы хотите разделить с плавающей точкой, вам понадобится один из вариантов инструкции FDIV.

...