Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
TarasANANAS
0 / 0 / 0
Регистрация: 14.04.2019
Сообщений: 2
1

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

18.05.2019, 10:53. Просмотров 2268. Ответов 7

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

Размер: 10.3 Кб
D7,D3,D5 - биты аккумулятора
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2019, 10:53
Ответы с готовыми решениями:

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

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

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

Реализовать функцию "Исключающее ИЛИ" двух логических переменных x и y
Вот так все работает : program _Xor; var number1,number2 : byte; function _xor (num1,num2 :...

Заштриховать область между двумя графиками и вывести в ячейке или на графике "входит" или "не входит"
Возможно ли заштриховать область между двумя графиками (область между синим и красным ломанными...

7
ValeryS
Модератор
7719 / 5731 / 742
Регистрация: 14.02.2011
Сообщений: 19,618
Завершенные тесты: 1
18.05.2019, 11:09 2
можно как то заморачиватся со сдвигами,
можно при помощи битов, если аккумулятор поддерживает битовую адресацию, я этого не помню
но я бы составил таблицу истинности, занеc бы этот массив в ПЗУ(256 байт), и потом бы просто выбирал значения, проигрыш в памяти выигрыш в скорости
0
TarasANANAS
0 / 0 / 0
Регистрация: 14.04.2019
Сообщений: 2
18.05.2019, 11:20  [ТС] 3
Я нашел вот такой пример, но не очень понимаю как это работает
Как реализовать операцию "Исключающее или" между двумя битами Mcs-51

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

Аккумулятор поддерживает побитовую адресацию
0
ValeryS
Модератор
7719 / 5731 / 742
Регистрация: 14.02.2011
Сообщений: 19,618
Завершенные тесты: 1
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/doc/micros/mcs51/asm/jnb_bit_re18.htm
1
18.05.2019, 11:59
Ethereal
5891 / 2039 / 273
Регистрация: 17.02.2013
Сообщений: 3,043
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
1
northener
пофигист широкого профиля
3454 / 2349 / 637
Регистрация: 15.07.2013
Сообщений: 13,987
Вчера, 02:42 6
Ethereal, нормальный код. Я бы так же сделал.
0
ValeryS
Модератор
7719 / 5731 / 742
Регистрация: 14.02.2011
Сообщений: 19,618
Завершенные тесты: 1
Вчера, 08:37 7
Ethereal, а зачем использовать бит переноса?
Assembler
1
2
3
4
        mov ACC.5, ACC.3
        jnb ACC.7, metka
        cpl  ACC.5
metka:   .....
0
northener
пофигист широкого профиля
3454 / 2349 / 637
Регистрация: 15.07.2013
Сообщений: 13,987
Сегодня, 01:51 8
Цитата Сообщение от ValeryS Посмотреть сообщение
Ethereal, а зачем использовать бит переноса?
Имхо в 51-м нет операции переноса бита с одного произвольного адреса на другой произвольный адрес.
1
Сегодня, 01:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
Сегодня, 01:51

Как правильно написать "ИЛИ" между двумя условиями? Очень нужно
if (n=0) || (m=0) Console.WriteLine("Нельзя вычислить!"); else ... Как...

Выполнить операцию "логическое И" и операцию "логическое ИЛИ" над числами массива
Помогите пожалуйста, нужно очень срочно написать программу. Теорию знаю, а вот с практикой не...

Рассматривая массив из 8 пятиразрядных слов, найти "исключающее или" всех 8 слов для выражения "10101"
У меня дан массив из 5 байт. Рассматривая его как массив из 8 пятиразрядных слов, найти...


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

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

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