Cтраница 3
В эту группу входят две операции, по каждой из которых текущее содержимое регистра jF можно запомнить в какой-либо ячейке памяти и занести в него новое содержимое. В одной из этих операций новое значение F задается непосредственным адресом в команде, а в другой - выбирается из памяти. [31]
При использовании адресации с индексированием адрес области памяти определяется как сумма текущего содержимого индексного регистра и содержащегося в команде а) абсолютного адреса, б) косвенного адреса, в) смещения или г) непосредственного операнда. [32]
При выполнении команды, содержащей код каждой из таких операций, производится сравнение текущего содержимого регистра F либо с первым исполнительным адресом А1ИСП в данной команде, либо с числом К. [33]
![]() |
Действия, выполняемые на двух проходах ассемблера. [34] |
При составлении ассемблерных программ часто удобно обращаться к ячейке, указывая ее положение относительно текущего содержимого счетчика позиций. Обычно для задания текущего значения счетчика позиций используется специальный символ. Команда JZ 8 ассемблируется как переход по нулю к команде, которая начинается с увеличенного на 8 текущего содержимого счетчика позиций. [35]
Если же содержимое файла нужно сохранить, то используют процедуру append, которая дополняет текущее содержимое текстового файла новой информацией, дописывая ее в конец данного файла. Сам же процесс записи информации в файл производится либо с помощью оператора write, либо оператором writeln. После служебного слова write или writeln в скобках указывается имя файловой переменной, а затем имя той строковой переменной, из которой осуществляется запись данных в файл. [36]
Такая ситуация была проиллюстрирована выше на рис. 10.6. При выполнении второй команды вызова подпрограммы текущее содержимое счетчика команд помещается в стек. Текущее содержимое счетчика команд представляет собой в данном случае адрес одной из команд первой подпрограммы. Эти 2 байт размещаются в двух областях стека, следующих за теми областями, в которых хранится текущее содержимое счетчика команд главной программы. Теперь в счетчик команд загружается из второго и третьего байтов команды вызова подпрограммы начальный адрес второй подпрограммы, и начинается выполнение подпрограммы второго уровня вложения. [38]
Это позволяет вводить множество блоков данных в ту же электронную таблицу без потери ее текущего содержимого и помещать новые данные в нужное место. [39]
ВЫВОД НО печать Пункт меню File-Print ( файл-шечать) в окне Navigator дает возможность распечатать текущее содержимое окна навигатора. [40]
![]() |
Использование подпрограммы с последующим возвратом в главную программу.| Организация вложения подпрограмм. [41] |
Когда происходит вызов подпрограммы, то в начале своего выполнения она реализует действия по запоминанию текущего содержимого счетчика команд. Когда выполнение подпрограммы заканчивается, то с помощью всего лишь одной команды микропроцессору указывается, что исходное содержимое счетчика команд должно быть извлечено из памяти. Этой информации микропроцессору достаточно, чтобы осуществить возврат в прерванную последовательность команд главной программы. [42]
Что касается первых двух вопросов, то почти во всех ЭВМ есть специальные команды для запоминания текущего содержимого PC, называемого адресом возврата, и перехода затем к точке входа ( начальному адресу) подпрограммы. Адрес возврата обычно включается в стек, а переход выполняется так же, как и другие переходы. В ЭВМ, не имеющих стека, адрес возврата обычно запоминается в специальном регистре. В некоторых ЭВМ есть команды условных и безусловных вызовов подпрограмм. [43]
Адрес команды хранится на счетчике команд и для выборки следующей команды необходимо прибавить длину выполненной команды к текущему содержимому счетчика. Обычно это действие совмещается с другими действиями и наращивание содержимого счетчика осуществляется по мере выборки и выполнения команды. Это вызвано тем, что команда имеет переменную длину и информация о длине извлекается только после дешифрации команды. Если длина команды кратна длине слова ОЗУ, то выборка каждого слова команды должна осуществляться автоинкрементно. Этот подход характерен для мини - и микроЭВМ, где длина слова невелика. [44]
Во-первых, каждый модуль должен предусмотреть в своем составе область сохранения - группу ячеек памяти, которая используется для сохранения текущего содержимого общих регистров в данном модуле в момент вызова какого-либо модуля. [45]