КЛАССИФИКАЦИЯ КОМАНД
ЭВМ способна понимать и выполнять точно определенный для нее набор команд. Количество и тип меняются в зависимости от возможностей и назначения ЭВМ.
В зависимости от того, к каким блокам машины обращается команда или на какие блоки ссылается, можно выделить три группы команд:
- обращения к памяти (адресные);
- обращения к регистрам (регистровые или безадресные);
- ввода - вывода.
Команды обращения к памятипредписывается машине производить действия с содержимым указанной ячейки памяти. Адрес ячейки памяти задает машине команда.
Команда обращения к регистру,иногда называемая микрокомандой управления, выполняет различные действия без ссылок на ячейку памяти. Например, команда очистки аккумулятора. Эта команда имеет дело только с одним операндом, а именно с числом, записанным в аккумуляторе.
Команды ввода-выводаосуществляет обмен данными между машиной и внешними устройствами, такими как внешняя память, не читающими устройствами, дисплеями имультиплексорами данных. Организация пересылок вход-выход является наиболее трудной задачей и требует понимания как способов программирования, так и логической организации машины.
Другой способ деления команд основан на учете основных функций, выполняемых командой:
- пересылки данных;
- арифметические и логические команды;
- управления, обращения к подпрограмме;
- микрооперации;
- ввод - вывод.
Команды пересылок данных или передачи словсвязаны с обменом информацией между внутренней памятью и рабочим регистром (аккумулятором). Команда должна определять направление обмена, источник данных и (или) приемник (место назначения) данных.
Арифметические и логические командыопределяют операции над двумя операндами. Команда должна определять действие, источник и приемник. Источник - второй операнд. После операции содержимое источника не изменяется, а в приемнике хранится результат операции.
Команды управлениясвязаны с принятием решения. Они могут проверить результат вычисления в любой точке программы. В этой точке программа может иметь несколько ветвлений. На основе этой проверки команда управления выберут соответствующую ветвь выполняемой программы.
Команды обращения к подпрограммеиспользуются для организации взаимосвязей основной программы с подпрограммами и возвращения к основной программе.
Команды микрооперацийоперируют с одним операндом. В малых машинах этот операнд обычно находится только в аккумуляторе. Следовательно, команды микроопераций могут использоваться, например, для очистки, образования дополнения, сдвига числа, находящегося в аккумуляторе.
Команды ввода-выводаосуществляют передачу данных в машину и из машины.
БАЗОВАЯ СИСТЕМА МАШИННЫХ КОМАНД
Теоретически, для решения конкретной задачи может использоваться любая ЭВМ. Малая машина будет решать задачу путем выполнения большого числа очень простых операций, что может потребовать много времени для получения решения. Большая ЭВМ, способная выполнять множество операций, может решить ту же задачу значительно быстрее.
Рассмотрим простую гипотетическую машину и ее основные операции.
КОМАНДЫ ОБРАБОТКИ ДАННЫХ: АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ
Малые машины имеют как минимум одну команду для пересылки данных, одну - для арифметических операций и одну - для логических операций. Наиболее распространенными являются команды: STORE (запомнить), ADD (сложить), AND (логическое И).
STORE M.
Это команда пересылки данных. Она заносит содержимое аккумулятора в ячейку памяти М. Содержимое аккумулятора не изменяется. Аккумулятор является источником, а ячейка памяти -приемником. В сжатой форме алгоритм выполнения команды имеет вид
(А) → M
Скобки обозначают содержимое ячейки.
ADD M.
Это арифметическая команда. Она выполняет двоичное сложение содержимого источника (определенной ячейки памяти М) и аккумулятора. Результат остается в аккумуляторе. Если произойдет переполнение аккумулятора, то заполняется регистр связи.
(А) + (М) → А
AND M.
Это логическая команда. Она выполняет над каждым разрядом содержимого аккумулятора и содержимого ячейки памяти М булеву операцию И. Результат остается в аккумуляторе.
(М) Λ (А) → А
КОМАНДЫ УПРАВЛЕНИЯ
Принятие решения и ветвление выполняются командами управления, которые составляют основу ЭВМ. Основными командами управления являются: HALT (остановить), JUMP (безусловная передача управления), SKIP IF (условная передача управления), ISZ (приращение и переход, если нуль).
HALT.
Простейшая команда управления. Она предписывает машине прекратить увеличение программного счетчика. Если программист хочет продолжить вычисления, он нажимает кнопку START на пульте управления, либо другие предусмотренные действия.
JAMP M.
Команда JUMP связана с программным счетчиком. Она заносит адресную часть команды М в программный счетчик. Следовательно, следующая команда программы будет считываться из ячейки М.
M
Команда безусловной передачи управления не изменяет содержимого аккумулятора, регистра связи и ячеек памяти.
Команда SKIP(Пропуск по условию)
Проверяет выполнение некоторого условия в машине. Если условие выполняется, то команда, следующая за SKIP, пропускается. Если условие не выполняется, выполняется команда, следующая за SKIP. Обычно в машине имеется несколько разновидностей команды SKIP.
SKIP P (Пропуск по плюсу)
Пропуск производится в случае, когда содержимое аккумулятора положительно. Это означает, что если команда перехода SKIP находится в ячейке I, то выполняется следующая команда из ячейки I+2, если (А) положительно, иначе - команда из ячейки I+1:
(А) = + I + 2
(А) ≠ + I + 1
SKIP Z(Пропуск по нулю)
Пропуск очередной команды приводится, если в аккумуляторе нуль, т.е.:
(А) = 0 I + 2
(А) ≠ 0 I + 1
SKIP L(Пропуск по переполнению)
Пропуск по переполнению производится, если содержимое регистра связи равно 1:
(L) = 1 I + 2
(L) ≠ 1 I + 1
SKIP N (Пропуск по минусу)
Пропуск команды производится, если (А) – отрицательное число:
(А) = - I + 2
(А) ≠ - I + 1
SKIP(Безусловный пропуск)
Следующая команда всегда пропускается:
I + 2
Команда SKIP не изменяет состояния аккумулятора, регистра или какой-либо из ячеек памяти.
ISZ(Приращение и переход, если 0)
Команда выполняет две операции: она прибавляет к содержимому ячейки памяти (М) единицу и затем проверяет результат сложения. Если результат нулевой, следующая команда пропускается. Если результат не равен 0, выполняется следующая команда:
(М) + 1 М
(М) = 0 I + 2
(М) ≠ 0 I + 1
Рассмотрим пример использования команды ISZ. Необходимо умножить 10x2 путем сложения 10+10. Программа:
№ ячейки | Содержимое |
ADD 150 | |
ISZ 151 | |
JUMP 100 | |
HALT | |
… | |
Ячейка 150 содержит первое число 10. Ячейка 151 содержит число - 2 (7776) и используется в качестве счетчика. Программа имеет форму петли, каждое прохождение выполняет одно сложение. При первом прохождении команда ISZ 151 увеличивает содержимое ячейки с 7776 до 7777 (десятичное - 1), а затем программа выполняет следующую команду JUMP 100. При втором прохождении команда ISZ 151 от 7777 до 0000. Как следствие, команда JUMP 100 пропускается, и программа переходит к команде HALT.
При этом:
1. Команда ISZ не изменяет содержимого аккумулятора или регистра
связи.
2. Команда ISZ увеличивает содержимое определенной ячейки памяти и
затем сравнивает его с нулем.
3. Если команда ISZ используется для организации к – кратного цикла, то к
должно находиться в ячейке – счетчике.
Дата добавления: 2015-12-01; просмотров: 1613;