Стек - операнд - Большая Энциклопедия Нефти и Газа, статья, страница 1
Скупой платит дважды, тупой платит трижды. Лох платит всю жизнь. Законы Мерфи (еще...)

Стек - операнд

Cтраница 1


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

2 Шесть стадий конвейера в машине picoJava II. [2]

Если, например, стек операндов состоит из двух слов, то в регистровом файле может находиться до 62 слов локальных переменных. Естественно, при помещении еще одного слова в стек возникает проблема. Происходит так называемый дрибб-линг - это когда одно или несколько слов, находящихся глубо ко в стеке, записываются обратно в память. Точно так же, если несколько слов выталкиваются из стека операндов, в регистровом файле освобождается место, и поэтому некоторые слова, находящиеся глубоко в стеке, могут перезагружаться в регистровый файл. Специальные регистры на микросхеме определяют, насколько полным должен быть регистр, чтобы слова из нижней части стека записывались в память, и насколько пустым он может быть для того, чтобы перезагрузить регистровый файл из памяти. Чтобы легко произвести дрибблинг без копирования, регистровый файл действует как кольцевой буфер с указателями на самое нижнее и на самое верхнее слова. Дрибблинг происходит автоматически всякий раз, когда регистровый файл переполняется или пустеет.  [3]

Каждый объект контекст содержит стек операндов и память под локальные переменные. Выделение памяти для других запросов, например для динамических массивов языка Ада, происходит из блока свободной памяти. Часть этой памяти может автоматически возвращаться при исполнении соответствующего оператора RETURN. Объекты типа контекст распределяются операционной системой до начала исполнения процесса. По мере исполнения процесса указатель текущего объекта контекст передвигается вперед и назад по списку предварительно распределенных объектов контекста.  [4]

Часть данных объекта контекст содержит стек операндов, который используется во время активации текущей процедуры; SP служит указателем вершины стека или смещением. При входе в текущий контекст указателю стека SP присваивается начальное значение, равное смещению базы стека операндов. Это начальное значение SP создается компилятором и записывается в предназначенное для этого гнездо объекта команды, указываемого в команде CALL.  [5]

Иногда со стеками производят непосредственные манипуляции, особенно со стеком операндов.  [6]

В процедуре преобразования выражений из ОПЗ в триадную форму используется стек операндов.  [7]

Память содержит 4 основные области: фрейм локальных переменных, стек операндов, область процедур и набор констант. Напомним, что в реализациях Mic - д: машины IJVM на эти области указывают регистры LV, SP, PC и СРР. Доступы к памяти должны осуществляться только по смещению от одного из этих регистров; указатели и абсолютные адреса памяти не используются. Хотя JVM не требует наличия этих регистров, в большинстве реализаций такие регистры ( или подобные им) имеются.  [8]

Если рассматриваемый элемент является операндом, то занести его в вершину стека операндов.  [9]

Этот оператор заталкивает stringsize байт, заполненных нулями, в верхушку стека операндов.  [10]

Оставшаяся часть области данных объекта контекст делится между рабочей памятью и стеком операндов. Рабочая память обычно используется для запоминания текущих значений локальных переменных исполняющейся процедуры.  [11]

Когда встречается неисполняемый объект ( данные), например, число, строка или массив данных ( обозначаемый скобками, [ ]), объект выталкивается в стек операндов. Когда встречается оператор или другой исполняемый объект, он выполняется, и производится выталкивание входных данных ( если таковые присутствуют) из стека операндов. Из-за этого данные для исполняемого объекта расположены непосредственно перед ним. Точно также исполняемый объект обычно выталкивает свой результат в стек.  [12]

Если запись выражения исчерпана, то трансляция закончена. Стек операндов должен содержать только переменную г /, в противном случае нужно записать информацию об ошибке в таблицу ошибок.  [13]

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

15 Использование стека операндов для арифметических действий. [15]



Страницы:      1    2