русс | укр

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

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

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

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


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

Команды ветвления


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


 

Базовая команда перехода (В) позволяет выполнить переход в диапазоне до 32 Мбайт как вперед, так и назад. Модифицированная команда перехода с сохранением адреса (BL) выполняет туже операцию и сохраняет в регистре связи (R14 – LR) текущее состояние PC, увеличенное на четыре (из-за особенностей организации конвейера команд).

Команда перехода с сохранением адреса используется в качестве команды вызова подпрограмм, сохраняющей адрес возврата в регистре связи. Для возврата из подпрограмм можно использовать обычную команду перехода, выполняющую переход по адресу, находящемуся в регистре связи.

Используя флаги условий, можно выполнять условные вызовы подпрограмм.

Существует еще две команды перехода: «переход со сменой состояния» (ВХ) и «переход со сменой состояния и сохранением адреса» (ВLX).Эти команды осуществляют те же операции, что и предыдущие команды, но при этом еще и выполняют переключение с набора команд ARM и Thumb и обратно.

Это единственный способ, который необходимо использовать для изменения используемого набора команд, т.к. непосредственные манипуляции с флагом Т регистра состояния CPSR могут привести к непредсказуемым результатам.

 

Команды обработки данных

 

Обобщенный формат всех команд обработки данных приведен на рисунке 5.3.

 

 

Рисунок 5.3 Формат команд обработки данных

 

В процессоре ARM7 имеется многорегистровое устройство циклического сдвига (barrel shifter), позволяющее при выполнении команды сдвигать значение второго операнда на величину до 32-битов.

Бит S используется для управления флагами условий. Если этот бит установлен, флаги условий изменяются в соответствии с результатом выполнения команды. Если этот бит сброшен, состояние флагов условий не изменяется. Если при установленном бите S в качестве регистра результата указан счетчик команд (R15), производится копирование содержимого регистра состояния CPSR в регистр SPSR. Эта возможность используется для восстановления PC и переключения в исходный режим в конце обработки исключительных ситуаций. Выполнение такой команды не возможно в режиме User, т.к. в этом режиме регистр SPSR отсутствует, результат выполнения этой операции невозможно предсказать.



Эти особенности предоставляют богатый набор команд обработки данных, которые позволяют создавать очень эффективный программный код. Но эта же особенность создает определенные сложности при разработки компиляторов.

 

Копирование регистров

 

Процессор ARM7 поддерживает команды загрузки/сохранения, позволяющие пересылать знаковые и беззнаковые числа разного размера (слово – 32 бита, полуслово – 16 байт, байт – 8 бит) в заданных регистрах.

Данные команды способны равнозначно воздействовать на весь регистровый банк процессора, за счет чего имеется возможность загрузить 32-битное слово непосредственно в РС, осуществляя переход в пределах всего адресного пространства процессора. Если конечный адрес лежит вне диапазона команды перехода, то его можно непосредственно загрузить в счетчик команд.

 



<== предыдущая лекция | следующая лекция ==>
Тема 5.3.7 Система команд | Индивидуальное задание


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


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

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

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


 


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

 
 

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

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