Косвенное обращение - Большая Энциклопедия Нефти и Газа, статья, страница 2
Для любого действия существует аналогичная и прямо противоположная правительственная программа. Законы Мерфи (еще...)

Косвенное обращение

Cтраница 2


Отметим, что возросший параллелизм достигается обеспечением независимых путей к задачам-обслуживателям, позволяя избежать блокировок, присущих предыдущему варианту. Однако это достигается ценой введения дополнительного уровня косвенного обращения в структуре программы аналогично тому, как это было сделано в пакете Member Ops. Это приводит к появлению дополнительного шага на пути доступа к задачагЧ - обслуживателям.  [16]

Указатель - переменная, содержимым которой является адрес другой переменной. Соответственно, основная операция для указателя - это косвенное обращение по нему к той переменной, адрес которой он содержит. Указатель, который содержит адрес переменной, ссылается на эту переменную или назначен на нее; наоборот, переменная, адрес которой содержится в указателе, называется указуемой переменной.  [17]

С помощью этого указателя можно получить и значение переменной, на которую он указывает. Обращение к значению howOld посредством указателя рАде называется операцией разыменования или косвенного обращения, поскольку осуществляется неявное обращение к переменной howOld, адрес которой содержится в указателе.  [18]

Можно предварительно скопировать в некоторую область памяти, принадлежащую вызываемой программа, сами значения переменных, определяющих параметры. Преимущество такого способа состоит в освобождении регистра параметров и исключении необходимости косвенных обращений к параметрам. Недостаток его состоит в увеличении объема предварительной обработки и в том, что в некоторых случаях может потребоваться восстановить значения параметров при возврате управления.  [19]

Вряд ли такая строка в программе может иметь смысл, но в любом случае программа должна уметь поддерживать подобные ситуации. Дело в том, что присвоение объекта самому себе может произойти по ошибке в случае косвенного обращения к указателю, который ссылается на тот же объект.  [20]

Далее начинается условное выражение. В нем анализируются простейшие частные случаи, и если ни один из них не дает ответа, то следует прямое или косвенное обращение ( или обращения) к той же функции для дальнейшего разбирательства. Но структура аргументов при этих обращениях становится чуточку проще.  [21]

Специальные режимы адресации не используют адресный регистр при задании эффективного адреса. В этих режимах используется непосредственное значение, которое находится в команде для задания значения данных или адреса данных, или используется регистр, к которому осуществляется косвенное обращение с помощью команды.  [22]

Микросхема представляет собой четырехразрядный микроконтроллер ( ОЭВМ) без ПЗУ. Система команд включает в себя 6 команд условных переходов, имеющих по 7 условий выполнения каждая; 17 безадресных команд; 5 команд операций, имеющих по 7 мод адресации к операндам каждая; 6 команд операций с парами регистров; 5 команд операций с константами. Команды косвенного обращения к ОЗУ ( 8 к х 4) могут адресоваться по двум парам регистров. Реализована команда косвенного чтения ПЗУ, что дает возможность проводить операции умножения и деления. ИС работает с внешним ПЗУ ( 8 к х8) типа К573РФ4, а также требует аппаратной поддержки в виде 8-разрядного адресного регистра.  [23]

Все рассмотренные операторы исполняются как при их вводе нажатием клавиш в рабочем режиме, так и при считывании из программной памяти в режиме автоматических вычислений. Кроме них в программах автоматических вычислений, предварительно вводимых в область программ оперативной памяти, используется группа операторов управления выполнением программы: С / П, записываемый в местах останова программы, В / О, записываемый в конце подпрограмм, и операторы косвенного безусловного перехода общего вида КБП N и обращения к подпрограмме КПП N, обеспечивающие безусловный переход по адресу, равному модифицированному содержимому регистра N памяти. Модификация выполняется так же, как и в операторах косвенного обращения к памяти данных. К этой группе относятся и операторы косвенного условного перехода Кх О / V, Кх О N, Кх с О N, Кх ( Ш с переходом при несоблюдении проверяемого условия по адресу, равному модифицированному содержимому регистра N памяти.  [24]

25 Размер кода Reversible Engine для функционального блока и программы. [25]

Из приведенных выше диаграмм видно, что 16-разрядный код оказывается компактнее 8-разрядного. Объясняется это особенностями компиляции функциональных блоков. При вызове экземпляр функционального блока получает через стек единственный параметр - адрес размещения в памяти своих данных. В результате компилятор вынужден генерировать косвенные обращения к данным. Адреса области переменных в 8051 16-разрядные, что и вызывает рост кода при динамическом вычислении адресов переменных.  [26]

Специальный прием приходится также применять, если подпрограмма переходит на следующую страницу МОЗУ. При этом адрес возврата в основную программу остается ( вместе с началом подпрограммы) на предыдущей странице - известен лишь адрес ячейки ( начальный адрес подпрограммы), где нужный адрес записан. Как и в предыдущем случае, должно быть организовано двойное косвенное адресование - теперь перед выходом из подпрограммы. Вначале в дополнительную рабочую ячейку с косвенным обращением по начальному адресу подпрограммы с предыдущей страницы ДЮЗУ вызывается ( переписывается) адрес возврата в основную программу, а затем уже осуществляется выход из подпрограммы по команд.  [27]

Следуя предложенной в [17] классификации языков по степени использования косвенной адресации, входной язык системы может быть отнесен к третьей ступени адресных языков. Благодаря этому в системе ДИАМС может быть эффективно использована технология программирования, основанная на адресных преобразованиях графически подобных выражений [17, 18], которая позволяет сократить объем программ, что особенно важно при использовании микропроцессорных систем. Однако это приводит к невозможности разработки компилятора с языка системы, поскольку косвенные обращения по необходимости должны интерпретироваться динамически.  [28]

Последняя команда фрагмента, КИП6 - это косвенный вызов содержимого регистра, номер которого записан в Р6, и увеличение этого содержимого на единицу. Если перед вызовом оно представляло собой не целое число, то при вызове дробная часть числа отбрасывается. В нашей про - Ррамме эта команда используется не для вызова, а для дого, чтобы отбросить дробную часть содержимого Р6 и заодно увеличить его на единицу. Дело в том, что дробная часть при косвенных обращениях отбрасывается лишь в тех случаях, когда содержимое модифицируемого регистра больше единицы. В нашем же случае может оказаться, что величина 2 ( 2 ( Аа / о)) меньше единицы и применение команды КИП6 приведет к совершенно неправильному результату.  [29]

Для мультипрограммных операционных систем важно, чтобы несколько задач могли разделять некоторую область общих кодов, например библиотеку подпрограмм. Такие разделяемые программы должны быть позиционно независимыми. Написание позиционно независимых программ требует правильного использования режимов адресации. Все способы адресации, включающие только ссылки на регистры, являются позиционно независимыми. К ним относятся: R - прямое обращение к регистру; ( R) - косвенное обращение к регистру; ( R) - i-адресация с автоувеличением; о) ( R) H - косвенная адресация с автоувеличением; - ( R) - адресация с автоуменьшением и - ( R) - косвенная адресация с автоуменьшением. Если используются эти способы адресации, то гарантируется позиционная независимость.  [30]



Страницы:      1    2