ARMCC имеет документацию очень хорошего качества, доступную у поставщика.
Вы не указали версию своего ARMCC, очевидно, с тех пор, как я ее использовал (~ 15 лет назад), все изменилось.
Вам необходимо изучить это, если вы хотите использовать встроенную сборку (опять же, если это соответствует вашей версии компилятора): https://developer.arm.com/tools-and-software/software-development-tools/legacy-tools/ds-5-development-studio/resources/tutorials/using-inline-assembly-to-improve-code-efficiency
Примечание: имена регистров во встроенном коде сборки обрабатываются как C или C ++переменные.Они не обязательно относятся к физическому регистру с тем же именем.В нашем C-коде мы используем имена переменных r5 и r6 для наших операндов, но фактические используемые регистры - это r1 и r2.
Inline __asm может быть очень громоздким, если вы не понимаете, что именно выделаешь.Как правило, гораздо проще поместить ваш ассемблерный код в отдельный файл.(Раньше было расширение .asm, тогда я не был уверен в этом).
PS: я пытаюсь создать исключение, выполнив неопределенную операцию.
Покакак я вижу, вы пытаетесь записать в неверный адрес, это не то же самое, что «неопределенная операция», и вы можете сделать это из C, используя недопустимый указатель, вообще не нужно asm:
int *a;
a = 0xf7f0a000;
*a = 2019;
Другое редактирование: И, наконец, отвечая на фактический вопрос в заголовке :) Я не думаю, что вы можете.DCD - это не код операции, это директива на ассемблере, его нельзя использовать в блоке __asm (встроенная сборка), его можно использовать только в «реальном» коде языка ассемблера.