Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > как перемножить 2 числа


Автор: Гость_Den 31.10.2005, 07:15
Подскажите, как перемножить два числа по 128бит каждое, и вывести результат.
Работаю в Delphi7.

Автор: oleg1973 31.10.2005, 11:15
а при чем тут асм?

Автор: Lonley 31.10.2005, 16:18
может он хочет ASM вставку сделать

Автор: Akina 31.10.2005, 19:44
в столбик, как же еще...

Автор: Гость_Den 1.11.2005, 08:15
2Akina: Спасибо за исчерпывающий ответ! smile

2Lonley: Я это и подразумевал...

Прога пишется на D7, но надо реализовать умножение чисел по 128 бит каждое.
Вот я и спрашиваю, как их перемножить на асемблере.

Ну так что... ктонить мож код с комментами подкинет, а то что то самому не разобратся.
smile

Автор: Akina 1.11.2005, 08:34
Слышь, гость...
Во-первых, зарегистрируйся.
Во-вторых, не надо думать что над тобой издеваются - мой ответ именно по сути. Реализуй программно умножение в столбик.
В третьих, давай уже имеющийся, созданный тобой, но некорректно работающий код - поможем выправить. Заодно не забудь рассказать как именно ты хранишь 128-битные, есть у них знак или не подвезли... ну и так далее.

А если хочешь чтобы ЗА ТЕБЯ кто-то сделал - топай вон в раздел Работа, заказывай, оплачивай...

Автор: Serzh 3.12.2005, 04:36
Алгоритм такой:
Код

  ret = 0;
  while (v2)
  {
    if (v2 & 1) ret += v1;
    v1 <<= 1;
    v2 >>= 1;
  }

остается тебе реализовать сдвиг, сумму, проверку на ноль и проверку нулевого бита

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)