Нубский вопрос про битовые операции

мужчина, никаких претензий, тема серьезная, всех чуток глючит. пятница)

По теме (а я далеко не программист, скорее любитель-переросток), любое действие с изменением чего либо (кроме тупого присвоения) имеет свой буфер. Видимо на это Вы ждете ответа, или я ошибаюсь опять?

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 конкретно

1 лайк

Смотря зачем, обычно не нужно.

Я поздно в тему вошел, подумал он и есть ТС. Приношу свои извинения за конфуз. ((

Опять я опоздал…

Еще нет, я пока только два раза оконфузился. Тебе карт-бланш )))

А…, он уже пришел🤣

1 лайк

вы ошибаетесь, Садман вам опкод привел, код, там два байта, первым устанавливается оперция, вторым байтом прямо в нужный регистр загонится нужное значение, озу то тут зачем, тут хард, жёсткий хард, ИМХО, PS как устроен avr не смотрел, но если команда выполняется за два такта, то так оно и есть

это значение должно быть физически в регистре АЛУ, иначе никакая арифметическая или логическая операция над ним будет невозможна Для операции ИЛИ нужно два таких значения, соответственно два регистра. Это все, что я утверждаю, ничего более.

1 лайк

Классика? :joy:

Чтение,модификация, запись.
Точка.:sneezing_face:

Есть МК аттини15 у которого совсем нет ОЗУ. Из за этого для него невозможно написать си компилятор. Тем не менее он отлично перемалывает битовые операции. Информация к размышлению про необходимость ОЗУ для битовых операций.

1 лайк