|
Математический вопрос, Программирование на ассемблере |
|
|
|
Dec 21 2013, 16:41
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Привет всем. Я программирую на ассемблере. В моей программе все числа хранятся в 32-х разрядах. Соответственно, математические операции (умножение, деление и прочие), реализованы с помощью функций, которые так же работают с 32-х разрядными числами. Сейчас возникла такая проблема. Мне необходимо сделать вычисления по следующей формуле: X = A * B / C. Числа A, B, C, X - 32-х разрядные. Результат в Х точно поместится в 32 разряда, но при выполнении операции А*В может получится 64-х разрядное число. Подскажите, возможно ли, не прибегая к использованию 64-х разрядных функций и чисел, выполнить вычисления по формуле?
P.S. Функция деления возвращает 2 результата: частное и остаток. Все числа исключительно положительные.
|
|
|
|
|
 |
Ответов
|
Dec 21 2013, 17:11
|
Местный
  
Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199

|
Цитата(Xenia @ Dec 21 2013, 20:55)  Откуда такое ограничение? Чем, собственно, плохо 64-разрядное число в качестве промежуточного результата? Для этого надо писать функцию умножения с получением 64-х разрядного результата, а так же функцию деления 64-х разрядного числа. Я не случайно пишу на асме: у меня места под мою программу очень мало и лишние функции это не айс. Если бы в моем распоряжении была вся память, то я бы писал на С и не задавал таких вопросов.
|
|
|
|
Сообщений в этой теме
d7d1cd Математический вопрос Dec 21 2013, 16:41 lekintr Цитата(d7d1cd @ Dec 21 2013, 20:41) Резул... Dec 21 2013, 17:15 d7d1cd Ну вообще то под словами "результат в Х... Dec 21 2013, 17:37 kovigor Цитата(d7d1cd @ Dec 21 2013, 20:37) Ну во... Dec 21 2013, 19:20  d7d1cd Цитата(kovigor @ Dec 21 2013, 23:20) А чт... Dec 22 2013, 06:26 Егоров Хм.. так 32 разряда - точность. Умножайте спокойно... Dec 21 2013, 21:53 PRidon Ну есть один вариант. Делал похожее умножение на 8... Dec 23 2013, 07:38 d7d1cd Цитата(PRidon @ Dec 23 2013, 11:38) Ну ес... Dec 23 2013, 17:34 d7d1cd Цитата(PRidon @ Dec 23 2013, 11:38) Пусть... Dec 24 2013, 14:28 PRidon Процессор та какой?
Если умножитель аппаратный, то... Dec 24 2013, 06:18 PRidon Это обычное умножение столбиком. Что переполняется... Dec 25 2013, 04:57 d7d1cd Итак, умножению иною реализовано. Вот код:
Код//**... Dec 25 2013, 17:40 PRidon как разберешься с делением - выложи результат. Пол... Dec 26 2013, 05:31 demiurg_spb Я бы, прежде чем изобретать велосипед, ознакомился... Dec 26 2013, 06:19 d7d1cd Цитата(PRidon @ Dec 26 2013, 09:31) как р... Dec 26 2013, 11:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|