Деление 16-разрядных чисел

Тема в разделе "Другие", создана пользователем lazynov, 19 июл 2007.

  1. lazynov

    lazynov Гость

    Как на ассме целочисленно разделить 25000 на число из промежутка от 1 до 80 включительно?
     
  2. BVS

    BVS Гость

    Для: lazynov
    Код (Text):
     n equ                      ;число из промежутка от 1 до 80 включительно
    xor     edx, edx
    mov   eax, 25000
    mov   ebx, n
    div      ebx             ;в EAX - частное, в EDX - остаток
     
  3. lazynov

    lazynov Гость

    Ну спасибо! Только я не совсем тупак! :)
    Уточняю: Как целочисленно разделить 25000 на число от 1 до 80 НЕ ИСПОЛЬЗУЯ функцию деления! Т.е. реализация функции div или что-то вроде того!

    Но все равно спасибо!
     
  4. BVS

    BVS Гость

    <!--QuoteBegin-lazynov+20:07:2007, 21:40 -->
    <span class="vbquote">(lazynov @ 20:07:2007, 21:40 )</span><!--QuoteEBegin-->НЕ ИСПОЛЬЗУЯ функцию деления!
    [snapback]72866" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    А что в моём коде используется хоть одна функция.

    <!--QuoteBegin-lazynov+20:07:2007, 21:40 -->
    <span class="vbquote">(lazynov @ 20:07:2007, 21:40 )</span><!--QuoteEBegin-->Т.е. реализация функции div
    [snapback]72866" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ну если тебе нужно написать функцию деления, то сразу бы так и сказал.
    Берешь листок бумаги, пишешь на нём 25000 в двоичном коде, и делишь его на свое число (тоже в двоичном коде) в столбик.<!--QuoteBegin-lazynov+20:07:2007, 21:40 -->
    <span class="vbquote">(lazynov @ 20:07:2007, 21:40 )</span><!--QuoteEBegin-->Только я не совсем тупак!
    [snapback]72866" rel="nofollow" target="_blank[/snapback]​
    [/quote] Поэтому, я думаю, что ты сможешь запомнить все проделанные действия на бумаги, и вывести алгоритм деления с использованием только команд сдвига и вычитания.
     
  5. lazynov

    lazynov Гость

    Тольео етот алгоритм довольно медленный, что совсем не подходит!
     
  6. BVS

    BVS Гость

    <!--QuoteBegin-lazynov+21:07:2007, 10:57 -->
    <span class="vbquote">(lazynov @ 21:07:2007, 10:57 )</span><!--QuoteEBegin-->Тольео етот алгоритм довольно медленный, что совсем не подходит!
    [snapback]72888" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Создай массив на 80 элементов в который размести результат деления:
    в 1 элемент - 25000 / 1
    в 2 элемент - 25000 / 2
    в 3 элемент - 25000 / 3
    и т. д.

    А потом когда твое число нужно будет разделить, просто выбери из массива готовый результат.
    Быстрее врядли получится :(
     
Загрузка...

Поделиться этой страницей