Страница 24 из 37

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

Добавлено: Сб июн 08, 2024 09:43:25
КРАМ
[uquote="yor",url="/forum/viewtopic.php?p=4588821#p4588821"]это только для наглядности в ущерб удобству.[/uquote]
Вообще то наглядность - это самодостаточная часть удобства.

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

Добавлено: Сб июн 08, 2024 10:37:02
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)      
;....

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

Добавлено: Сб июн 08, 2024 11:15:41
BOB51
Для наглядности достаточно запустить программу в симуляторе IDE.
Только активировать предварительно соответствующие окна симулятора
8)

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

Добавлено: Сб июн 08, 2024 11:38:35
Steppe
[uquote="yor",url="/forum/viewtopic.php?p=4588723#p4588723"]Да уж, качественные переводы...[/uquote]
Дело не в переводах. В сети огромное количество книг на русском языке по ассемблеру. Они массово издавались еще в прошлом веке. Самоучителей тоже достаточно.
Осталось только начать читать и учиться.

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

Добавлено: Сб июн 08, 2024 13:20:57
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))

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

Добавлено: Сб июн 08, 2024 14:07:29
КРАМ
[uquote="yor",url="/forum/viewtopic.php?p=4588887#p4588887"]Вот и нашли ошибку в ПП с piclist.com[/uquote]
Какими буквами сделано расширение исходника - большими или маленькими?
myProj.asm или myProj.ASM?
Это имеет значение.

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

Добавлено: Сб июн 08, 2024 14:17:45
yor
Просто листинг на экране, о расширении файла умалчивается.
http://www.piclist.com/techref/microchi ... etchng.htm

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

Вариант последний самый нижний именно с |

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

Добавлено: Сб июн 08, 2024 14:33:26
КРАМ
[uquote="yor",url="/forum/viewtopic.php?p=4588903#p4588903"]Для каких компиляторов это имеет значение?[/uquote]
Давайте вы скажете о какой среде и о какой версии ассемблера идет речь...
Размер расширения имеет значение в MPASM (MPASMX). Большие буквы позволяют использовать в листинге исходника некоторый синтаксис Си.
Так же очень большая разница в синтаксисе между MPASM и ASPIC.

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

Добавлено: Сб июн 08, 2024 14:37:45
BOB51
Где то попадался случай, когда компилятор ассемблера считает равноценными | и || в случае простых операций (речь о разных компиляторах ассемблера для разных МК).
Уж подзабыл в каком именно встречал.
:dont_know: :sleep:
Так что делаем простейшую перепроверку на симуляторе для "абсолютной уверенности"...
8)

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

Добавлено: Сб июн 08, 2024 15:19:52
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)
Керниган, Ритчи_Язык программирования Си писал(а):& — побитовое И.
| — побитовое ИЛИ.
^ — побитовое исключающее ИЛИ.
<< — сдвиг влево.
>> — сдвиг вправо.
~ — побитовое отрицание (унарный)

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

Добавлено: Сб июн 08, 2024 16:29:06
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:
Так бы и сказали сразу, что это из Си

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

Добавлено: Сб июн 08, 2024 16:39:05
BOB51
Логически рассуждать...
Логические операторы разумны для условного ассемблирования.
В командах могут использоваться только побитовые.
В таком случае компилятор (препроцессор) может самостоятельно отслеживать "неуместные" выражения в командах.
:roll:
Относительно gpasm чего сказать только его пользователи могут.
В остальном лишь общин положения (одинаковые для большинства компиляторов ассемблера) можно подсказать.
С минимумом конкретики...
:(

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

Добавлено: Сб июн 08, 2024 16:42:19
diplodok
yor писал(а):что это за флаги имеются в виду, просто биты можно понимать? И len - это длина какая-то?
Это примеры
yor писал(а):обхожусь gpasm
А там HELP есть? Я им не работал.

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

Добавлено: Сб июн 08, 2024 16:57:14
yor
По ключам командной строки есть, а по ассемблеру отсылки к mpasm. Типа полностью совместим, и в ключах там что-то насчёт режимов совместимости есть.

Это там у вас HELP, а тут MAN))

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

Добавлено: Вс июн 09, 2024 07:43:59
BOB51
Хелп встроен в оболочки IDE , а мануал по сути то же самое, но в виде отдельного файла в комплекте компилятора. Или спец опция в командной строке.
В былые времена поставляли и в виде *.doc...
Иногда и отдельно выкладывались.
Искать надо всё, что подпадает под "документация по ассемблеру(компилятору) \название\....... "
:roll:

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

Добавлено: Ср июн 12, 2024 21:58:03
yor
Если разряды портов PORT[A,B] частично настроены как входы, частично как выходы, запись скопом в порт байта, а не побитно только по выходам, ничем не грозит?

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

Добавлено: Ср июн 12, 2024 22:09:04
Martian
нет

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

Добавлено: Ср июн 12, 2024 22:37:22
BOB51
Это операция ЧМЗ (чтение - модификация - запись) штука весьма подлая порой...
см. стр. 46 "вопрос 4" вот тут:
https://web.archive.org/web/20090220075 ... C16_29.pdf
8)

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

Добавлено: Ср июн 12, 2024 23:07:10
Martian
это если динамично менять направление. Вопрос, насколько я понял, не про это. И даже, возможно, как раз избегает ЧМЗ

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

Добавлено: Чт июн 13, 2024 03:51:13
КРАМ
[uquote="BOB51",url="/forum/viewtopic.php?p=4590422#p4590422"]Это операция ЧМЗ[/uquote]запись байта в порт не является RMW.