Cтраница 1
Адреса операндов в основной памяти задают сложнее. Поскольку мы должны уметь адресовать люб из 224 байтов основной памяти, для записи адреса п требуется 24 бита ( шесть шестнадцатеричных цифр Но при таком способе записи адресов в программе буд содержаться много лишней информации. [1]
Микропрограмма операции засылки слова на базисный регистр ( а и выборки операнда ( б Предполагается, что к моменту выполнения указанной команды на. [2] |
Адреса операндов и результатов вычисляются в соответствии со значениями базисных адресов, хранимых в базисных регистрах. Принадлежность относительного адреса к некоторому массиву указывается в команде номером базисного регистра, на котором хранится базисный адрес массива. [3]
Невыровненность адресов операндов проявляется в том, что адрес операнда, имеющего длину в одно слово, пересекается с границей двойного слова или граница операнда двойной длины совпадает с адресом байта или слова, не являющимся адресом операнда двойной длины. При невыровненное границ операндов на выполнение пересылок требуется затрачивать дополнительные шинные циклы. [4]
Здесь разрешены нечетные адреса операндов. В байтовых командах может применяться любой режим адресации. Если задан режим регистровой или непосредственной адресации, то в качестве элемента данных используются младший байт регистра или слова команды. Если регистровый режим адресации используется для адресации приемника, то старший байт регистра не затрагивается, за исключением случая применения команды MOVB, которая устанавливает в старшем байте регистра его знаковый бит ( бит 7) в то же состояние, что и в младшем байте регистра. [5]
В зонах адресов операндов указывается либо адрес в памяти или номер скалярного регистра, доступного программисту ( например, индекс-регистра), если операндом является скаляр, либо описание вектора ( адрес первого элемента, шаг, число m элементов в векторе) или адрес этого описания, либо номера векторных регистров R, служащих для хранения промежуточных результатов вычислений. [6]
Блоки формирования адресов операндов ( диспетчер памяти) состоит из блока сегментации и блока страничной адресации. Физический адрес ячейки памяти формируется последовательно: сначала в пределах сегмента, а затем в пределах страницы. [7]
По числу адресов операндов, находящихся в адресной части, различают одно - и многоадресные команды. [8]
Для указаний адресов операндов в командах могут использоваться прямая и относительная адресации. При прямой адресации адрес, указанный в команде, представляет собой номер ячейки ( или некоторого регистра), в которой размещен операнд. Для хранения кода индекса в машине в этом случае предусматриваются специальные регистры, называемые индексными регистрами. Помимо идексации по индексу широко используется индексация по базе. В машине при решении задач может быть одновременно назначено несколько баз. Действия с базами, находящимися в базовых регистрах, аналогичны действиям с индексами, по назначение их другое: база определяет начало зон памяти, куда следует обращаться программе за данными или за командами. При этом адреса данных или команд относительно баз часто называются смещениями. [9]
Для указаний адресов операндов в командах может использоваться прямая и относительная адресация. При прямой адресации адрес, указанных в команде, представляет собой номер ячейки ( или некоторого регистра), в которой размещен операнд. Для хранения кода индекса в машине в зтом случае предусматриваются специальные регистры, называемые индексными регистрами. Помимо индексации по индексу широко используется индексация по базе. В машине при решении задач могут быть одновременно назначены несколько баз. Действия с базами, находящимися в базовых регистрах, аналогичны действиям с индексами, но назначение их другое: база определяет начало зон памяти, куда следует обращаться программе за данными или за командами. При этом адреса данных или команд относительно баз часто называются смещениями. [10]
Для указаний адресов операндов в командах может использоваться прямая и относительная адресация. При прямой адресации адрес, указанных в команде, представляет собой номер ячейки ( или некоторого регистра), в которой размещен операнд. Для хранения кода индекса в машине в этом случае предусматриваются специальные регистры, называемые индексными регистрами. Помимо индексации по индексу широко используется индексация по базе. В машине при решении задач могут быть одновременно назначены несколько баз. Действия с базами, находящимися в базовых регистрах, аналогичны действиям с индексами, но назначение их другое: база определяет начало зон памяти, куда следует обращаться программе за данными или за командами. При этом адреса данных или команд относительно баз часто называются смещениями. [11]
Явный вид записи адресов операндов следует выбирать только в том случае, когда адрес памяти невозможно записать в неявном виде или когда явный вид более выгодно использовать с программной точки зрения. Следует отметить, что в дальнейшем, если символическое имя встречается в подполе операндов, то наряду с термином символическое имя будет использован термин символический адрес или адрес. [12]
Явный вид записи адресов операндов следует выбирать только в TOW случае, когда адрес памяти невозможно записать в неявном виде или когда явный вид более выгодно использовать с программной точки зрения. Следует ответить, что в дальнейшем, если символическое имя встречается в подполе операндов, то наряду с термином символическое имя будет использован термин символический адрес или адрес. [13]
В команде должны указываться адреса операндов. Использование в команде адресов вместо самих операндов придает программе универсальность формулы - одна и та же программа будет работать при записи ( подстановке) в ячейки разных данных. Число адресов в команде зависит от числа ее операндов. Все эти данные расположены в команде в определенном для каждого типа ЭВМ порядке, задаваемом форматом команды - схемой расположения двоичных цифр в команде, позволяющей различать ее составные части и определять их функции. Современные ЭВМ имеют несколько форматов команд, обычно отличающихся числом и расположением адресов операндов. Многообразие форматов вызвано необходимостью экономии памяти и обеспечения удобства программирования. [14]
В адресной части расположены адреса операндов, результатов операций или следующих команд. Многоадресные команды имеют два или более адреса. Двухадресная команда содержит либо два адреса операндов ( один из них может являться адресом результата), либо адрес операнда ( результата) и адрес следующей команды. [15]