
- •Организация телефонных сетей.
- •Лекция 2. Состав и функциональная архитектура управляющих комплексов.
- •Использование микропроцессоров в средствах связи.
- •3.1 Языки программирования.
- •3.2 Типы и форматы данных
- •3.3 Системы и форматы команд
- •3.4 Способы адресации
- •4.1 Состав и функции программного обеспечения средств связи.
- •4.2 Функции, назначение, классификация операционных систем.
- •1 Операционные системы реального времени.
3.3 Системы и форматы команд
Набор команд машинного языка, которые может выполнять процессор, точно соответствует тем операциям над данными, которые может выполнять аппаратное обеспечение процессора с помощью микропрограмм. Другими словами, загружаемая в процессор программа для ЭВМ, написанная или транслированная на языке программирования низкого уровня, использует микрокоманды процессора для выполнения машинных команд, заданных программным обеспечением. Значение каждой микрокоманды (инструкции) имеет для данного типа процессора строго определенное значение. Микрокоманды процессора не могут быть изменены загружаемым программным обеспечением.
Загружаемое ПО МПр (программа для ЭВМ) для исполнения аппаратными средствами процессора должна быть преобразована в специальную форму, учитывающую только существующие микрокоманды процессора. Это преобразование осуществляется специальной программой – компилятором, на выходе которой получается машинный код в виде «0» и «1», который непосредственно считывается из оперативной памяти и интерпретируется микропроцессором.
Команды языка ассемблера могут предусматривать пересылку данных (между регистрами, между регистрами и внешними устройствами); могут инициировать операции ввода-вывода; могут требовать выполнения арифметических и логических операций. Также команды МПр могут предусматривать передачу управления, например при ветвлении в программе, передачу управления подпрграмме и возврат из подпрограммы в основную программу. Существуют также команды управления МПр, команды поддержки языков высокого уровня, команды поддержки функций операционных систем по управлению памятью, команды для поддержки однотипных операций над упакованным форматом данных.
Структура любой команды языка низкого уровня (ассемблера), как правило, делится на две части (два поля), длина поля в битах или разрядах определяет формат команды. Операционная часть указывает, что надо делать; для этого в ней содержится код операции; адресная часть указывает над какими операндами следует проводить операцию. С учетом сказанного формат машинной команды имеет вид (см.рис.6):
Рис.6 – Общая структура машинной команды
В качестве содержания поле «П» может указывать размер и тип ожидаемого операнда.
Адрес в команде – часть машинной команды, которая указывает на устройство или элемент данных.
В адресной части могут указываться следующие значения:
А1, А2, А3 – абсолютные адреса ячеек физической памяти, причем А1 и А2 – адреса ячеек операндов, А3 – адрес ячейки для записи результата.
А4 – абсолютный адрес ячейки физической памяти с машинным кодом следующей команды
R1, R2 – номера регистров общего назначения, где находятся операнды.
В – значение базового адреса
D – смещение или сдвиг
В зависимости от числа адресов, которые указаны в адресной части команды могут быть четырех-, трех-, двух- или одноадресные.
Четырехадресная машинная команда имее формат (см.рис7):
Рис.7 – Формат четырехадресной машинной команды
Результат операции записывается по адресу А3, при этом А1 … А3 – номер ячейки памяти или номер регистра, А4 – только адреса ячеек памяти. Такая машинная команда обеспечивает максимальную производительность МПр за счет того, что адреса операнда и адрес результата указывается явным образом. Однако в большинстве МПр поле А4 не используется. Использование адреса А3 в некоторых случаях также является избыточным. Поэтому большинство МПр серии х86 Intel или Motorola поддерживают двухадресные команды, которые имеют следующий формат (см.рис.8):
Рис.8 – Формат двухадресной машинной команды
Результат выполнения машинной команды записывается на место одного из операндов. Такая команда является наиболее часто используемой. Одноадресная команда имеет формат (см.рис.9):
Рис.9 - Формат одноадресной машинной команды
Адрес первого операнда в одноадресной команде задается явно; второй операнд хранится в специальном неадресуемом регистре (аккумуляторы). Результат может записываться по адресу А1 либо в аккумулятор. Для задач управления, где большая часть времени уходит на пересылки данных и логические операции целесообразнее использовать двухадресные команды, а для многошаговых вычислительных процедур целесообразно использовать одноадресные команды.
Команды ПУСК, ОСТАНОВ процессора относятся к безадресным.
В некоторых случаях в адресную часть записываются не адреса данных, а сами данные. Этот прием позволяет увеличить быстродействие системы, но снижает гибкость программы. Кроме того, поле имеет ограниченную размерность, поэтому в «тело» команды могут быть записаны данные ограниченной размерности и, следовательно, величины.
Далее рассмотрим различные способы адресации, применяемые в рамках системы команд микропроцессора.