АДРЕСАЦИЯ [addressing]. Определение операнда в машинной команде. Способ вычисления физического адреса и выполнения операций над адресными регистрами. Рассмотрим наиболее распространенную схему А. Чтобы при выполнении программы устройство управления могло определить, какую команду необходимо выполнить в данный момент, и найти данные, указанные в этой команде, вся основная память машины делится на отдельные адресуемые ячейки – байты или машинные слова. Каждому байту или слову присвоен уникальный физический адрес. В традиционной схеме А. эти адреса являются номерами, начиная от нуля с шагом единица. Таким образом, к любой команде или элементу данных можно обратиться по адресу его самого левого элемента. При таком абсолютном методе А. адрес 1234 означает 1235-й байт или машинное слово при условии, что отсчет ведется от нулевой ячейки памяти. Однако при режиме мультипрограммирования место, занимаемое программой в оперативной памяти, зависит от наличия и расположения в ней других программ. Поэтому необходимо, чтобы программы были перемещаемыми, т. е. адреса внутри программ должны отсчитываться относительно некоторого начального базового адреса программы, который должен быть перемещаемым. Это же требуется и при независимой трансляции подпрограмм и отдельных программных модулей, адреса которых также отсчитываются от базового адреса и называются относительными адресами или смещениями. При загрузке программы в зависимости от места, занимаемого программой или ее сегментом, определяется значение ее базового адреса, которое посылается в базовый регистр процессора, и физический адрес ячейки интерпретируется аппаратурой как сумма содержимого базового регистра и относительного адреса. Например, если адресная часть команды содержит 1200, а содержимое базового регистра равно 300, то операнд будет выбираться из ячейки с физическим адресом 1500. Внутри циклов, которые есть почти в каждой программе, работает одна и та же последовательность команд, а изменяются только адрес или величина той или иной переменной. Для определения значения адреса, изменяемого в цикле, применяется так называемый индексный регистр, содержимое которого отражает значение параметра цикла. Адрес операнда в командах цикла определяется как указанный в команде относительный адрес плюс содержимое базового регистра плюс содержимое индексного регистра. При таком методе А. все данные могут смещаться при перемещении программы путем изменения значения базового регистра, а индексный регистр способствует простой организации выборки в цикле. При трансляции программ, написанных на языках программирования высокого уровня, компиляторы сами выбирают регистры, необходимые для
Автор: | Федор Александрович Новиков |
Издательство: | |
Серия: | |
Жанр произведения: | Компьютеры: прочее |
Год издания: | 2004 |
isbn: | 5-94157-491-6 |
[target]. Обладатель адреса (лицо, программа, устройство или компьютер), которому предназначаются сообщение, команда или данные. Например, А. считается и почтовый ящик, в который приходит сообщение по электронной почте, и пользователь – владелец этого ящика. Также А. является дисковод, на который послал команду центральный процессор, и программа, для которой с диска считываются данные