КРАМ писал(а):oleg110592 писал(а):Где в каком разделе описания ассемблера, по вашему мнению, должно быть описание инвертирования ноги порта? В описании команды SBI?
Да,именно там, если отказались от специальной мнемоники для этой команды, то нужно было привести СИНТАКСИС при котором команда будет использована с другой спецификацией.
Так описывают разные способы адресации для одной и той же команды, так описывают разные источники и назначение для одной и той же команды, так описывают влияние команд на флаги, так описывают длину команды во флеше, так описывают длительность ее исполнения, там, наконец, приводят КОД этой команды...
Потому что у этой команды, на самом деле, ДРУГОЙ КОД.
в желании оставить последнее слово за собой вы уже перешли все разумные границы.
1. SBI имеет всегда одну мнемонику, имеет всегда один и тот же опкод (разумеется, не считая битов, отвечающих за адресацию регистров)
2. назначение команды - ЗАПИСЬ 1 В ЗАДАННЫЙ БИТ РЕГИСТРА ВВОДА-ВЫВОДА. больше никакого иного значения она не имеет
3. архитектурная особенность AVR заключается в том, что регистр PINx доступен для чтения и записи, но при записи в него данные
теряются. т.е. команда SBI записывает в его разряд 1, но убедиться в том, что запись прошла, нереально - эта 1 просто теряется
4. архитектурная особенность "новых" AVR заключается в том, что запись в PINx приводит к инверсии значения в соответствующем разряде PORTx. это не новая команда инверсии, это не новый опкод, это вообще ФИЧА. лично я думаю, что очередные индусы напортачили при разработке топологии кристалла, а потом выяснилось, что БАГ оказался удачным и местами полезным - его ввели в документацию, как ФИЧУ.
таким образом, КРАМ, требовать, чтобы для инверсии бита в одном порту путем записи в другой, вводили особую команду, это неразумно. если запись в UDR меняет состояние битов в UCSRA (например), по-вашему выходит, надо особую мнемонику придумывать для этого?!
SBI работает ровно так, как описано в даташите на ассемблерные команды, без малейших отклонений. а вот архитектура ведет себя по-разному.