Вопросы начинающих PIC ASM

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25220
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="yor",url="/forum/viewtopic.php?p=4588821#p4588821"]это только для наглядности в ущерб удобству.[/uquote]
Вообще то наглядность - это самодостаточная часть удобства.
Реклама
diplodok
Мудрый кот
Сообщения: 1771
Зарегистрирован: Чт авг 10, 2017 20:57:51

Re: Вопросы начинающих PIC ASM

Сообщение diplodok »

что нагляднее

Код: Выделить всё

movlw (~(((1<<7) |  (1<<6)) ^ ((1<<7) |  (1<<6))))+1   ;0 в W
или

Код: Выделить всё

movlw 0x00   ;0 в W
a это вариант когда такая запис "нагляднее"

Код: Выделить всё

№define posFlagXXX	4
№define posFlagyyy	5
№define bla_bla		2

;....
	movlw	((1<<posFlagXXX) | (1<<posFlagyyy) | (1<<bla_bla))
;.....
        andlw        (1 << posFlagyyy)      
;....
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Для наглядности достаточно запустить программу в симуляторе IDE.
Только активировать предварительно соответствующие окна симулятора
8)
Аватара пользователя
Steppe
Друг Кота
Сообщения: 4812
Зарегистрирован: Вс сен 17, 2017 17:44:21
Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.

Re: Вопросы начинающих PIC ASM

Сообщение Steppe »

[uquote="yor",url="/forum/viewtopic.php?p=4588723#p4588723"]Да уж, качественные переводы...[/uquote]
Дело не в переводах. В сети огромное количество книг на русском языке по ассемблеру. Они массово издавались еще в прошлом веке. Самоучителей тоже достаточно.
Осталось только начать читать и учиться.
Реклама
Эиком - электронные компоненты и радиодетали
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

[uquote="diplodok",url="/forum/viewtopic.php?p=4588804#p4588804"]Таким образом компилятор на место (1<<4)||(1<<5) ставить 0x01[/uquote]То есть это не то чтобы ошибка, компилятор-то 1-цу подставит, но именно для выделения 4-5 битов бесполезно, ошибка.

[uquote="diplodok",url="/forum/viewtopic.php?p=4588804#p4588804"]Как компилятор вычисляет выражение (1<<4)|(1<<5) - ПОБИТОВОЕ ИЛИ
00010000 | 00100000 = 00110000 = 0x30
что тебе и нужно по логике ...[/uquote]Понятно. Вот и нашли ошибку в ПП с piclist.com))
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25220
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="yor",url="/forum/viewtopic.php?p=4588887#p4588887"]Вот и нашли ошибку в ПП с piclist.com[/uquote]
Какими буквами сделано расширение исходника - большими или маленькими?
myProj.asm или myProj.ASM?
Это имеет значение.
Реклама
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Просто листинг на экране, о расширении файла умалчивается.
http://www.piclist.com/techref/microchi ... etchng.htm

Для каких компиляторов это имеет значение?

Вариант последний самый нижний именно с |
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25220
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="yor",url="/forum/viewtopic.php?p=4588903#p4588903"]Для каких компиляторов это имеет значение?[/uquote]
Давайте вы скажете о какой среде и о какой версии ассемблера идет речь...
Размер расширения имеет значение в MPASM (MPASMX). Большие буквы позволяют использовать в листинге исходника некоторый синтаксис Си.
Так же очень большая разница в синтаксисе между MPASM и ASPIC.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Где то попадался случай, когда компилятор ассемблера считает равноценными | и || в случае простых операций (речь о разных компиляторах ассемблера для разных МК).
Уж подзабыл в каком именно встречал.
:dont_know: :sleep:
Так что делаем простейшую перепроверку на симуляторе для "абсолютной уверенности"...
8)
diplodok
Мудрый кот
Сообщения: 1771
Зарегистрирован: Чт авг 10, 2017 20:57:51

Re: Вопросы начинающих PIC ASM

Сообщение diplodok »

MPASM help писал(а):& Bitwise AND flags = flags & ERROR_BIT
^ Bitwise exclusive OR flags = flags ^ ERROR_BIT
| Bitwise inclusive OR flags = flags | ERROR_BIT
&& Logical AND if (len == 512) && (b == c)
|| Logical OR if (len == 512) || (b == c)
Керниган, Ритчи_Язык программирования Си писал(а):& — побитовое И.
| — побитовое ИЛИ.
^ — побитовое исключающее ИЛИ.
<< — сдвиг влево.
>> — сдвиг вправо.
~ — побитовое отрицание (унарный)
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

С этим ассемблером С можно не то что выучить, но подучить, подковаться, как я вижу))

[uquote="diplodok",url="/forum/viewtopic.php?p=4588924#p4588924"]
MPASM help писал(а):& Bitwise AND flags = flags & ERROR_BIT
^ Bitwise exclusive OR flags = flags ^ ERROR_BIT
| Bitwise inclusive OR flags = flags | ERROR_BIT
&& Logical AND if (len == 512) && (b == c)
|| Logical OR if (len == 512) || (b == c)
[/uquote]А что это за флаги имеются в виду, просто биты можно понимать? И len - это длина какая-то? b c откуда ни возьмись появились.

У меня нет mpasm, и не будет, обхожусь gpasm.

Добавлено after 9 minutes 57 seconds:
Так бы и сказали сразу, что это из Си
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Логически рассуждать...
Логические операторы разумны для условного ассемблирования.
В командах могут использоваться только побитовые.
В таком случае компилятор (препроцессор) может самостоятельно отслеживать "неуместные" выражения в командах.
:roll:
Относительно gpasm чего сказать только его пользователи могут.
В остальном лишь общин положения (одинаковые для большинства компиляторов ассемблера) можно подсказать.
С минимумом конкретики...
:(
Последний раз редактировалось BOB51 Сб июн 08, 2024 16:43:15, всего редактировалось 1 раз.
diplodok
Мудрый кот
Сообщения: 1771
Зарегистрирован: Чт авг 10, 2017 20:57:51

Re: Вопросы начинающих PIC ASM

Сообщение diplodok »

yor писал(а):что это за флаги имеются в виду, просто биты можно понимать? И len - это длина какая-то?
Это примеры
yor писал(а):обхожусь gpasm
А там HELP есть? Я им не работал.
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

По ключам командной строки есть, а по ассемблеру отсылки к mpasm. Типа полностью совместим, и в ключах там что-то насчёт режимов совместимости есть.

Это там у вас HELP, а тут MAN))
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Хелп встроен в оболочки IDE , а мануал по сути то же самое, но в виде отдельного файла в комплекте компилятора. Или спец опция в командной строке.
В былые времена поставляли и в виде *.doc...
Иногда и отдельно выкладывались.
Искать надо всё, что подпадает под "документация по ассемблеру(компилятору) \название\....... "
:roll:
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Если разряды портов PORT[A,B] частично настроены как входы, частично как выходы, запись скопом в порт байта, а не побитно только по выходам, ничем не грозит?
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Вопросы начинающих PIC ASM

Сообщение Martian »

нет
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Это операция ЧМЗ (чтение - модификация - запись) штука весьма подлая порой...
см. стр. 46 "вопрос 4" вот тут:
https://web.archive.org/web/20090220075 ... C16_29.pdf
8)
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Вопросы начинающих PIC ASM

Сообщение Martian »

это если динамично менять направление. Вопрос, насколько я понял, не про это. И даже, возможно, как раз избегает ЧМЗ
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25220
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=4590422#p4590422"]Это операция ЧМЗ[/uquote]запись байта в порт не является RMW.
Ответить

Вернуться в «PIC»