Cтраница 3
Если в операторах R / TRANa используются косвенные ссылки, то перед обращением к соответствующей подпрограмме косвенные ссылки вычисляются. Таким образом, подпрограмме передается стандартный список адресов-параметров. Последний адрес всегда маркируется единицей в старшем разряде. [31]
![]() |
Схема размещения информации о массиве. [32] |
Массивы хранятся и вводятся в машину вместе с информацией о них. Если длина массива в рабочем состоянии определяется числом внутренних адресов ( ак-ан 1), то длина массива во время хранения и ввода определяется еще и информацией о массиве. Обозначим последний адрес, занятый информацией о массиве, ан I. Величину / назовем длиной массива при хранении хотя, массив при хранении занимает / 1 ячейку. [33]
При некратности записи последнего адреса зоны машина неправильно считывает информацию и искажает результаты решения задачи. Чтобы результат не искажался, следует проверить кратность последнего адреса зоны количеству ячеек в макете информации. Для проверки последнего адреса в зону записывается информация по макету с одним количеством ячеек, поэтому последний адрес зоны всегда должен быть кратен количеству ячеек в макете. В процессе проверки к начальному адресу прибавляется шаг ( количество ячеек в макете) и полученный текущий адрес сравнивается с последним адресом. При последнем сравнении текущий адрес должен равняться последнему. При таком равенстве последний адрес кратен макету. Неравенство же адресов свидетельствует об ошибке при записи информации. [34]
Операция считывания является самым простым режимом управления. Машинная команда определяет операцию считывания, адрес регистра или счетчика, содержимое которых должно быть считано, и адрес получателя данных. В некоторых случаях последний адрес не включается в команду непосредственно, а определяется структурой подсистемы. Например, данные могут всегда возвращаться во входной регистр или в накапливающий сумматор ЦП. [35]
При сдвиге в перфокартах машина считывает информацию со сдвигом разрядов, поэтому проверяется правильность записи последнего адреса зоны информации на магнитной ленте. При проверке в МОЗУ машине отводятся ячейки для запоминания начального, последнего и последнего фиксированного ( расчетного) адресов зоны. После ввода зоны информации последний адрес сравнивается с начальным и последним фиксированным. Правильно записанный последний адрес меньше последнего фиксированного и больше начального адреса. [36]
Вызов brk прямо устанавливает новый конкретный последний адрес сегмента данных, равный addr. Такой же результат может быть достигнут при помощи sbrk, где incr - требуемое дополнительное пространство от конца сегмента данных. При нормальном завершении возвращается старое значение последнего адреса сегмента данных. [37]
Команда ФЧБТ осуществляет считывание текстовой информации из БЗУ и ее запись в ОЗУ начиная с адреса РП, задаваемого командой. Если в БЗУ этот маркер отсутствует, то процесс перезаписи продолжается до РПш включительно и затем исполнение команды заканчивается. По этой причине целесообразно при использовании команды ФЧБТ выбирать последние адреса РП. [38]
Передача параметров между модулями осуществляется двумя способами: через общие регистры и с помощью адресных ссылок. Если этих регистров недостаточно, то удобнее использовать второй способ. Конец списка адресов параметров отмечается единицей в старшем разряде последнего адреса. [39]
Первый операнд макрокоманды определяет внешнее имя, которому будет передаваться управление. При желании в качестве первого операнда можно написать ( 15), но для этого программист предварительно должен в регистр 15 поместить адрес точки входа. Если имеется третий операнд VL, то в бите знака последнего адреса в списке адресов указывается знак минус. Этим средством нужно пользоваться, когда число аргументов является величиной переменной, для того, чтобы легко обнаружить конец списка. Если в поле операнда записано ID ав, то после всех команд и констант, порожденных макрокомандой CALL, генерируется команда NOP, которая в последних двух байтах содержит значение абсолютного выражения ( ав) в виде двоичного полуслова. [40]
При некратности записи последнего адреса зоны машина неправильно считывает информацию и искажает результаты решения задачи. Чтобы результат не искажался, следует проверить кратность последнего адреса зоны количеству ячеек в макете информации. Для проверки последнего адреса в зону записывается информация по макету с одним количеством ячеек, поэтому последний адрес зоны всегда должен быть кратен количеству ячеек в макете. В процессе проверки к начальному адресу прибавляется шаг ( количество ячеек в макете) и полученный текущий адрес сравнивается с последним адресом. При последнем сравнении текущий адрес должен равняться последнему. При таком равенстве последний адрес кратен макету. Неравенство же адресов свидетельствует об ошибке при записи информации. [41]
При сдвиге в перфокартах машина считывает информацию со сдвигом разрядов, поэтому проверяется правильность записи последнего адреса зоны информации на магнитной ленте. При проверке в МОЗУ машине отводятся ячейки для запоминания начального, последнего и последнего фиксированного ( расчетного) адресов зоны. После ввода зоны информации последний адрес сравнивается с начальным и последним фиксированным. Правильно записанный последний адрес меньше последнего фиксированного и больше начального адреса. [42]
Число передаваемых параметров может быть произвольным. В регистр 1 записывается адрес предварительно сформированного списка адресов параметров. Этот список образует непрерывную последовательность слов, каждая из которых содержит адрес одного из параметров, при этом параметры в ОП могут и не занимать последовательные слова. Старший бит последнего адреса в списке адресов устанавливается в 1, сигнализируя тем самым, что список завершен. Эта единица не искажает адреса, так как адрес в ЕС ЭВМ занимает лишь 24 разряда 32-разрядного слова. Список представляет собой область адресов переменных, одну и ту же как для принимаемых, так и для возвращаемых параметров. [43]
Во все ячейки ОЗУ записываются единицы, затем производится последовательное считывание информации с проверкой и заменой ее на нули. После обращения к первой ячейке процедура повторяется. Считываются нули и на их место записываются единицы. После обращения к последнему адресу выполняется чтение с проверкой единиц всех ячеек ОЗУ - от первой до последней. [44]
При режиме HALT, если оператору нужно выполнить единичную команду, он должен нажать клавишу CONT. Когда клавиша CONT нажата, пульт передает управление процессору, разрешая машине выполнить команду. Регистр адреса шины высветит последний адрес, на который ссылалась команда ( но не обязательно адрес ее самой), а индикатор данных отразит содержимое этого адреса. [45]