Например TDA7294

Форум РадиоКот • Просмотр темы - AVR Assembler
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб июл 26, 2025 08:40:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 47 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: AVR Assembler
СообщениеДобавлено: Пт июл 14, 2023 20:17:22 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Всем привет!
Я один из тех динозавров, что пишут код под AVR на ассме)
Есть код массива во флеш:

Array:
.db "Kakoi-to text "

Про чётное количество элементов в массиве мне известно. Есть ли какой-то оператор или действие по вычислению и присвоению константе количества элементов в массиве компилятором?
Компилятор tavrasm.

Добавлено after 1 hour 1 minute 49 seconds:
Разобрался!) Если кому-то интересно, то вот:

Array:
.db "Kakoi-to text "

.equ Const_Byte=(PC-Array)*2
.equ Const_Word=PC-Array

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 15:35:27 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Array это адрес, а не размер массива. Отсюда, непонятно, что вы получили этим "PC-Array"....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 15:43:32 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
да и с четным количеством элементов странно...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 16:20:53 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
да и с четным количеством элементов странно...

Ничего странного. Адресация пословная. Отсюда, когда создаёшь константы директивой .db количество байтов должно быть четным. Компилятор предупреждает об этом, если нечётное. Поэтому, когда у тебя в массиве нечётное кол-во байтов, нужно дополнить до четного.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 16:44:51 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Байты не есть элементы. Элементов в массиве может быть сколько угодно. То, что их хранение обусловлено какими-то архитектурными особенностями не имеет к их количеству отношения (за исключением максимального размера)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:05:21 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Array это адрес, а не размер массива. Отсюда, непонятно, что вы получили этим "PC-Array"....


Естественно, Array - это адрес массива. PC - это счётчик команд. Вычитая из последнего значения счётчика начальный адрес (PC-Array), мы получаем размер массива в словах, который присваиваем константе Const_Word (Const_Word*2 - в байтах, соответственно).
Что тут не понятного?)

Добавлено after 6 minutes 42 seconds:
Байты не есть элементы. Элементов в массиве может быть сколько угодно. То, что их хранение обусловлено какими-то архитектурными особенностями не имеет к их количеству отношения (за исключением максимального размера)


Такова архитектура AVR, увы, ничего с этим не поделаешь. Количество байт должно быть обязательно чётным и в одну строку, в случае ассемблерного кода! Если Вы пишите на сях массив с нечётным количеством элементов, то компилятор сам за Вас добавит этот чётный байт.

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:21:00 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
ок. у меня массив из трех элементов, размер каждого элемента два байта. Теперь понятно? А если я пишу на "сях", как Вы умудрились выразиться, то компилятор поведет себя так, как я его настрою.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:23:44 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
ок. у меня массив из трех элементов, размер каждого элемента два байта. Теперь понятно? А если я пишу на "сях", как Вы умудрились выразиться, то компилятор поведет себя так, как я его настрою.


Не надо путать тёплое с мягким. Речь шла про побайтовую запись, а не про пословную.

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:26:10 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Ужас. Это Вы путаете теплое с мягким, считая "элемент массива" и "байт" синонимами.

Добавлено after 54 seconds:
Про чётное количество элементов в массиве мне известно.
Так что, "Окстись! Открой учебник и просветись!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:35:23 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Ужас. Это Вы путаете теплое с мягким, считая "элемент массива" и "байт" синонимами.

Добавлено after 54 seconds:
Про чётное количество элементов в массиве мне известно.

:facepalm:
В данном примере один элемент массива равен одному байту. Что я путаю?

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 18:45:12 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Всё.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 19:07:06 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: -2
Всё.


"Ой" перед "Всё." забыли добавить :))

Дядь, Вы по ходу дупля не отбиваете, что такое директивы ассемблера и как устроена память программ AVR ядра, да ещё пытаетесь дать какой-то "умный" совет :))

Читайте, просвещайтесь:

