Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ.раб.#6 Архитектура ЭВМ.doc
Скачиваний:
19
Добавлен:
10.11.2018
Размер:
522.24 Кб
Скачать

Формат машинной команды

Машинная программа — последовательность машинных команд.

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

Формат команды. Для всякого процессора машинная ко­манда имеет стандартный формат и стро­­го фиксированную длину. Команда состоит из кода операции и адресной части. Код операции оп­­ределяет действие, которое должен выполнить процессор; адресная часть содержит адреса ве­ли­чин, над кото­рыми должна быть произведена эта операция:

КОМАНДА

Код операции

Адреса величин

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

Формат одноад­ресной команды:

КОМАНДА

Код операции

(что делать?)

Адрес аргумента или результата

(откуда взять или куда поместить)

Формат трехадресной команды:

КОМАНДА

Код операции

Адрес первого аргумента

Адрес второго аргумента

Адрес результата

Длина команды. Длина кода операции зависит от числа операций, входящих в систему ко­манд компьютера. Так код операции длиной в 4 бита позволяет хранить коды до 16 (24) различных ко­манд (с двоичными кодами от 0000 до 1111). Можно сформулировать простое правило опре­де­ле­ния опти­мальной длины кода операции:

,

где К — количество команд в системе команд машинного языка, k — длина поля кода операции (в би­тах). Фактически во многих случаях длина поля кода операции берется с из­бытком, что, на­при­мер, легко позволяет расширять систему команд.

Пример 1. В системе команд компьютера содержится 50 команд. Какова оптимальная длина кода операции?

Решение. Поскольку 25 = 32 < 50 < 64 = 26, то длина кода операции должна быть не меньше 6 бит.

Большинство арифметических и логических операций имеют два операнда и поэтому трех­адрес­ная структура машинной команды наиболее естественна. В двухадрес­ной команде один из адре­сов используется и для аргу­мента и для результата (после выполнения команды), что не­су­щес­твен­но влияет на методику программирования на языке машинных команд (ЯМК) такого ком­пью­те­ра. В одноадресной машине возникает необходимость использования специального элемента па­мя­ти, называемого сумматором или ак­кумулятором.

В трех- (двух-) адресной машине длины полей всех адресов одинаковы, поэтому общую дли­ну команды (в битах) можно определить по формуле:

d = k + n а,

где k — длина поля кода операций, n — количество адресов в адресной части (n = 1, 2, 3), а — дли­на поля адресной части (в битах). Очевидно, в этом случае размеры адресуемого про­странства (А — количество адресуемых ячеек памяти) опреде­ляются формулой:

А = 2а.