русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 5.3.3 Регистры


Дата добавления: 2015-08-06; просмотров: 1025; Нарушение авторских прав


 

Процессор имеет архитектуру “load-and-store” (загрузка – сохранение), поэтому для выполнения любой обработки данных необходимо сначала перенести эти данные из памяти в определенные регистры, выполнить команду обработки данных и затем записать полученные значения обратно в память.

Основной регистровый файл состоит из 16 пользовательских регистров R0 – R15. Каждый из этих регистров является 32-битными. Регистры R0 – R12 имеют общее назначения и не выполняют ни каких других специальных функций. Регистры R13 – R15 имеют дополнительные функции.

Регистр R13 используется в качестве указателя стека (Stack Pointer – SP).

Регистр R14 является регистром связи (Link Register – LR). При вызове подпрограммы адрес возврата автоматически запоминается в регистре связи, откуда затем считывается при возврате. Такое решение позволяет быстро переходить к «концевым» функциям (функции, которые не вызывают других функций) и возвращаться из них. Если же функция входит в состав «ветви», т.е. вызывает другие функции, содержимое регистра связи необходимо сохранять в стеке.

Регистр R15 выполняет функции счетчика команд (PC).

Многие команды могут работать с регистрами R13 – R15 как с обычными пользовательскими регистрами.

Регистр текущего состояния программы

Наряду с банком регистров в процессоре имеется дополнительный 32-битный регистр, называемый регистром текущего состояния программы (Current Program Status Register – CPSR). Регистр CPSR содержит набор флагов, которые управляют функционированием ЦПУ ARM7 и отображают его состояние.

Как уже было замечено, в состоянии ARM процессор ARM7 поддерживает 7 режимов работы. Каждому режиму соответствует определенная регистровая модель, содержащая набор регистров, доступных процессору в этом режиме. Все возможные регистровые модели для состояния ARM показаны в таблице 5.1. Все регистры общего назначения имеют дополнительные имена, определенные стандартом фирмы ARM. Регистры, имена которых в таблице выделены фоновой заливкой, банкированны, их переключение осуществляется при переключении режимов работы процессора. При переходе из одного рабочего режима в другой, текущее состояние регистров, указанных в таблице без суффиксов, автоматически переписывается в соответствующие банкирующие регистры, а при возврате в прежний режим вновь используется содержимое регистров без суффиксов.



 

Таблица 5.1 Регистровая модель процессора ARM7TDMI в различных режимах состоянии ARM

user, system supervisor abort undefined IRQ FIQ
R0 (a1) R0 R0 R0 R0 R0
R1 (a2) R1 R1 R1 R1 R1
R2 (a3) R2 R2 R2 R2 R2
R3 (a4) R3 R3 R3 R3 R3
R4 (v1) R4 R4 R4 R4 R4
R5 (v2) R5 R5 R5 R5 R5
R6 (v3) R6 R6 R6 R6 R6
R7 (v4) R7 R7 R7 R7 R7
R8 (v5) R8 R8 R8 R8 R8_FIQ
R9 (v6) R9 R9 R9 R9 R9_FIQ
R10 (v7) R10 R10 R10 R10 R10_FIQ
R11 (v8) R11 R11 R11 R11 R11_FIQ
R12 (IP) R12 R12 R12 R12 R12_FIQ
R13 (SP) R13_SVC R13_ABORT R13_UNDEF R13_IRQ R13_FIQ
R14 (LR) R14_SVC R14_ABORT R14_UNDEF R14_IRQ R14_FIQ
R15 (PC) PC PC PC PC PC
CPSR CPSR CPSR CPSR CPSR CPSR
- SPSR_SVC SPSR_ABORT SPSR_UNDEF SPSR_IRQ SPSR_FIQ

 

Получается, что суммарное количество физических 32-битных регистров общего назначения, доступных процессору во всех режимах состояния ARM, равно 31.

Переход процессора из состояния ARM в состояние Thumb производится с помощью команды BX. Набор регистров в состоянии Thumb сокращен по сравнению с набором регистров, доступных в состоянии ARM. Все возможные регистровые модели для состояния Thumb показаны в таблице 5.2.

В кодах операций большинства команд Thumb под номер регистра отведено только 3 бита, поэтому прямое обращение возможно только к восьми регистрам: R0 – R7. Регистры R8 – R12 доступны только через специальные команды загрузки. Регистры SP и LR выполняют фиксированные функции указателя вершины стека и регистра связи соответственно. Для работы с этими регистрами в состоянии Thumb имеются специальные команды.

 

Таблица 5.2 Регистровая модель процессора ARM7TDMI в состоянии Thumb

user, system supervisor abort undefined IRQ FIQ
R0 (a1) R0 R0 R0 R0 R0
R1 (a2) R1 R1 R1 R1 R1
R2 (a3) R2 R2 R2 R2 R2
R3 (a4) R3 R3 R3 R3 R3
R4 (v1) R4 R4 R4 R4 R4
R5 (v2) R5 R5 R5 R5 R5
R6 (v3) R6 R6 R6 R6 R6
R7 (v4) R7 R7 R7 R7 R7
SP SP_svc SP_abt SP_und SP_irq SP_fiq
LR LR_svc LR_abt LR_und LR_irq LR_fiq
PC PC PC PC PC PC
CPSR CPSR CPSR CPSR CPSR CPSR
- SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

 



<== предыдущая лекция | следующая лекция ==>
Тема 5.3.1 Конвейер | Тема 5.3.4 Регистр текущего состояния программы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.5 сек.