Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_Kozin.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
17.36 Mб
Скачать

1.6. Форматы команд и операндов

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

Если ячейки ОП имеют длину не меньше длины команды максимальной адресности, то для представления всех команд используются слова одинаковой длины, равной длине ячейки ОП. В этом случае в командах с адресностью меньше максимальной, часть разрядов не используется, что ведет к существенному недоиспользованию емкости ОП.

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

Если в процессоре имеется внутренняя память, то все нульадресные команды и команды, использующие только адреса ВП, делаются длиной, равной длине ячейки ОП. Эти команды выбираются за одно обращение к ОП. Команды, содержащие один адрес ОП, в этом случае состоят из двух частей, первая из которых представляет собой команду с адресами ВП. Один из этих адресов указывает регистр ВП, куда должен быть загружен адрес ОП, содержащийся во второй части команды (косвенная адресация). Каждая из этих частей команды имеет длину слова, равную длине ячейки ОП. По тому же принципу можно строить и команды с двумя адресами ОП. Эти команды будут иметь длину, равную длине трех ячеек ОП, и выбираться за три обращения к ОП. Информация о длине команды может быть зафиксирована либо подбором специальных кодовых комбинаций для кода операции (КО) команд, использующих то или иное количество адресов ОП, либо введением в первую часть каждой команды специального поля кода длины команды (КДК).

Если команды не используют адресов внутренней памяти, то при длине адреса ОП, равного длине ячейки ОП, нульадресные команды представляется словами имеющими длину ячейки ОП. Одноадресные команды состоят из двух частей. Первая часть, как и нульадресная команда, содержит код операции и служебные поля, вторая - адрес ячейки ОП. Двухадресные команды состоят из трех частей. Вторая и третья части таких команд являются соответственно первым и вторым адресами ячеек ОП. Эти адреса загружаются в строго определенные регистры процессора. Первая часть двухадресной команды содержит код операции и служебные поля. Для выборки одноадресной команды здесь, как и в предыдущем случае, нужны два обращения к ОП, а для выборки двухадресной команды - три обращения. Информация о длине команды отражается либо в различии комбинаций КО, используемых для кодирования операций над различном числом операндов из ОП, либо введением специального поля КДК.

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

В качестве примера построим форматы команд для систем команд, найденных в разд.1.5, считая, что ОП состоит из 256 ячеек длиной в один байт каждая. Адрес ячейки ОП в этом случае имеет тогда также длину один байт.

Одноадресная система команд без признака засылки содержит 14 команд, для кодирования которых поле КО должно иметь 4 разряда. Поскольку в данном случае имеются только нульадресные и одноадресные команды, для их различения можно ввести одноразрядное поля КДК и считать КДК=0 для нульадресных команд и КДК=1 для одноадресных.

Возможные форматы команд для этого случая приведены на рис.1.7. разряды 5-7 нульадресных команд и первого байта одноадресных команд здесь не используются.

Одноадресная система команд с признаком засылки содержит различных наименований команд. Поскольку команды «Ввод» и «Вывод» различаются значением признака засылки, их наименования можно кодировать одной кодовой комбинацией. То же самое относится к командам "Запись" и "Загрузка". Таким образом, для КО достаточно четырехразрядного поля. КДК, как и в предыдущем случае, задается одноразрядным полем. Возможные форматы команд для этого случая приведены на рис.1.8.

Здесь не используются разряды 6-7 нульадресных команд и первого байта одноадресных команд.

Двухадресная система команд без признака засылки содержит 13 наименований команд, поэтому поле КО должно иметь 4 разряда. В поле КДК можно ограничиться одним разрядом, приняв КДК=1 для одноадресных команд и КДК=0 для двухадресных. Разряды 5-7 первого байта всех команд здесь не попользуются (рис.1.9).

Двухадресная система команд с признаком засылки содержит 18 команд, однако для кодирования наименований операций достаточно 13 кодовых комбинаций. По этой причине поле КО должно иметь 4 разряда. Поле ПЗ должно иметь 2 разряда, а так как в командах используется три варианта адресности, поле КДК также должно иметь два разряда. Возможный вариант форматов команд для этого случая представлен на рис. 1.10.

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

Т акой операнд загружается в процессор за два обращения к ОП. В нем знак и старшие разряды операнда располагается в первом байте, а младшие разряды - во втором.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]