Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Тема 2.6 Основы программирования процессора



Основная функция любого МП – это выполнение команд.

.

3. Классификация команд МП:

1. По числу ячеек памяти, необходимых для размещения одной команды, различают команды в одно, два или три слова. Команды длиной в два или три слова для выборки соответственно два или три цикла обращения к памяти.

2. По архитектурным характеристикам МП:

- изменение содержимого ЯП;

- изменение содержимого А;

- изменения содержимого индексного регистра;

- выполнение операций со стеком;

- выполнение операций в АЛУ;

- передачи управления;

- изменение содержимого регистра состояния (или регистра признаков);

- ввода-вывода.

Каждая команда, выбираемая из памяти процессором, определяет алгоритм поведения процессора на ближайшие несколько тактов. Код команды говорит о том, какую операцию предстоит выполнить процессору и с какими операндами (т. е. кодами данных). Где взять исходную информацию для выполнения команды и куда поместить результат (если необходимо). В процессоре код команды расшифровывается и преобразуется в набор микроопераций, выполняемых отдельными узлами процессора.

Адресация операндов

Большая часть команд МП работает с кодами данных (операндами). Одни команды требуют входных операндов (одного или двух), другие выдают выходные операнды (чаще один операнд). Входные операнды называются операндами –источниками, а выходные называются операндами- приемниками. Определение места положения операндов производится кодом команды. Существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда поместить выходной операнд. Эти методы называются методами адресации.

Методы адресации.

Непосредственная адресация предполагает, что операнд (входной) находится в памяти непосредственно за кодом команды.

Прямая адресация предполагает, что операнд (входной или выходной) находится в памяти по адресу, код которого находится внутри программы сразу же за кодом команды.

Регистровая адресация предполагает, операнд (входной или выходной) находится во внутреннем регистре МП.

Косвенная адресация предполагает, что во внутреннем регистре МП находится не сам операнд, а его адрес в памяти.

Автоинкрементная адресация близка к косвенной, но отличается тем, что после выполнения команды содержимое используемого регистра увеличивается на 1 или 2.

Автодекрементная адресация работает похоже на автоинкрементную, но только содержимое выбранного регистра уменьшается на 1 или2 перед выполнением команды.



Самая быстрая адресация – это регистровая.

Система команд, выполняемых МП, представляет собой полный набор команд, допустимых в машинном языке данного типа ЭВМ.

В общем случае система команд МП включает в себя следующие группы команд:

- Команды пересылки данных;

- Арифметические команды;

- Логические команды;

- Команды переходов.

Команды пересылки данных не требуют выполнения никаких операций над операндами. Источником и приемником могут быть внутренние регистры МП, ЯП или УВВ. Эти команды выполняют следующие важнейшие функции:

- Запись содержимого во внутренние регистры МП;

- Сохранение в памяти содержимого внутренних регистров МП;

- Копирование содержимого из одной области памяти в другую;

- Запись в УВВ и чтение из УВВ.

Арифметические команды. Этим командам требуется 1 или2 входных операнда. Формируют команды один выходной операнд. Эти команды могут быть разделены на память основных групп:

- Команды операций с фиксированной запятой (сложение, вычитание, умножение, деление);

- Команды операций с плавающей запятой (сложение, вычитание, умножение, деление);

- Команды очистки:

- Команды инкремента и декремента:

- Команда сравнения.

Логические команды. Этим командам, как арифметическим, требуется один или два операнда, и формируют один выходной операнд. Логические команды выполняются над операндами логические операции, т. е. они рассматриваются коды операндов не как единое число, как набор отдельных битов. Логические команды выполняют следующие основные операции:

- Логическое умножение, логическое сложение, сложение по модулю 2;



- Логические, арифметические и циклические сдвиги;

- Проверка битов и операндов;

- Установка и очистка битов (флагов) регистра состояния МП.

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

Команды безусловных переходов вызывают переход в новый адрес независимо ни от чего.

Команды условных переходов вызывают переход не всегда, а только при выполнении заданных условий. В качестве таких условий выступают значения флагов в регистре МП.

Специально для проверки условий перехода применяется команда сравнения.

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

Особое место среди команд перехода с возвратом занимают команды прерываний. Эти команды в качестве входного операнда требует номер прерывания (адрес вектора). Прерывания бывают двух основных типов:

- Векторные прерывания, которые требуют проведения цикла чтения по магистрали;

- Радиальные прерывания, которые не требуют никакого цикла обмена по магистрали.

При векторном прерывании код номера прерывания передается МП тем устройством ввода/вывода, которое данное прерывание запросило. Если прерывание одновременно запросило 2 или более устройств, то сигнал представления прерывания получит только одно устройство, а именно то, которое ближе к МП. Векторные прерывания обеспечивают большую гибкость, но их может быть очень много. Но зато они требуют дополнительных аппаратурных узлов во всех устройствах, запрашивающих прерывания.

При радиальном прерывании в магистрали имеется столько линий запроса прерывания сколько всего может быть разных прерываний. Т. Е. каждое устройство ввода/вывода, желающее использовать прерывание, подает сигнал запроса прерывания по своей отдельной линии. Процессор узнает о номере прерывания по номеру линии, по которой пришел сигнал запроса прерывания. Радиальных прерываний обычно не очень много. При этом типе прерываний вводят специальный контроллер прерываний. Работать с радиальными прерываниями проще, так как все сводится только к выработке единственного сигнала IRQ, и никаких циклов обмена по магистрали не требуется.

 


Эта страница нарушает авторские права

allrefrs.ru - 2018 год. Все права принадлежат их авторам!