Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
_Ivana
3239 / 1873 / 235
Регистрация: 01.03.2013
Сообщений: 5,112
Записей в блоге: 13
1

Сложение через логические операции

02.01.2014, 03:35. Просмотров 983. Ответов 1
Метки нет (Все метки)

Знакомил сегодня сына с системой команд процессора, и озадачил он меня следующим вопросом - можно ли реализовать операцию сложения через только логические операции, сдвиги и условные переходы? Без применения инкремента и декремента, естественно. Посидели, подумали с ним, придумали один вариант, который я только что протестировал и исправил одну ошибку. Интересно, как бы вы реализовали такую функцию? Наш код ниже, написан на С, но это не принципиально - ассемблер на разных платформах порой сильно различается, но простейшие операции присутствуют и одинаковы на большинстве платформ (хотя мы ориентировались на систему команд AVR-Tiny).
C
1
2
3
4
5
6
int SumLog(int a, int b)
{
   int c = a & b, d = a ^ b, e;
   while ( c ^ (e = c | ((c<<1) & d)) ) c = e;
   return (c<<1) ^ d;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2014, 03:35
Ответы с готовыми решениями:

Логические операции
С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в...

Логические операции
Нужно посчитать выражения F = Y*96+Х-16 где: X = 185D (un int) Y = AA (un char) F =...

Логические операции
Как с помощью логический операций, вывести те элементы массива, которые меньше 1? Мне бы сам...

Логические операции на асме.
Дан массив из 5 байт. Рассматривая его как массив из 8 пятиразрядных слов, найти “исключающее или”...

Арифметические и логические операции
Помогите написать программу с условием ae + 7b – d/c; a =7 b =11 d =0604 c =94 e =1994

1
Mikl___
Автор FAQ
13379 / 6382 / 630
Регистрация: 11.11.2010
Сообщений: 11,543
02.01.2014, 03:53 2
Цитата Сообщение от _Ivana Посмотреть сообщение
можно ли реализовать операцию сложения через только логические операции, сдвиги и условные переходы?
_Ivana,
Электронный учебник http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowГЛАВА 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowСложение чисел А и B в несколько этапов
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2014, 03:53

Логические операции в Tasm
Помогите с решением задачи. Дан массив из 7 байт. Рассматривая его, как массив из восьми семибитных...

Адресация и логические операции - разобрать код
Добрый день, помогите разобраться с лабораторными работами студенту. 1) по адресации часть кода...

Записать логические выражения, используя условные операторы, операции отношений и логические операции.
Нужно: Текст программы (включая подробные комментарии) Блок-схему алгоритма ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru