AOP_Tom1 (1021736), страница 37
Текст из файла (страница 37)
Если содержимое гА удовлетворяет заданному условию, то выполняется команда ЛИР, в противном случае ничего не происходит. "Положительным" являетгя значение, которое больше нуля (но не нуль), а "неположительным" — наоборот, нуль или отрицательное значение. в ЛХМ. ЛХХ, ЛХР, ЛХММ, ЛХМХ, ЛХМР ()пшр Х пейабге, кего, роя!Не, поппекак!ге, попкего, попрек!с!те — перейти, если в регистре Х отрицательное значение, нуль, положительное, неотрицательное, ненулевое, неположительное). С = 47; Г = О, 1, 2, 3, 4, 5 соответственно. ° Л!М, Л!2, Л!Р, Л!ММ, Л!МХ, Л!МР Ошпр ! пека!!ге, кето, ров!С!че, поппейас!че, попгего, попрек!Ф!ге — перейти, если в индексном регистре ! — отрицательное значение, нуль, положительное, неотрицательное, ненулевое, неположительное).
С = 40+ 1; Г = О, 1, 2, 3, 4, 5 соответственно. Это аналоги соответствующих команд для гА. Другие команды ° БЬА, БВА, БЬАХ, БНАХ, Б1,С, БНС (вЫЙ 1е(1 А (сдвинуть А влево), зЫЙ пБЫ А (сдвинуть А вправо), зЫ(с 1ьеН АХ (сдвинуть АХ влево), зЫЙ пфс АХ (сдвинуть АХ вправо), вЫЙ 1е(с АХ с(гсп1аг!у (циклнческнй сдвиг АХ влево), зЫ(с пБЫ АХ с!гсп1аг1у (циклический сдвиг АХ вправо)).
С = б; Г = О, 1, 2, 3, 4, 5 соответственно. Это команды "сдвига", где М обозначает число байтов компьютера М1Х, которые нужно сдвинуть вправо или влево; М должно быть неотрицательным. Команды БЬА и БНА не оказывают влияния на содержимое гХ; остальные команды сдвига оказывают такое действие на оба регистра А и Х, как будто зто один 10-байтовый регистр. При выполнении команд БЬА, БВА, БЬАХ и БВАХ в регистр с одной стороны входят нули, а с другой стороны исчезает информация из сдвинутых байтов. Команды БЬС и БВС вызывают "циклический" сдвиг, при котором байты, "исчезнувшие" с одной стороны, снова входят в регистр с другой стороны.
В циклическом сдвиге участвуют оба регистра — гА и гХ. Заметим, что ни одна из команд сдвига никак не влияет на знаки регистров А и Х. Регистр Х Примерю Регистр А Первоначальное содержимое БНАХ 1 БЬА 2 БВС 4 БВА 2 БЬС 1 в МОЧЕ (переместить). С = 7; Г = число. Количество слов, определенное значением Р, перемещается, начиная от ячейки М, в другие ячейки, адрес первой из которых задается содержимым индексного регистра 1. Перемещение осуществляется по одному слову за раз, и к концу выполнения операции значение в регистре гП увеличивается на Г.
Если Г = О, то ничего не происходит. Необходимо следить за тем, чтобы группы ячеек, участвующих в перемещении, не перекрывались. Предположим, что Г = 3 и М = 1000. Тогда, если гП = 999, перемещаем СОМТЕМТБ(1000) в СОМТЕМТБ(999), СОМТЕМТБ(1001) в СОМТЕМТБ(1000) и СОМТЕМТБ(1002) в СОМТЕМТБ(1001); в данном случае все нормально. Но если бы в регистре гП содержалось число 1001, то в результате были бы выполнены перемещения СОМТЕМТБ(1000) в СОМТЕМТБ(1001), СОМТЕМТБ(1001) в СОМТЕМТБ(1002), СОМТЕМТБ(1002) в СОМТЕМТБ(1003), т. е.
мы бы переместили одно и то же слово СОМТЕМТБ(1000) в три различных места. ° МОР (по орегас1оп — нет операции). С = О, Никакие действия не выполняются, и эта команда просто пропускается. Г и М игнорируются. ° М1.Т (Ьа!1 — остановить). С = 5; Г = 2. Остановка работы компьютера. Пока оператор будет его перезапускать, все будет выглядеть так, как будто работает команда МОР (т. е.
никакие действия не выполняются). Команды ввода-вывода. М1Х можно оснастить достаточно большим количеством устройств ввода-вывода (причем все они поставляются за дополнительную плату). Каждому устройству соответствует определенный номер. Номер устройства Периферийное устройство Размер блока, слов 100 Накопитель на магнитной ленте номер 1 (О < С < 7) Диск или барабан номер И (8 < И < 16) 100 16 Устройство чтения перфокарт 16 17 Перфоратор 16 18 Принтер 24 19 Терминал ввода данных 14 20 Перфолента 14 Не каждый компьютер М1Х будет оснащен всеми этими устройствами. поэтому время от времени мы будем специально упоминать о наличии тех или иных устройств. Некоторые нз них нельзя использовать и для ввода, и для вывода.
В приведенной выше таблице указаны фиксированные размеры блоков (в словах) для каждого устройства. При вводе или выводе с помощью таких устройств, как накопитель на магнитной ленте, диск или барабан, происходит чтение или запись полных слов (состоящих из пяти байтов и знака). Но устройства ввода-вывода с номерами от 16 до 20 всегда работают в символьном коде, в котором каждый байт представляет один буквенноцифровой символ. Поэтому с помощью каждого слова М1Х передается сразу пять гимволов. Символьный код приведен в верхней части табл. 1, которая находится в конце данного раздела, и на форзацах в конце книги.
Код 00 соответствует символу "о", который обозначает пробел. Коды 01 — 29 представляют буквы от А до 2, среди которых есть несколько греческих букв; коды 30-39 представляют цифры О, 1,..., 9, а следующие коды 40, 41, ... — знаки пунктуации и другие специальные символы. (Набор символов М1Х отражает положение дел на то время, когда компьютеры еще не могли справиться со строчными буквами.) С помощью символьного кода нельзя прочитать или записать все возможные величины, которые могут содержатьгя в байте, так как некоторые комбинации не определены. Более того, некоторые устройства ввода-вывода могут оказаться не предназначенными для обработки всех элементов из набора символов, например символы Е и Л, встречающиеся в тексте, скорее всего, не будут восприняты устройством чтения перфокарт. Когда данные вводятся в символьном коде, всем словам присваиваются знаки "+", а при выводе знаки игнорируются.
Если данные вводятся с терминала, то набор в конце каждой строки символа возврата каретки приводит к тому, что остаток строки заполняется пробелами. Дисковые и барабанные устройства — зто внешние устройства памяти, каждое из которых содержит блоки из 100 слов. При выполнении каждой команды 1М, ООТ или 100 (см. ниже) конкретный блок из 100 слов, на который ссылается кол~аида, определяется текущим содержимым гХ и не должен превосходить емкость используемого диска или барабана. ° 19 ((прп( — ввод). С = 36; Г = номер устройства. Эта команда реализует передачу информации из заданного устройства ввода в последовательно расположенные ячейки, начиная с ячейки М. Число ячеек, из которых передается информация, соответствует размеру блока для данного устройства (см.
приведенную выше таблицу). Если предыдущая операция на этом же устройстве еще не закончена, то компьютер будет ожидать ее завершения. Время, в течение которого будет длиться передача информации, начатая по этой команде, зависит от скорости работы устройства ввода. Поэтому до момента завершения передачи информации программа не должна обращаться к этой информации в памяти. Не следует пытаться прочитать с магнитной ленты любой блок, следующий за блоком, который был записан последним. ° ООТ (оигрит — вывод). С = 37; Г = номер устройства.
Эта команда реализует передачу информации из ячеек памяти, начиная с ячейки М, на заданное устройство вывода. Если сначала устройство не было готово, то компьютер будет м~дать его готовности. Время, в течение которого будет длиться передача информации, начатая по этой команде, зависит от скорости устройства вывода. Поэтому до момента завершения передачи информации программа не должна производить изменения в соответствующих ячейках памяти. ° 10с ((прис-оп!рог сон(го! —.управление вводом-выводом). с = 35; Г = номер устройства.
В случае необходимости компьютер ожидает, пока освободится заданное устройство. Затем выполняется управляющая команда, которая зависит от типа применяемого устройства. В этой книге будут использоваться следующие примеры. Магнишнал лента. Если М = О, то лента перематывается в начало.
Если М ( О, то лента перематывается на -М блоков (т. е. на М блоков назад) или в начало., в зависимости от того, что произойдет раньше. Если М > О, то лента перематывается вперед; перематывая ленту вперед, нельзя заходить дальше блока, который был записан последним. Например, погшедовательность команд "ООТ 1000(3): 10С -1(3); 1Ы 2000(3)" записывает сто слов на ленту 3, а затем снова считывает их. Если надежность ленты не ставится под сомнение, то использование последних двух команд этой последовательности представляет собой медленный способ перемещения слов 1000- 1099 в ячейки 2000 — 2099. Последовательность команд "ООТ 1000(3): 10С +1(3)" некорректна.
Диск или барабан. М должно быть равно нулю. В результате устройство позиционируется в соответствии с содержимым гХ, чтобы следующая операция 1в или ООТ на этом устройстве выполнялась быстрее в случае, если используется то же значение гХ. Принтер. М должно быть равно нулю. Команда "10С 0(18)" заставит принтер перейти к началу (т. е, к верху) следующей страницы.