https://radiokot.ru/start/mcu_fpga/avr/12/

https://el-shema.ru/publ/kontroller/mik ... i/9-1-0-68

https://cxem.net/mc/book21.php

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 19:22:21 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: -2
Элемент массива относится к байту так же, как ящик к килограмму. Но 14-летнему этого не понять, похоже, зато хамить уже научился.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 19:43:17 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Элемент массива относится к байту так же, как ящик к килограмму. Но 14-летнему этого не понять, похоже, зато хамить уже научился.


Вы можете и дальше продолжать свои сравнения в виду отсутствия элементарных знаний, я умываю руки :)

Свои нелепые оценочные суждения оставьте себе и своим близким.

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 20:33:02 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
похоже вы и сами не отчетливо представляете о чем речь, поэтому не смогли просто и понятно пояснить человеку.
вопрос не имеет отношение ни размерности элементов массива ни к четности кол-ва его байт.
При многострочном применением инструкции .db (при нарезке одного массива для удобства восприятия) - именно в этом случае недопустимо в строке нечетное кол-во байт, кроме последней строки.
причина в 16-битной адресации, при трансляции инструкций .db ... в код - массив не будет слитно склеиваться на стыках невыровненных (к адресации) байт.

это из ваших же ссылок.

П.С. некорректно выразился "16-битной адресации", но надеюсь понятно один шаг счетчика команд - два байта.


Последний раз редактировалось a797945 Вт июл 18, 2023 21:00:23, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 20:34:29 
Друг Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 454
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 5181
Откуда: Воронеж
Рейтинг сообщения: 0
По такой логике и первый элемент должен размещаться по чётному адресу. Есть какой-нибудь аналог СИшного allign или оно само собой выравниватся?

_________________
"Привет!" - соврал он.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Вт июл 18, 2023 20:35:32 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
похоже вы и сами не отчетливо представляете о чем речь, поэтому не смогли просто и понятно пояснить человеку.
вопрос не имеет отношение ни размерности элементов массива ни к четности кол-ва его байт.
При многострочном применением инструкции .db (при нарезке одного массива для удобства восприятия) - именно в этом случае недопустимо в строке нечетное кол-во байт, кроме последней строки.
причина в 16-битной адресации, при трансляции инструкций .db ... в код - массив не будет слитно склеиваться на стыках невыровненных (к адресации) байт.

это из ваших же ссылок.


Об этом писал ещё Demiurg в третьем ответе.
Я привёл пачку ссылок, где можно было это всё прочесть. Объяснять всем тем, кто на бронепоезде - жизни не хватит :))

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 00:18:47 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: -2
Понаехали тут понаехи из си. Лезете в тему, так хоть разберитесь в вопросе. Куда вы суетесь, вумники, йоптыть.
Ассемблер.
Директива .db. Побайтовая запись. В этом случае нужно смотреть за четным количеством элементов массива.
Пример.
.db 0x02, 0xFF
.db "Vasya Petya", 0x00

Директива .dw. Пословная запись. В этом случае не нужно смотреть за четным количеством байтов.

Что непонятно, господа понаехи?

ТС. Повторяю. Array это адрес. PC это счётчик команд. Текущая строка. Чревато ошибкой. Я сразу понял про что вы. Но, это ненадежный способ. Но не понял ваших мотивов использовать такой костыльный способ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 00:29:06 
Друг Кота

Карма: 68
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Откройте руководство AVR Assembler. Покажите мне слова array и element в описании .db (заодно прочитайте про упаковку)
Вы не знаете ни Си, ни ассемблер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 00:34:56 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 3
Martian, Покажите мне свой проект на ассемблере. Не нужно кидаться словами "вы ничего не знаете". Я повторяю. В данный момент тема ассемблера. Это не си. И любой константный массив, это массив. И любой элемент массива, что побайтная запись, что пословная, это элемент массива.
Либо вы слышите собеседника, либо валите хвастаться своим ай Кью в другом месте.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  1, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y