Cтраница 2
Такая настройка адресов не всегда пригодна для практического использования, особенно при пошаговом поиске в последовательности сегментов данных или таблице значений. Для применений такого рода более эффективной оказывается загрузка адреса первого сегмента в общий регистр и затем прибавление величины ( равной длине сегмента) к этому регистру всякий раз, когда в соответствии с алгоритмом программы необходимо проверить следующий сегмент. Значение регистра, содержащего адрес сегмента, используется затем как базовый регистр с операндом, задающим нулевое смещение. [16]
Перекодировка не применяется к адресам, явно определяющим ключи памяти ( адреса операнда в командах установить ключ памяти, прочитать ключ памяти и сбросить бит обращения), а также к кодам, которые формируются подобно адресам памяти из содержимого полей В и D команды, но не используются для адресации основной памяти. К последним относятся коды адреса операнда в командах загрузка адреса, вызов монитора, а также коды адреса операнда в командах сдвига и ввода-вывода. Однако перекодировка адреса производится в том случае, когда программа явно определяет эти ячейки как ячейки операнда или команды. [17]
Далее начинается диагностика под управлением диагностического монитора. Сперва подмашина М7 проверяет правильность выполнения микропрограмм некоторых команд ЦВМ ( переключение программ, загрузка слова, загрузка адреса и др.), необходимых для работы диагностических программ, входящих в состав так называемого диагностического монитора. [18]
Непосредственно перед обращением к В адрес области сохранения должен находиться в 13 - м регистре. Стандартные соглашения о связях преду сматривают восстановление 13-го регистра после выхода из подпрограмм, Поэтому программа А может выполнить загрузку адреса ASAVE один раз и не заботиться о повторных перезагрузках, если регистр 13 для других целей не используется. [19]
Программа-эмулятор позволяет по простым командам-директивам системного терминала выполнять функции, подобные тем, которые осуществляет пульт программиста. Вход в программу осуществляется при включении питания, отпускании переключателя Пуск, восстановлении системы при отказе питания ( если предусмотрен рестарт), загрузке адреса с терминала. [20]
Команды 1C ( чтение символа), LH ( загрузка полуслова), L ( загрузка слова), LA ( загрузка адреса), LM ( групповая загрузка) предназначены для передачи данных из оперативной памяти в общие регистры. Такая передача исходных данных обязательно производится в начале программы, а далее командами используется по мере необходимости. По команде LR ( загрузка) происходит передача данных из одного регистра в другой, а по команде LA ( загрузка адреса) - пересылка адреса в общий регистр. Рассмотрим подробнее эти команды. [21]
Влияние команд пересылок на заполнение регистра-приемника и регистра-источника. [22] |
MOVB dst src пересылают слово и байт соответственно из источника src в приемник dst. Если размерность источника меньше размерности регистра-приемника, лишние биты регистра-приемника заполняются знаковым расширением пересылаемого значения. На рис. 4.24 показано, как эти команды влияют на заполнение регистра-приемника. Здесь Т - бит операнда источника, R - бит, заполняемый операндом источника, s - бит, заполняемый знаковым ( самым старшим) битом операнда источника, X означает, что бит игнорируется, 1 - безусловную установку в единицу. Отметим, что когда в качестве приемника используется регистр-указатель, то соответствующий ему бит регистра TAG устанавливается командами пересылок в единицу. Это означает, что команду MOV можно использовать для загрузки адресов, относящихся к пространству ввода - вывода. [23]