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

  • Автор темы lazynov
  • Дата начала
L

lazynov

#1
Как на ассме целочисленно разделить 25000 на число из промежутка от 1 до 80 включительно?
 
B
#2
Для: lazynov
Код:
 n equ						;число из промежутка от 1 до 80 включительно
xor		edx, edx
mov	  eax, 25000
mov	  ebx, n
div		 ebx			 ;в EAX - частное, в EDX - остаток
 
L

lazynov

#3
Для: lazynov
Код:
 n equ					;число из промежутка от 1 до 80 включительно
xor		edx, edx
mov	  eax, 25000
mov	  ebx, n
div		 ebx			;в EAX - частное, в EDX - остаток
Ну спасибо! Только я не совсем тупак! :)
Уточняю: Как целочисленно разделить 25000 на число от 1 до 80 НЕ ИСПОЛЬЗУЯ функцию деления! Т.е. реализация функции div или что-то вроде того!

Но все равно спасибо!
 
B
#4
<!--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] Поэтому, я думаю, что ты сможешь запомнить все проделанные действия на бумаги, и вывести алгоритм деления с использованием только команд сдвига и вычитания.
 
L

lazynov

#5
А что в моём коде используется хоть одна функция.
Ну если тебе нужно написать функцию деления, то сразу бы так и сказал.
Берешь листок бумаги, пишешь на нём 25000 в двоичном коде, и делишь его на свое число (тоже в двоичном коде) в столбик. Поэтому, я думаю, что ты сможешь запомнить все проделанные действия на бумаги, и вывести алгоритм деления с использованием только команд сдвига и вычитания.
Тольео етот алгоритм довольно медленный, что совсем не подходит!
 
B
#6
<!--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
и т. д.

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