ARM Assembly - Инструкция по филиалам - PullRequest
8 голосов
/ 12 мая 2010

Я смотрю какую-то сборку для запуска некоторых прошивок, которые работают на процессоре ARM. Определена следующая таблица векторов исключений:

    LDR     pc, =resetHandler
    LDR     pc, Undefined_Addr
    LDR     pc, SWI_Addr
    LDR     pc, Prefetch_Addr
    LDR     pc, Abort_Addr
    B       .
    LDR     pc, =irqHandler
    LDR     pc, FIQ_Addr

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

1 Ответ

8 голосов
/ 12 мая 2010

Во многих ассемблерах . означает текущий счетчик местоположения, так что да, это просто бесконечный цикл, т. Е. «Переход к здесь».

[Обратите внимание, что некоторые ассемблеры используют $ или * вместо .]

...