мужчина, никаких претензий, тема серьезная, всех чуток глючит. пятница)
По теме (а я далеко не программист, скорее любитель-переросток), любое действие с изменением чего либо (кроме тупого присвоения) имеет свой буфер. Видимо на это Вы ждете ответа, или я ошибаюсь опять?
AVR Opcodes
p Port address value from 0 to 31. (cbi, sbi, sbic, sbis)
s immediate value from 0 to 7
10011010pppppsss sbi p,s
Опкод формируется сразу и пишется во флеш контроллеру. В таком виде и хранится. Как внутре им конденсатор транзистором погоняет - я не в курсе.
опередил, ОЗУ тут не используется совсем, код занимает 2 байта в ПЗУ
очень близко к теме. теперь вопрос: какой такой буфер может быть там, в чипе, в АЛУ, кроме регистров?
данные из ПЗУ разве могут напрямую попасть в регистры АЛУ?
а что мешает?
Может быть и в регистрах, почему нет? Как идет перемещение регистров? Отправить значение А в промежуточный регистр, переместить значение Б в регистр А, переместить значение А в регистр Б. Так? Ну иначе и не может быть.
что и требовалось доказать, бинарные операции требуют-таки наличия операндов в двух регистрах АЛУ. Щас Петрович зафиналит тред, смотрите.
есть мнение (возможно , ошибочное), что перед использованием констант из флеш, их надо в ОЗУ поместить, н оничего не мешает конечно встроить этот функционал в УУ, я просто не знаю есть он в AVR конкретно
Смотря зачем, обычно не нужно.
Я поздно в тему вошел, подумал он и есть ТС. Приношу свои извинения за конфуз. ((
Опять я опоздал…
Еще нет, я пока только два раза оконфузился. Тебе карт-бланш )))
вы ошибаетесь, Садман вам опкод привел, код, там два байта, первым устанавливается оперция, вторым байтом прямо в нужный регистр загонится нужное значение, озу то тут зачем, тут хард, жёсткий хард, ИМХО, PS как устроен avr не смотрел, но если команда выполняется за два такта, то так оно и есть
это значение должно быть физически в регистре АЛУ, иначе никакая арифметическая или логическая операция над ним будет невозможна Для операции ИЛИ нужно два таких значения, соответственно два регистра. Это все, что я утверждаю, ничего более.
Классика?
Чтение,модификация, запись.
Точка.
Есть МК аттини15 у которого совсем нет ОЗУ. Из за этого для него невозможно написать си компилятор. Тем не менее он отлично перемалывает битовые операции. Информация к размышлению про необходимость ОЗУ для битовых операций.