Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 12

Проверка по маске

20.01.2014, 00:54. Показов 2838. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане!Подскажите по ассемблеру AVR,как можно составить подпрограмму формирования признака С.Признак С равен еденице когда в регистре двоичное число 0010хххх(где х-любой бит).Хотя бы подскажите в общих чертах,какие должны быть операторы.Заранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2014, 00:54
Ответы с готовыми решениями:

Проверка по маске
Помогите, пожалуйста, с JavaScript. Нужно в батнике в строке: 'mshta "javascript:var x=clipboardData.getData('text');if(x)new...

Проверка переменной по маске
Есть переменная str. Как проверить соответствует ли она маске 0000:00:00??? Если да, то дальше идет код...

Проверка слова, строки по маске
Как выполнить такое вот относительно простое сравнение? ParOne:String; .. if AnsiLowerCase(ParOne)=+'w'++ then суть такова, если...

21
1022 / 157 / 10
Регистрация: 16.01.2013
Сообщений: 544
20.01.2014, 09:40
Оператором & c числом 00001111В подавляете младшие четыре бита(устанавливаете в 0) и сравниваете с 00100000В. По результату устанавливаете признак
1
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
20.01.2014, 09:58
Операция "логическое И" регистра с константой
Assembler
1
andi регистр,00001111В
Сравнение регистра с константой
Assembler
1
cpi регистр,00100000В
1
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
20.01.2014, 13:33
И осталось совсем самую малость:
Assembler
1
2
3
4
sec
breq m1
clc
m1:
1
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
20.01.2014, 18:21
Цитата Сообщение от MaslovVG Посмотреть сообщение
Оператором & c числом 00001111В подавляете младшие четыре бита
Думаю так лучше
Assembler
1
andi регистр,11110000В
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 12
20.01.2014, 18:52  [ТС]
Цитата Сообщение от pyzhman Посмотреть сообщение
И осталось совсем самую малость:
Assembler
1
2
3
4
sec
breq m1
clc
m1:
Не могли бы по-подробней,я пока еще плохо знаю assembler AVR.В каком операторе проверяется условие "Если флаг равен еденице,то...."?Что означает метка m1?
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
20.01.2014, 19:20
Цитата Сообщение от kolegan Посмотреть сообщение
В каком операторе проверяется условие "Если флаг равен еденице,то...."?
Assembler
1
2
3
4
5
cpi регистр,00100000В;если равно, устанавливаем Z в 1, иначе в 0
sec;запись 1 в C
breq m1;если Z равен 1, пропускаем следующую строку
clc;запись 0 в C
m1:
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 12
20.01.2014, 19:37  [ТС]
Можно ли вместо команды BREQ использовать команду BRCS?

Добавлено через 15 минут
Цитата Сообщение от Grey Посмотреть сообщение
sec;запись 1 в C
Получается что C=1 в любом случае, независимо от того равен Z единице или нет?
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
20.01.2014, 19:48
Цитата Сообщение от kolegan Посмотреть сообщение
вместо команды BREQ использовать команду BRCS
В данном случае нельзя. Вам же нужно выставлять флаг переноса, а проверка здесь идет именно на равенство (флаг Z) старшей тетрады определенному значению.

Добавлено через 4 минуты
Цитата Сообщение от kolegan Посмотреть сообщение
Если флаг равен еденице,то....
В вашем начальном вопросе такого нет.
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 12
20.01.2014, 19:54  [ТС]
Я просто образно выразился, не знал в каком операторе проверяется условие)

Добавлено через 1 минуту
И все таки я не могу понять почему мы пишем
Цитата Сообщение от Grey Посмотреть сообщение
sec;запись 1 в C
Получается что C=1 в любом случае, независимо от того равен Z единице или нет?
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
20.01.2014, 20:04
Assembler
1
breq m1
Если флаг Z не взведен, то переход не осуществляется и выполняется следующая команда
Assembler
1
clc
1
Эксперт быдлокодинга
 Аватар для Полный 30h
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.01.2014, 00:03
Assembler
1
2
3
4
5
6
; наш регистр условно R16
 
cbr R16,0b00101111  ; обнулям по маске (если это наше число на выходе ноль)
cpi R16,1       ; сравниваем с 1, если 0 (наше число) то вылезет флаг переноса С
 
; Всё!
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 12
21.01.2014, 00:33  [ТС]
Долго въезжал в код,в силу скудных знаний)Спасибо,все коротко и просто!
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.01.2014, 00:51
kolegan, на будущее, команда сравнения это по сути вычитание без изменения результата.т.е. когда мы из меньшего большее вычитаем имеем флаг С - переноса
1
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
21.01.2014, 11:36
Всё коротко и просто, но, к сожалению, не верно. Предлагается сделать так:
abcdefgh
&
00101111
=
00c0efgh
В итоге ни 1, ни 0.
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.01.2014, 12:18
Цитата Сообщение от pyzhman Посмотреть сообщение
Всё коротко и просто, но, к сожалению, не верно.

Привет от симулятора!
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
21.01.2014, 13:21
Всё верно, благодарю за поправку. Попутал, что команда CBR сбрасывает биты, указанные в операнде как "1", а не как "0".

Добавлено через 17 минут
Всё-таки какой я торопыга и доверчивый.
Сделайте операцию с входным 0b0000xxxx
Благодарность отзываю

abcdefgh
&
00101111
=
ab0c0000

Как видим, 5-й бит сбрасывается по-любому. В итоге не учитывается, был там "0" или "1".

Добавлено через 5 минут
Ваше мнение, Полный 30h?
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.01.2014, 13:46
Цитата Сообщение от pyzhman Посмотреть сообщение
Ваше мнение, Полный 30h?
Косячок однако. Пока что занят, но исправлять надо, на досуге.
Благодарю за бдительность.
0
1184 / 670 / 113
Регистрация: 15.05.2012
Сообщений: 4,078
21.01.2014, 13:53
Предполагаю, что исправлять не надо, скорее всего зачет ТС уже сдал.
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2094 / 528 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
21.01.2014, 15:33
pyzhman, Команду пришлось добавить. Теперь вроде всё чики пуки.
Assembler
1
2
3
cbr R16,0b00001111  ; обнулям по новой маске
subi R16,$20            ; если наше будет по нулям
cpi R16,1                ; по старой схеме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2014, 15:33
Помогаю со студенческими работами здесь

Проверка чисел на соответствие маске
Доброго времени суток! есть edit, есть button, я в edit'е задаю числа, мне надо чтобы программа проверяла относится ли он к определенной...

Проверка наличия файла по маске
Подскажите, пожалуйста, как подправить этот батник: @echo off for %%i in ("345*_*.txt") do set FileName="%%i" if...

проверка значения переменной по маске
всем привет. понадобилось проверять значение переменной по маске. набросал код: $r = 'd:к'; $mask = "X:X"; if...

Проверка айпи-адресов по маске
Доброго всем времени суток! Встала задача проверки поступления запроса от доверенного IP. Не подскажите как правильнее проверить что...

Проверка имени файла на соответствие маске
Надо написать на python функцию, на вход получающую имя файла и маску, и выводящую True, если подходит или False, если нет. У маски правила...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru