Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
37.Структура (форматы) команд микропроцессоров.Структура команды определяется ее форматом, т.е. количеством двоичных разрядов, отводимых под всю команду, а также количеством и расположением отдельных полей команды. Полемназывается совокупность двоичных разрядов, кодирующих составную часть команды. Типовая команда, в общем случае, должна указывать: подлежащую выполнению операцию; адреса исходных данных (операндов), над которыми выполняется операция; адрес, по которому должен быть помещен результат операции. В соответствии с этим команда состоит из двух частей: операционной и адресной. Операционнаячастькоманды представляет собой поле кода операции, с помощью которого задается подлежащая выполнению операция. В адреснойчастикоманды содержится информация о местонахождении исходных данных и месте сохранения результата операции. Обычно местонахождение каждого из операндов и результата задается в команде путем указания адреса соответствующей ячейки основной памяти или номера регистра процессора. Принципы использования информации из адресной части команды определяет системаадресации. Система адресации задает число адресов в команде команды и принятые способыадресации. Для определения количества адресов, включаемых в адресную часть, используется термин адресность. В максимальном варианте необходимо указать три компонента: адрес первого операнда, адрес второго операнда и адрес результата операции. Такой формат команды называется трехадресным(рис. 54). Рисунок 54 – Трехадресный формат команды В трехадресном формате длина команды может оказаться достаточно большой, если все три поля будут задавать адреса в основной памяти. Если по умолчанию взять в качестве адреса результата адрес одного из операндов (обычно второго), то можно обойтись без третьего адреса, и в итоге получаем двухадресный формат команды (рис. 55). Естественно, что в этом случае соответствующий операнд после выполнения операции теряется. Рисунок 55 – Двухадресный формат команды Длину команды можно сократить, если в качестве первого операнда использовать только регистры. Так как число регистров в МП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресногоили регистровогоформата (рис. 56). Рисунок 56 – Регистровый формат команды Если выделить определенное стандартное место для хранения первого операнда и результата, то можно еще больше сократить команду, перейдя к одноадресномуформату (рис. 57). Обычно для этой цели используется аккумулятор. Рисунок 57 – Одноадресный формат команды Если для обоих операндов выделяется четко заданное местоположение, а также в случае команд, не требующих операнда, используется безадресный(нульадресный) формат команды (рис. 58). Рисунок 58 – Безадресный формат команды В таком варианте адресная часть команды вообще отсутствует или не задействуется. 38. Регистровые структуры микропроцессоровФункциональная неоднородность регистров Количество и назначение регистров зависит от архитектуры микропроцессора. Часть регистров микропроцессора не используется в качестве средств программирования. Это объясняется не их физическим отсутствием, а тем, что программисту не предоставляются средства изменения содержимого этих регистров. Такие регистры называются программнонедоступными. Для другой части регистров микропроцессора программисту предоставляются средства изменения их содержимого. Такие регистры называются программнодоступными. Они образуют регистровую область микропроцессора. Регистровую область или набор программно доступных регистров можно рассматривать как скоростное ОЗУ малой емкости, входящее в состав микропроцессора. Этот набор регистров используется для временного хранения данных, адресной информации, информации о состоянии микропроцессора и управляющей информации, контролируемых программистом. Короткая адресация регистровой области и быстрый доступ к ней обеспечивают создание эффективно исполняемых программ. Регистры микропроцессора функциональнонеоднородны: одни служат для хранения данных и/или адресной информации, другие для управления работой микропроцессора. В соответствии с этим все регистры микропроцессора можно разделить на 3 группы: регистры данных; указатели или адресные регистры; регистры специального назначения или специальные регистры. Регистрыданных участвуют в арифметических и логических операциях в качестве источников операндов и приемников результата, адресныерегистрыиспользуются для вычисления данных и команд, расположенных в основной памяти. Специальныерегистрыслужат для индикации текущего состояния микропроцессора и управления режимами его работы. Часть регистров может использоваться для хранения как операндов, так и адресов. Их называют регистрамиобщегоназначения(РОН). Функциональная неоднородность регистров микропроцессора связана с широким использованием неявной(подразумеваемой) адресации регистров, которая, в свою очередь, определяется стремлением к созданию коротких программ. В то же время функциональная специализация регистров затрудняет программирование, так как требует учета особенностей организации регистрового набора, присущих данному микропроцессору. Однако в результате программа выполняется быстрее и для ее хранения требуется меньше памяти. На уровне символической записи (мнемоники) команд для прямой ссылки на конкретные регистры микропроцессора им присваиваются имена, например, A, B, C, D, SP, X или R0, R1, R2 и т.д. Обычно эти имена отражают функциональное назначение регистра и способствуют пониманию мнемоники команд. Адресные регистры Адресные регистры применяются для реализации различных методов непрямой(вычисляемой) адресации данных (рис. 59). Рисунок 59 – Адресные регистры К адресным регистрам относятся:
К классу адресных регистров с автоинкрементированием относится программныйсчетчик(счетчиккоманд, указателькоманд) PC (Program Counter), содержимое которого после очередной выборки элемента командной последовательности увеличивается на длину этого элемента. За счет использования такого регистра в микропроцессоре процесс адресации следующего элемента командной последовательности в основном осуществляется неявно и автоматически. Изменение последовательности процесса выборки команд осуществляется специальными командами передачи управления, связанными с загрузкой в PC адреса, отличного от адреса следующей команды. Частным случаем регистра с автомодификацией является указательстекаSP (Stack Pointer), который указывает на положение вершины стека. При использовании стека для хранения локальных переменных и обмена параметрами между вызываемой и вызывающей процедурами может оказаться полезным специальный адресный регистр, указывающий на начало области локальных переменных и/или параметров в стеке, – указателькадраFP (Frame Pointer). Значение указателя стека SP непрерывно меняется, поэтому применять его в качестве точки отсчета при доступе к данным в стеке неудобно. Процедуру доступа можно значительно упростить, если функцию точки отсчета отдать специально зарезервированному для этой цели регистру – указателю кадра FP. Указатель кадра относится к классу базовых регистров. Специальные регистры При выполнении операций АЛУ генерирует ряд признаков, характеризующих их результат. Функцию хранения этих признаков, а также некоторых других выполняет специальный регистрсостоянияSR (Status Register) или словасостоянияпрограммыPSW (Program Status Word). С каждым признаком связывается одноразрядная переменная – флажок. Флажки, связанные с признаками результата операции, группируются в полекодаусловияCC (Condition Code). Типовой состав флажков-признаков результата операции:
Удобно в поле кода условия CC иметь один или несколько флажковпользователя, функциональное назначение которых определяет он сам. Обычно эти флажки служат для связи между отдельными частями программы. Состояние поля кода условия CC тестируется командамиусловноготипа. В состав PSW входит также ряд специальных флажков, управляющихработоймикропроцессора, например:
Регистр PSW включает также различные модификаторыкоманд, изменяющие реакцию МП на отдельные команды (например, флажок направления DF). Для обеспечения особыхусловийвыполненияпрограммв PSW вводят специальный флажок, определяющий эти условия. Так, например, флажок H/U (Halt/User) служит для разрешения особых условий выполнения программ и реализации директив пультового терминала, а флажок U/S (User/System) используется для перевода микропроцессора из специального системного режима, в котором выполняются программы ОС, в пользовательский. Упаковка всех флажков в одно слово (и соответственно хранение в одном регистре) дает возможность организовать их быструю запись в память с последующим восстановлением. В некоторых микропроцессорах поле кода условия, а также ряд других флажков (например, флажки, управляющие работой МП, и модификаторы команд) выделяются в отдельный регистрпризнаков(флагов)F. В сложных микропроцессорах состав специальных регистров более широкий. В этих микропроцессорах имеются специальные регистры, используемые преимущественно ОС, – системныерегистры. К системным регистрам относятся:
Наиболее типичным представителем регистров данных является аккумуляторA (Accumulator), который используется для временного хранения операндов и промежуточных результатов. С аккумулятором связано большинство команд арифметической и логической обработки. Ссылка на него, как правило, производится неявно с помощью кода операции. В состав микропроцессора может входить один или несколько аккумуляторов. Другим примером регистров данных являются рабочиерегистры. В отличие от аккумулятора они адресуются явно и могут рассматриваться как сверхскоростное регистровое ОЗУ данных. Рабочие регистры могут совмещать свою функцию хранения данных с функцией их адресации. В этом случае они приобретают функции регистров общего назначения (РОН). Как аккумуляторы, так и РОН могут при необходимости объединяться в регистровые пары. Микропроцессор может содержать несколько (например, два или четыре) наборов рабочих регистров. При этом один из них используется для системных целей или обработки прерываний, в все остальные – для прикладных программ пользователя. В каждый момент времени доступен только один набор рабочих регистров, выбираемый специальным регистром – указателемрабочегонабораWP (Work Pointer). Переключение доступного рабочего набора связано с перезагрузкой малоразрядного указателя WP. Расширение разрядности указателя WP до полного размера адресного регистра и отображение набора рабочих регистров на основную память данных с базой в WP приводит к типовой архитектуресрабочими областями. Однако при этом теряется быстрый доступ к данным, хранящимся в рабочих регистрах. Решение этой проблемы связано с реализацией части основной памяти данных на одном кристалле с микропроцессором и размещением рабочей области в этой внутренней части ОЗУ |