Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Сообщения без ответов | Активные темы
Страница 391 из 398
[ Сообщений: 7956 ]
... , , , , , , ...
Автор
Сообщение
shonty
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 10:48:26
Мучитель микросхем
Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26Сообщений: 473
Рейтинг сообщения: 0
Adrift писал(а):
а gvar2 - в RAM.
небольшое уточнение )
"подразумевает изначальное хранение во FLASH, и последующее копирование в SRAM после сброса RESET" (c)
Вернуться наверх
Реклама
Adrift
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 10:55:35
Зарегистрирован: Вт окт 01, 2024 15:22:33Сообщений: 428
Рейтинг сообщения: 0
небольшое уточнение ) "подразумевает изначальное хранение во FLASH, и последующее копирование в SRAM после сброса RESET" (c)
Нет, начальное значение gvar2 не может храниться во флеше, т.к. оно вычисляется в рантайме. Точнее оно там не обязательно будет. Если окажется, что результат calcVar() из другого модуля таки константа, тогда да, но в моем примере calcVar() читает значение с порта )
Вернуться наверх
Реклама
BOB51
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 12:20:41
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15108Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Интересно...
Тема вроде про ассемблер, а под насыпали разборок с Си...
Вернуться наверх
Just_Fluffy
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 12:27:18
Мучитель микросхем
Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45Сообщений: 469
Рейтинг сообщения: 2
BOB51 , Да я попыталась вернуть тему от алгоритмов дребезга к асму, так тут же набежали умничать, данные в коде - это код или данные)))))
_________________Белая и Пушистая
Вернуться наверх
ДядяВован
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 12:48:46
Потрогал лапой паяльник
Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25Сообщений: 308Откуда: Смоленск
Рейтинг сообщения: 0
Вот-вот, и я предлагаю вернуться к asm Что там получается с определением одного единичного бита? У меня вроде 6 слов (12 байт)
Вернуться наверх
Реклама
Just_Fluffy
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 12:58:44
Мучитель микросхем
Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45Сообщений: 469
Рейтинг сообщения: 0
ДядяВован , код в студию. (А то там любитель современного ассемблера в 5 слов уложился вроде)
_________________Белая и Пушистая
Вернуться наверх
Реклама
Adrift
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 13:13:27
Зарегистрирован: Вт окт 01, 2024 15:22:33Сообщений: 428
Рейтинг сообщения: 0
А то там любитель современного ассемблера в 5 слов уложился вроде
Так уложился или вроде уложился? )
Добавлено after 10 minutes 36 seconds: У меня вроде 6 слов (12 байт)
У меня тоже, можно чуть модифицировать чтоб не 1 возвращало, а было две ветки, но там линейный код находящий единичный бит за 6 тактов, а у вас цикл, так что нужно или хотя бы тоже 6 тактов, или 5 слов )
Вернуться наверх
ДядяВован
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 14:12:25
Потрогал лапой паяльник
Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25Сообщений: 308Откуда: Смоленск
Рейтинг сообщения: 0
ДядяВован , код в студию
Так на предыдущей странице выкладывал
Добавлено after 52 minutes 41 second: Adrift писал(а):
линейный код находящий единичный бит за 6 тактов
Код:
cpi r0,2 brlo end mov r1,r0 dec r1 and r0,r1 inc r0
Об этом коде речь?
ИМХО не всё так однозначно. Нет возможности сравнить r0 с двоечкой.
Предлагаю его немного изменить.
Код:
ldi r16, 1 cp r0,r16 breq метка_имеем_единичный_бит=1 ; здесь бит0 не равен "1"
Вернуться наверх
Adrift
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 14:26:50
Зарегистрирован: Вт окт 01, 2024 15:22:33Сообщений: 428
Рейтинг сообщения: 2
ИМХО не всё так однозначно. Нет возможности сравнить r0 с двоечкой.
Я на AVR ассме писал много лет назад и сейчас у меня нет AVR, потому код проверил
shonty и он, видимо, просто подставил другой регистр, ведь никто не регламентировал использование именно r0. А когда я говорил про две ветки, то подразумевал следующее, тут уже и r0 можно использовать:
Код:
tst r0 breq notSingleBit mov r1,r0 dec r1 and r0,r1 brne notSingleBit singleBit:
Вернуться наверх
Реклама
shonty
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 14:38:21
Мучитель микросхем
Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26Сообщений: 473
Рейтинг сообщения: 0
Adrift писал(а):
потому код проверил shonty и он, видимо, просто подставил другой регистр,
да, R18 подставлял.. но не стал вдаваться в подробности)
Но если писать коды, то, думаю, что с R16 и выше нужно начинать. Всё что ниже R16 - там использование ограничено.
Вернуться наверх
Adrift
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 16:59:40
Зарегистрирован: Вт окт 01, 2024 15:22:33Сообщений: 428
Рейтинг сообщения: 4
Новая версия:
Код:
mov r16,r0 subi r16,1 brcs notSingleBit and r16,r0 brne notSingleBit singleBit:
Вернуться наверх
ДядяВован
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 18:05:29
Потрогал лапой паяльник
Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25Сообщений: 308Откуда: Смоленск
Рейтинг сообщения: 0
ИМХО задача состоит в определении, что в байте есть единичный бит в каком-либо разряде. Как это сделать без цикла я не знаю, а в цикле решение уже приводил.
Вернуться наверх
BOB51
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 18:17:46
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15108Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Можно табличным способом.
Быстро и минимум команд, но таблица много места в ПЗУ займёт (256 байт или более, если команды возврата ставить) .
Вернуться наверх
shonty
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 18:24:32
Мучитель микросхем
Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26Сообщений: 473
Рейтинг сообщения: 0
Так Adrift же сделал без цикла и без таблиц. Довольно таки оригинально.
Вернуться наверх
BOB51
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 18:58:40
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15108Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Единичный бит в любом месте.
Т. е.
Соответствие любой из восьми возможных масок:
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
Тут или массив или циклический сдвиг маски со счётчиком сдвигов. Флага паритета у АВРок ведь нету.
А то, что выше у Вас даст лишь контроль чётности, но не учитывает, что битов в проверяемом байте может быть больше, чем один.
Вернуться наверх
shonty
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 19:40:57
Мучитель микросхем
Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26Сообщений: 473
Рейтинг сообщения: 2
BOB51 писал(а):
А то, что выше у Вас даст лишь контроль чётности, но не учитывает, что битов в проверяемом байте может быть больше, чем один.
Не контроль чётности, а вполне рабочий код. Как раз определяет количество битов больше чем 1.
На практике так же провено.
Добавлено after 3 minutes 22 seconds: BOB51 , посмотрите внимательно, там еденица вычитается из младшего разряда, и инструкция and как раз и определяет, установлено ли больше битов, чем один.
Добавлено after 25 minutes 52 seconds: Если на примере, то вот так:
0001_0000 - 0x1 = 0000_1111
0001_0000 && 0000_1111 = 0
0001_0100 - 0x1 = 0001_0011
0001_0100 && 0001_0011 = 0001_0000 (не равно 0)
Вернуться наверх
BOB51
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 20:17:24
Друг Кота
Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27Сообщений: 15108Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Верно...
Любой набор единиц старше младшего разряда даст "не равно нулю".
Вернуться наверх
ДядяВован
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 20:28:25
Потрогал лапой паяльник
Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25Сообщений: 308Откуда: Смоленск
Рейтинг сообщения: 0
shonty писал(а):
на примере, то вот так
Спасибо! Я "вкурил" наконец-то)))
Adrift безоговорочный победитель
Вернуться наверх
Just_Fluffy
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 21:16:24
Мучитель микросхем
Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45Сообщений: 469
Рейтинг сообщения: 0
Adrift , победитель!
_________________Белая и Пушистая
Вернуться наверх
shonty
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс дек 08, 2024 21:38:40
Мучитель микросхем
Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26Сообщений: 473
Рейтинг сообщения: 2
Ну вот) конкурс завершился
теперь и про дребезг можно
Вернуться наверх
Страница 391 из 398
[ Сообщений: 7956 ]
... , , , , , , ...
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения