Немного изменил вопрос. А то криво написал первый раз.
Работать, естественно, ничего не будет (процессор будет пытаться выполнить эти данные как команды со всеми вытекающими).
Я с Вами согласен . А вот виртуальный дебаггер КЕИЛ не согласен с Вами и пропускает любой
.word , хотя должен пытаться выполнить как инструкцию. . Почему? Фича такая?
Ниже мои размышления по поводу терминологии.Литералы используются только с командами вроде LDR -- для загрузки "сложных" значений в регистры
LDR R5,=0x12345678 Это псевдо инструкция, ее нет в реальности. компилятор ее заменит на
- Код:
LDR r5,[pc,#12] ; #12 — зависит от смещения на адрес Литерала
И еще из Википедии — Литерал (англ. literal) — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение....
Так что любой
.word в исполняемой области микроконтроллера — это Литерал, и с ним умеет работать только LDR.
https://www.keil.com/support/man/docs/a ... 147760.htm — вот отсюда взял такие мысли.
"простые" значения можно загрузить MOVом,
"простые" значения в документации именуются "immediate value". И еще цытата из документации — You can generate any 32-bit immediate with a MOV, MOVT instruction pair.