Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
1

Найти остаток от деления двух без знаковых чисел, не используя команды mul, div

16.12.2012, 12:57. Показов 5046. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет, нужно найти остаток от деления двух без знаковых чисел, не используя команды mul, div.
Можно использовать ANL (AND), сдвиг влево-вправо - если понадобится.

Написал только с div....

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.model small
.data
x dd 60  
y dw 30 
ost dw ?
.code
start:
mov ax, @data
mov ds, ax
 
mov ax, word ptr [x]
mov dx, word ptr [x+2]
div y
mov ost, dx
 
.exit
end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2012, 12:57
Ответы с готовыми решениями:

Умножение двух без знаковых чисел, не используя команду mul
Приветствую, вдогонку прошлой темы "Найти остаток от деления двух без знаковых чисел, не используя...

Вывести на экран частное и остаток от деления двух чисел. Без использования команды DIV
Здравствуйте! Помогите пожалуйста понять как программировать в MASM... Нужно решить следующую...

команды умножения и деления со знаком и без знака mul,imul,div,idiv
Добрый день. В общем то задание написать программу на С++ ,которая показывала бы исполнения команд...

Составить программу, которая вычисляет частное и остаток от деления чисел x и y без использования операций div и mod
Помогите составить программу, которая вычисляет частное и остаток от деления чисел x и y без...

7
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
16.12.2012, 13:29 2
borovik, обычно, если хотят не использовать деление, то используют умножение на "магическое число", но так как умножение запрещено, то остаток от деления X на Y можно получить многократным вычитанием из Х числа Y пока разница не станет отрицательной или нулевой, если разница равна нулю, то деление проходит без остатка, если разница стала отрицательной, то нужно к разнице добавить Y -- это и будет остаток
если деление числа https://www.cyberforum.ru/cgi-bin/latex.cgi?X идет на число являющееся степенью двойки (https://www.cyberforum.ru/cgi-bin/latex.cgi?Y={2}^{N}), то остаток от такого деления равен X AND (N-1)
1
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
16.12.2012, 13:57  [ТС] 3
ага, в алгоритме разобрался.
тут (в процессоре) оказывается ещё и вычитания нету, как реализовать вычитание? (гугл говорит чтото про дополнительные коды, обратные) куда копать?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
16.12.2012, 14:02 4
borovik,
а что за процессор такой? если есть сложение и инверсия (NOT) тогда
-X= NOT(Х) + 1 или X-Y=NOT(Y+NOT(X))
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
16.12.2012, 14:28  [ТС] 5
intel 8048
Инверсию нашел вроде, сложение есть.
Код
CPL  A    |37|--|G|1|Complement accumulator
А вот по поводу -X= NOT(Х) + 1 , не получается

Код
100 4          100=011+1=100 4
+10 2                    +10 2
--- -                      ---
110 6                    110 6
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
16.12.2012, 15:00 6
Цитата Сообщение от borovik Посмотреть сообщение
А вот по поводу -X= NOT(Х) + 1 , не получается
очень даже получается 4 - 2 = 2
Код
 100 4     100 4
+010 2    +101 +not(2)
 --- -    +001 +1
 110 6     --- -
        (1)010 2
переносом в следующий разряд пренебрегаем
1
13 / 13 / 1
Регистрация: 16.12.2010
Сообщений: 265
06.05.2014, 19:13 7
Цитата Сообщение от Mikl___ Посмотреть сообщение
обычно, если хотят не использовать деление, то используют умножение на "магическое число"
можете пояснить, что за магическое число?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
07.05.2014, 03:44 8
Mars30,
читай в https://www.cyberforum.ru/asse... 05284.html https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Глава 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫ" https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Команды деления" https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Недокументированные способы деления" https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Деление через умножение"
1
07.05.2014, 03:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 03:44
Помогаю со студенческими работами здесь

Написать программу, которая используя функции mod (остаток от деления) и div (целая часть от деления)
Написать программу, которая используя функции mod (остаток от деления) и div (целая часть от...

Найти остаток от деления двух натуральных чисел
1) Найти остаток от деления двух натуральных чисел. При решении задачи составить схему программы и...

Найти остаток от деления двух действительных чисел
2) Составить блок-схему и написать программный код со- гласно условию задачи: Найти остаток от...

Найти остаток от деления двух действительных чисел
Задание такое: найти остаток от деления двух действительных чисел. Реализовал вот так: Sub...

Для двух целых чисел найти остаток и частное от целочисленного деления, частное от вещественного деления
Уважаемые форумчане помогите пожалуйста с двумя программами. Это вопрос жизни и отчисления, я...

Найти частное и остаток от деления нацело без операции деления
1)Дано целое число A (> 0) и целое число B (> 0). Найти долю Q и остаток R от деления нацело числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru