Cтраница 3
Это распределение справедливо для любой автокодовой программы. Если переменная - индексная, то ее адрес определяется начальным адресом массива ячеек, зарезервированных в описании программы, и значениями индексов. [31]
Обращение к внешним устройствам и промежуточным акопителям производится, как правило, не непосредственно из решаемой задачи, а при. Для этих программ задается определенная информация, содержащая сведения о начальном адресе обрабатываемого массива, его длине, структуре элементов массива, формате обмена. Понятие формата, внесенное в практику программирования из алгоритмического языка ФОРТРАН, оказалось настолько удобным, что оно получило широкое распространение. [32]
Пусть нам требуется выбрать некоторое число из массива. В общем случае адрес требуемого числа в массиве зависит от трех параметров: начального адреса массива, относительного расположения числа в массиве и размера каждого числа. [33]
При обращении к магнитным лентам проводится считывание или запись блоков слов, при этом в программе указывается номер начального блока и их количество. При вводе или выводе информации с перфолент и с перфокарт информация в программе задается указанием начальных адресов массива и количества слов. [34]
Для переменных с индексами компилятор не включает в объектный код непосредственный переместимый адрес. При каждом обращении к элементу массива порождаются машинные команды, вычисляющие абсолютный адрес элемента массива на основании начального адреса массива, длины элемента и фактического значения индекса. [35]
Предусмотрим пересылку множителя в регистр Т в основной микропрограмме. Кроме того, следует предусмотреть хранение в оперативной памяти числа - 6, необходимого для восстановления в регистре Re начального адреса массива данных в оперативной памяти. В табл. 5.34 показано размещение указанных данных в памяти. Будем считать, что в начале каждого повторения цикла в регистре Re восстанавливается начальный адрес А. [36]
S - ячейка, в которую заносится контрольная сумма, подсчитываемая при обмене, АМЗУ - номер зоны на ленте или начальный адрес массива на барабане. Ап - адрес ячейки, в которую должно быть передано управление при несовпадении контрольных сумм при считывании информации. [37]
Этот вид адресации используется в тех случаях, когда операнд является одним из элементов массива данных и при обращении к такому операнду используется начальный адрес массива ( адрес его первого элемента) и смещение относительно этого адреса. При этом начальный адрес ( база) или смещение ( индекс) представляются с использованием содержимого одного из базовых регистров ВХ, ВР или одного из индексных регистров SI, DI. Исполнительный адрес операнда представляется выражением, в которое входит содержимое одного из четырех регистров. [38]
С автоматически передает массив в функцию путем имитации передачи параметра по ссылке - при этом вызываемые функции могут изменять значения элементов в исходных массивах вызывающих функций. Ведь имя массива фактически является адресом его первого элемента. Поскольку передается начальный адрес массива, вызываемая функция точно знает, где хранится этот массив. Таким образом, когда вызываемая функция изменяет в своем теле элементы массива, она изменяет подлинные элементы массива в их исходных ячейках памяти. [39]
В языке С передача массива в функцию происходит путем имитации передачи параметра по ссылке - вызываемые функции могут изменять значения элементов в подлинных массивах вызывающих программ. Имя массива фактически является адресом первого элемента массива. Поскольку происходит передача начального адреса массива, вызываемая функция точно знает, где хранится массив. [40]
Массивы передаются функциям с помощью моделируемого вызова по ссылке - вызываемые функции могут модифицировать значения элементов в исходных массивах оператора вызова. Поскольку в функцию передается начальный адрес массива, вызываемая функция знает, где хранится массив. [41]
Номера блоков памяти и номер команды набирается на этом регистре точно так же, как они записываются в команде с кодом операции 25 и кодом модификации 1, при этом белые клавиши соответствуют второму адресу команды, а красные - первому адресу команды. На том же регистре набирается начальный адрес вводимого массива чисел ( команд) в машину с перфоленты. Номер ячейки набирается на белых клавишах; номер блока - на правых клавишах из числа красных; вид памяти - на средней линейке красных клавиш. [42]
Схема индексной адресации.| Схема относительной адресации. [43] |
Если в качестве операндов используются переменные с индексами, то они обозначают элементы массивов, представляющие собой совокупность однотипных значений. Наиболее удобна для работы с массивами индексная адресация, схема которой приведена на рис. 6.3. При индексной адресации используются индексные регистры, расположенные в процессоре. Адрес операнда вычисляется как сумма начального адреса массива операндов и индекса, записанного на одном из индексных регистров процессора. В команде отводится дополнительное поле, в котором указывается номер индексного регистра X. В некоторых процессорах предусматриваются регистры для хранения предела изменения индекса. Сравнение индекса с пределом осуществляется по специальной команде условного перехода. Это значительно упрощает программирование циклических алгоритмов. [44]
Кроме того, в аппаратуре машины предусмотрены регистры, основное назначение которых - управление уровнями вложенности. Два регистра, предусмотренные в аппаратуре машины, содержат базу, начальный адрес массива регистров-дисплеев. [45]