Сложность машины с точки зрения пользователя
Основная память Регистры Каналы ввода-вывода Абсолютная и относительная адресация Базовый регистр Индексный регистр Другие способы адресаций Типы команд Команды с фиксированной точкой Команды десятичной арифметики Логические команды Команды передачи управления Команды арифметики с плавающей точкой Привилегированные команды и команды управления процессором Еще один способ классификации команды Форматы команд машин, память которых организована словами Набор команд IBM часть 1 Формат команд ЭВМ UNIVAC 1100 Управляющее и арифметическое устройство |
Команды передачи управленияКоманды передачи управления играют особую роль в ЭВМ с хранимой в памяти программой. В обычном процессоре команды выполняются последовательно одна за другой в соответствии с их расположением в памяти ЭВМ. Для того чтобы написанная программа работала эффективно, в некоторых случаях возникает потребность в изменении последовательности выполнения команд. Эта возможность реализуется командами передачи управления. При передаче управления адрес, указанный в команде передачи управления, записывается в счетчик программы, заменяя в нем текущий адрес. Таким образом, следующей машинной командой становится команда, адрес которой - фигурирует в адресной части команды передачи управления. С точки зрения программиста, команда передачи управления может быть условной и безусловной в зависимости от того, проверяется ли соответствие заданной в йей маски текущему коду признака или нет. На уровне машинного кода все передачи являются условными, а безусловный переход реализуется установкой такой маски, которая соответствует любому возможному коду признака (маска = 1111). Команды «Переход с возвратом» (BALR, BAL) предусмотрены для того, чтобы можно было после передачи управления вернуться и продолжить выполнение последовательности, команд, непосредственно следующих за командой передачи управления. Для этого команды BALR и BAL, перед тем как изменить содержимое счетчика программы, запоминают его значение в общем регистре, указанном в командах, т. е. записывают в общий регистр адрес следующей команды. Команды BALR и BAL очень полезны при организации вызова подпрограммы, так какие только передают управление на первую ячейку подпрограммы, но и формируют адрес возврата из этой подпрограммы. Циклы довольно просто организуются при использовании таких команд, как «Переход по счетчику» (BCTR, ВСТ) или «Переход по индексу больше» (ВХН) и «Переход по индексу меньше или равно» (BXLE). Например, при выполнении команд BCTR или ВСТ содержимое указанного.в них общего регистра уменьшается на 1. Новое содержимое этого регистра проверяется, и если оно равно 0, то переход не выполняется. Если оно не равно 0, то в счетчик программы заносится адрес, указанный в команде перехода, и тем самым производится передача управления. Числом итераций можно легко управлять, поместив внутрь цикла команду условного перехода и занеся в указанный в ней регистр нужное значение. |