Предыдущая Следующая

5. Команда ВХ используется для программной смены состояния процессора, поскольку позволяет осуществить переход с одновременным изменением этого состояния. Адрес перехода (четный или кратный четырем) определяется битами 31...1 или 31...2 содержимого регистра Rm, заданного в команде, а состояние процессора — нулевым битом этого регистра, который копируется в регистр CPSR в качестве бита Т.

6. Команда программного прерывания SWI используется для доступа к функциям ОС. При выполнении данной команды процессор переходит в режим Supervisor, запоминает адрес возврата в регистре LR и переходит на адрес 0x00081\ По этому адресу располагается команда перехода на обработчик прерывания. Необходимо заметить, что выполнение команды SWI — это единственный способ, позволяющий перевести процессор из режима User в привилегированный режим Supervisor.

7. Группа команд сопроцессора обеспечивает совместную работу процессора ARM с сопроцессором, который обычно представляет собой размещенный на одном кристалле с процессором специализированный блок. К процессорному ядру ARM может быть подключено до 16 сопроцессоров, каждый из которых может иметь до 16 собственных регистров CRn. Данные, передаваемые сопроцессору по внутренней шине, включают в себя номер сопроцессора <српшп>, номера регистров сопроцессора, код операции, поле дополнительной информации. От сопроцессора требуется возможность принимать команду, исполнять ее и выдавать на шину результат. При этом один из регистров сопроцессора CRn должен выполнять функцию регистра команд — воспринимать записанные в него данные как код операции (команду сопроцессора). После ввода в этот регистр кода операции процессор должен послать команду CDP, которая будет выполняться сопроцессором. Ввод/вывод данных в регистры сопроцессора реализуется с помощью команд LDC, STC, MCR, МРС.

Примечание. В микроконтроллерах семейства LPC2000 сопроцессор отсутствует.

8. Команды групповой загрузки/сохранения содержимого регистров LDM/STM позволяют пересылать содержимое нескольких перечисленных в них регистров. В формате команды имеется 16-битное поле, где каждый бит соответствует одному из регистров R15...R0. Если бит равен единице, то содержимое соответствующего ему регистра сохраняется в памяти (по команде STM) или загружается из памяти (по команде LDM). Как видно из

' Далее в книге все адреса регистров и областей памяти приведены в шестнадцатиричном виде (за исключением случаев, когда специально указан другой вид представления адресов). Значения регистров и отдельных битов приведены в двоичном формате (если не указано иное), а остальные числовые величины — в десятичном. (Прим. науч. ред.)

Табл. 1.7, команды LDM и STM могут модифицировать базовый регистр. Применительно к стековым операциям, в качестве базового регистра обычно выступает указатель вершины стека R13 (SP). Таким образом, LDM и STM позволяют одной командой осуществлять операции помещения в стек (PUSH) и выталкивания из стека (POP) произвольного количества регистров. Команды LDM и STM могут работать с несколькими типами стека, поддерживаемыми процессором ARM7TDMI-S:


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_26.html on line 106

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_26.html on line 106

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_26.html on line 106