При пошаговом исполнении инструкции могут эмулироваться отладчиком.
Я по-моему про это писал, что недостаток архитектуры ARM,
существенный, отсутствие возможности пошагового исполнения, что
затрудняет реализацию отладчика. На x86 есть аппаратное пошаговое
исполнение, например. Ты можешь сказать, мол "поставь breakpoint
после инструкции", но здесь начинаются нюансы: 1) не всегда возможно менять программную память в месте исполнения, так как, например, могут быть параллельные потоки, память технически (если ROM) невозможно изменить, или дорого/сложно (если FLASH -- так у ней ресурс кончится) -- а "софтварный" брейкпоинт не поставить без изменения кода;
2) можно перенести инструкцию в другое место ОЗУ или FLASH (в котором не стирать страницу после каждого шага, а лишь дописывать понемногу, и стирать только после заполнения страницы) и там исполнить, но инструкция может адресовать память относительно своего адреса -- следовательно так можно исполнить только ограниченный набор инструкций;
3) инструкция может оказаться инструкцией перехода -- со всеми вытекающими последствиями, и даже аппаратный брейкпоинт уже не поможет, если не понимаешь куда она улетит (хотя там можно проанализировать КОП и содержимое регистров).
Практически часть инструкций придётся неизбежно эмулировать (инструкции перехода и ещё некоторые, вроде LDM, STM), часть можно исполнять с размещением по другому адресу, и при этом использовать технику "переименовывания регистров" чтоб обойти PC-относительную адресацию (когда в КОП инструкции регистр PC подменяется на другой). СЛОЖНО. Но примерно так работают отладчики. Некоторые может эмулируют всё, что тоже крайне сожно из-за очень развесистого дерева инструкций у ARM (там давно уже не простая табличка, а скорей CISC с массой исключений и исключений из исключений -- чтоб просто написать дизассемблер нужен парсер PDF файла с описанием инструкций, в голову оно не влазит никак).
Очень удобно у MIPS, где есть delay slot, в который можно записать брейкпоинт... правда там свои нюансы, вроде того, что если в delay slot записать команду перехода.