Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 14.04.2019
Сообщений: 2
1

Как реализовать операцию "Исключающее или" между двумя битами Mcs-51

18.05.2019, 10:53. Показов 3282. Ответов 8

Author24 — интернет-сервис помощи студентам
Добрый день. Подскажите как реализовать операцию "Исключающее или" между двумя битами, которые находятся в аккумуляторе , а результат этой операции поместить в в другой бит аккумулятора.
Название: 1234.JPG
Просмотров: 45

Размер: 10.3 Кб
D7,D3,D5 - биты аккумулятора
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2019, 10:53
Ответы с готовыми решениями:

Выразить операцию xor (исключающее или) через базовые логические операции
Необходимо выразить операцию xor (исключающее или) через базовые логические операции Правила...

Сложить числа используя операцию «исключающее ИЛИ», предварительно инвертировав второе число
С клавиатуры вводятся два целых положительных числа: первое в шестнадцатеричной системе исчисления,...

Написать функцию, реализующую логическую операцию "Исключающее ИЛИ"
Напишите функцию bool Xor (bool x, bool y), реализующую функцию "Исключающее ИЛИ" двух логических...

Используя операцию "Исключающее Или" переключить 7й бит числа
используя операцию «исключающее ИЛИ» переключите 7й бит числа напишите код программы в билдер с++

Ввести три числа, произвести с ними операцию "Исключающее Или"
Ввод 3 чисел(любых). Операция искл ИЛИ (^)

8
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
18.05.2019, 11:09 2
можно как то заморачиватся со сдвигами,
можно при помощи битов, если аккумулятор поддерживает битовую адресацию, я этого не помню
но я бы составил таблицу истинности, занеc бы этот массив в ПЗУ(256 байт), и потом бы просто выбирал значения, проигрыш в памяти выигрыш в скорости
0
0 / 0 / 0
Регистрация: 14.04.2019
Сообщений: 2
18.05.2019, 11:20  [ТС] 3
Я нашел вот такой пример, но не очень понимаю как это работает
Как реализовать операцию "Исключающее или" между двумя битами Mcs-51

Таблица истинности для исключающего или.
Как реализовать операцию "Исключающее или" между двумя битами Mcs-51

Аккумулятор поддерживает побитовую адресацию
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
18.05.2019, 11:59 4
Лучший ответ Сообщение было отмечено TarasANANAS как решение

Решение

это программная реализация XOR выбраного бита и бита переноса результат в бит переноса
вот таблица истиности
Код
bit  C  C
 0   0  0
 0   1  1
 1   0  1
 1   1  0
смотрим если бит равен 0 то C не меняется, если бит равен 1 то C инвертируется
что и делает команда JNB
http://www.gaw.ru/html.cgi/txt... t_re18.htm
1
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
18.05.2019, 17:17 5
Лучший ответ Сообщение было отмечено northener как решение

Решение

Assembler
1
2
3
4
        mov c, ACC.3
        jnb ACC.7, metka
        cpl c
metka:  mov ACC.5, c
2
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
19.05.2019, 02:42 6
Ethereal, нормальный код. Я бы так же сделал.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
19.05.2019, 08:37 7
Ethereal, а зачем использовать бит переноса?
Assembler
1
2
3
4
        mov ACC.5, ACC.3
        jnb ACC.7, metka
        cpl  ACC.5
metka:   .....
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
20.05.2019, 01:51 8
Цитата Сообщение от ValeryS Посмотреть сообщение
Ethereal, а зачем использовать бит переноса?
Имхо в 51-м нет операции переноса бита с одного произвольного адреса на другой произвольный адрес.
1
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
20.05.2019, 16:13 9
Цитата Сообщение от ValeryS Посмотреть сообщение
mov ACC.5, ACC.3
Нет у 8051 такой пересылки. Есть пересылка MOV <direct>,<direct> байта в байт, но нет бита в бит. Есть только MOV C,<bit> и MOV <bit>,C
2
20.05.2019, 16:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2019, 16:13
Помогаю со студенческими работами здесь

Как выполнить операцию умножение между двумя ячейками одной таблицы и записать результат в ячейку?
а вы случайно не знаете как выполнить операцию умножение между двумя ячейками одной таблицы и...

Реализовать исключающее или для двух массивов целочисленного типа
Добрый вечер, не могу понять, как должна выглядеть функция реализации &quot;исключающее или&quot; для двух...

Реализовать функцию побитового ИЛИ | между двумя файлами, записать это в один файл в обратном порядке битов на Си\С++
Есть два файла binaryData1.info и binaryData2.info. Нужно реализовать функцию побитового ИЛИ между...

Как реализовать отправку сообщений между двумя клиентами (пк)?
кое как разобрался с языком.понятное дело просто синтаксис.без winapi некуда(я виндовщик) и захотел...

Как реализовать поиск по дате между двумя значениями
Есть запрос в котором необходимо сделать поиск по дате. Чтобы пользователь ввел 2 даты и...

Как реализовать вычитание между двумя датами через SQL-запрос
Здравствуйте! Как реализовать вычитание между двумя датами?


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

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