
Форматы команд эвм.
Теперь выясним, всегда ли нужны остальные адресные поля команды.
Анализ различных программ для ЭВМ показывает, что во многих случаях результат выполнения предыдущей команды используется как операнд в следующей. Если результат выполнения команды не пересылать в память, а сохранять, например, в аккумуляторе, то можно обойтись следующими одноадресными командами:
командами арифметической (логической) обработки, которые дают приказ на выполнение какой-либо арифметической или логической операции, используя в качестве операндов содержимое аккумулятора и содержимое адресуемой ячейки памяти (точнее, содержимое регистра данных, куда переписывается содержимое адресуемой ячейки);
командами пересылки, которые дают приказ на обмен информацией между аккумулятором и памятью (через регистр данных), т. е. на загрузку аккумулятора содержимым адресуемой ячейки памяти или запись в эту ячейку содержимого 'аккумулятора (результата вычислений);
командами передачи управления, обеспечивающими условный или безусловный переход к адресуемой ячейке памяти (т. е. к команде, которая должна быть помешена в процессор при выполнении какого-либо условия или вне зависимости от результата предыдущих вычислений), обращение к подпрограмме и выход из нее;
командами ввода-вывода.
Рис. 1.5 Простой процессор, работающий с одноадресными
и безадресными командами.
Основные функциональные узлы процессора.
Процессоры, реализующие программы из одноадресных и безадресных команд (см. Рис. 1.3, б, в), являются простейшими и позволяют создавать наиболее дешевые ЭВМ В одной из возможных структур такого процессора (см. рuc. l.4) используются уже знакомые нам устройства:
арифметико-логическое устройство производит операции над двумя 16-разрядными величинами в целях получения 16-разрядного результата и выработки ряда признаков (результат меньше нуля, равен нулю или больше нуля, был перенос из старшего разряда результата),
регистр состояния — 4-битовый регистр, в котором хранятся признаки результата последней операции, используемые командами перехода;
аккумулятор — 16-разрядный регистр, в котором размещаются подлежащие обработке данные или результат обработки.
регистр команд— 16-битовый регистр, служащий для размещения исполняемой команды;
регистр адреса — 12-битовый регистр, содержащий адрес ячейки памяти, из которой будет считана команда (операнд) или записан результат обработки;
регистр данных— 16-битовый регистр, используемый в качестве буфера между памятью и остальными регистрами процессора; через него пересылаются в процессор команды (операнды) и передаются в память результаты обработки;
счетчик команд — 12-битовый регистр, содержимое которого увеличивается на единицу в момент выборки из памяти исполняемой команды и. если выбрана команда перехода, может быть заменено на содержимое адресной части команды перехода, в конце цикла исполнения команды в счетчике команд всегда хранится адрес той команды, которая должна исполняться вслед за текущей, а это может быть как следующая по порядку команда, так и команда, к которой требуется перейти при выполнении условий, заданных кодом операции команды перехода.
Алгоритм функционирования процессора.
Для решения задач на ЭВМ. созданных на базе процессоров, реализующих программы из одноадресных и безадресных команд необходимо:
1) через устройства ввода информации загрузить в память ЭВМ программу решения задачи (алгоритм, написанный на языке ЭВМ) и исходные данные (это делается различными способами, о которых будет рассказано в следующих главах), и программа, и данные могут быть размещены в любой области памяти, начиная с ячейки 0 или другой ячейки с любым адресом (сначала программа, а затем данные, или наоборот);
2) «сообщить» процессору адрес ячейки памяти, в которой размещена первая команда программы, для чего занести адрес этой ячейки в счетчик команд.
3) нажать кнопку ПУСК, что приведет к передаче в память адреса первой команды программы и к пересылке ее содержимого из памяти в регистр команд; с этого момента процессор начнет выполнять последовательность достаточно простых операций, показанных на схеме алгоритма выполнения команды (Рис. 1.5.);
Как видно из схемы алгоритма, два первых действия (блоки 1 и 2) выполняются для каждой команды. Эти действия (а также действия по определению типа команды — блоки 3, 6 и 9) обычно называют «Выборкой команды». Последующие действия алгоритма («Исполнение команды») полностью зависят от того, какая это команда.
Рассмотрим исполнение команды, расположенной в ячейке 135 на рис 1.5. Оно начинается в момент, когда в аккумуляторе хранится значение уменьшаемого, записанное туда при выполнении предыдущей команды, а в счетчике команд— адрес 135.
1. Адрес, содержащийся в счетчике команд, переписывается в регистр адреса и далее в память ЭВМ (сигнал У1), а оттуда считывается команда «Выч 26», помещаемая в регистр команд (сигнал У4).
2. Счетчик команд наращивается на единицу (сигнал + I), чтобы он указывал на команду (адрес 136), расположенную в памяти вслед за выбранной командой.
3. Устройство управления считывает из регистра команд код исполняемой команды. выясняет, что это команда вычитания, и переходит к ее выполнению.
4. Из регистра команд считывается (сигнал УЗ) и пересылается в память (через регистр адреса) адрес вычитаемого (26). а из памяти переписывается в регистр данных численное значение вычитаемого.
5. Выполняется операция вычитания содержимого регистра данных из содержимого аккумулятора (сигналы У5, У 6 и У1 1 ), а затем полученная разность переписывается с выхода АЛ У в аккумулятор (сигнал У8), заменяя значение уменьшаемого.
Легко заметить, что процесс выполнения команды сводится к определению последовательности открывания и закрывания вентильных схем. Описание того, какую вентильную схему и когда открывать, составляет программу для машины, система команд которой включает команду «Открыть вентильную схему». Такой машиной и является устройство управления ЭВМ. в котором хранятся программы реализации всех команд ЭВМ. Эти программы обычно называются микропрограммами, а их команды — микрокомандами. Простейшая микрокоманда состоит из набора битов, каждый из которых управляет одной из вентильных схем процессора единица означает, что вентильная схема открыта, нуль — закрыта.
Процессор, изображенный на Рие.1.5 не является единственно возможным процессором, используемым для реализации однородных команд.
Рис. 1.6 Схема алгоритма выполнения команд простого процессора.