Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > ARM > ARM7TDMI |
|
||||||||||||
5. РегистрыПроцессор ARM7TDMI содержит всего 37 регистров:
Не все регистры доступны в одно и тоже время. Доступность регистров для программиста зависит от состояния процессора и рабочего режима. 5.1 Набор регистров в состоянии ARM В состоянии ARM доступны 16 регистров общего назначения, один или два регистра статуса. В привилегированных режимах становятся доступными специфические банки регистров. На рисунке 2.3 демонстрируется, какие регистры доступны в каждом режиме. В набор регистров в состоянии ARM входят 16 регистров r0...r15. Еще один регистр, CPSR, содержит флаги условия кода и биты текущего режима. Регистры r0...r13 являются регистрами общего назначения и могут использоваться как для хранения данных, так и для хранения адреса. Регистры r14 и r15 выполняют следующие специальные функции: Регистр связи Регистр 14 используется как регистр связи (LR) подпрограммы. Регистр r14 принимает копию регистра r15 при выполнении инструкции переход по ссылке (BL). Во всех остальных случаях регистр r14 может использоваться как регистр общего назначения. Соответствующие банкированные регистры r14_svc, r14_irq, r14_fiq, r14_abt и r14_und аналогичным образом используются для запоминания значений возврата r15 при возникновении прерываний и исключительных ситуаций или при выполнении инструкции BL внутри процедур обработки прерываний или исключительных ситуаций. Счетчик программы Регистр 15 хранит значение PC. В состоянии ARM биты [1:0] регистра r15 имеют неопределенное значение и должны игнорироваться. Биты [31:2] содержат значение PC. В состоянии Thumb бит [0] имеет неопределенное значение и должен игнорироваться. Биты [31:1] содержат значение PC. Регистр r13 iиспользуется в качестве указателя стека (SP). В привилегированных режимах доступен еще один регистр - регистр хранения статуса программы (SPSR). Он содержит флаги кода условия и биты режима, являющиеся результатом исключительной ситуации, которое вызвало вхождение в текущий режим. Банки регистров - дискретные физические регистры в ядре, которые находятся в позициях доступных регистров в зависимости от текущего рабочего режима процессора. Содержимое банкированного регистра запоминается при изменениях рабочих режимов. В режиме FIQ имеется семь банкированных регистров в позициях r8-r14 (r8_fiq-r14_fiq). В состоянии ARM несколько обработчиков быстрых прерываний (FIQ) не должны выполнять запись в какой-либо регистр. В режимах пользователя, IRQ, супервизорном, аварийном и неопределенном имеется два банкированных регистра в позиции r13 и r14, позволяя хранить собственное значение SP и LR в каждом режиме. В системном режиме используются те же регистры, что и в режиме пользователя. На рисунке 2.3 представлены регистры для состояния ARM.
5.2 Набор регистров в состоянии Thumb Набор регистров в состоянии Thumb является поднабором по отношению к набору регистров в состоянии ARM. Программист имеет доступ к:
В каждом привилегированном режиме имеются банкированные регистры SP, LR и SPSR. Данный набор регистров показан на рисунке 2.4.
5.3 Соотношение между регистрами в состояниях ARM и Thumb Регистры в состоянии Thumb связаны с регистрами в состоянии ARM следующим образом:
Данные соотношения показаны на рисунке 2.5.
Прим.: Регистры r0-r7 называются младшими регистрами, а регистры r8-r15 - старшими регистрами. 5.4 Доступ к старшим регистрам в состоянии Thumb В состоянии Thumb старшие регистры r8-r15 не являются частью стандартного набора регистров. Программисту на языке Ассемблер ограничивается доступ к ним, но их можно использовать для кратковременного хранения. Можно использовать специальные варианты инструкции MOV для передачи значений из младших регистров r0-r7 в старшие и, наоборот, из старших регистров в младшие. Инструкция CMP позволяет сравнивать значения старших регистров со значениями младших регистров, а инструкция ADD позволяет сложить значения старших регистров со значениями младших регистров. Более подробная информация приведена в "ARM Architecture Reference Manual".
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|