20609

Простой генератор кода

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Данные вычисленные результаты находятся в регистрах как можно дальше и перенос их в память осуществляется только при необходимости использовать этот регистр. a:= bc b в регистр Ri c в регистр Rj. 2 b в регистр Ri c в памяти ADD Ri с.

Русский

2013-07-31

37 KB

0 чел.

Лекция №10

Простой генератор кода

Генератор кода рассматривает последовательность трех адресных инструкций, учитывая какие из операндов находятся в текущий момент в регистрах.

Данные (вычисленные результаты) находятся в регистрах как можно дальше, и перенос их в память осуществляется только при необходимости использовать этот регистр.

a:= b+c

  1.  b в регистр Ri, c в регистр Rj.

ADD Ri, Rj.

Стоимость=1.

2) b в регистр Ri, c в памяти

ADD Ri, с.

Стоимость=2.

3) b в регистр Ri, c живая

MOV Rj, с

ADD Ri, Rj.

Стоимость=3.

Дескриптор регистров – отслеживает текущее содержимое каждого регистра. Когда для вычисления требуется новый регистр, происходит обращение к регистру.

Дескриптор адреса – отслеживает ячейки памяти, в которых хранятся значения имен.

Алгоритм генерации года

На вход алгоритма поступает последовательность трех адресных инструкций составляющих базовый блок.

Для каждой инструкции вида X:=Y op Z выполняется следующая последовательность действий:

  1.  вызывается функция getreg для определения места L где должен быть сохранен результат X, как правило, это регистр.
  2.  обращаемся к дескриптору адресов для определения текущего положения Y в памяти ().

Если значение Y есть и в памяти и в регистре, то в качестве выбирается регистр. Если Y не находится в L, то генерируем инструкцию

MOV L,Y/

  1.  генерируем инструкцию

op L, Z/ , где  Z/- текущее положение Z.

Аналогично определяем регистр.

Обновляем содержимое дескриптора адреса X  информацией о том, что X находится в L. Если L является регистром, то модифицируем еще и дескриптор регистра. Если X содержится в других регистрах, то очистить эти дескрипторы регистров.

  1.  если текущие значения Y и Z в дальнейшем не используется и не являются живыми при выходе из блока, то удаляем информацию о них из дескриптора регистров.

Алгоритм функции getreg

Функция getreg вызывается для имени переменной

  1.  если имя Y находится в регистре и если Y не является живым именем, то в качестве L возвращается регистр, в котором хранится Y.
  2.  если условие пункта 1 не выполняются, то в качестве L возвращается свободный регистр (если таковой имеется).
  3.  если не выполняется пункт 2, а X используется далее в блоке или операция требует использование регистра, тогда ищется занятый регистр R, генерируется операция MOV m, R. Регистр R выбирается, руководствуясь следующими принципами: значение, храняещееся в нем, будет использовано нескоро или оно уже хранится в памяти.
  4.  если X в блоке не используется, либо не удается найти походящий регистр,тогда в качестве L выбирается ячейка памяти.

Пример:

d:=(a-b) + (a-c) + (a-c)

t  | t1:=a-b   t1:=a-b

u | t2:=a-c   t2:=t1+t1

v | t3:=t2+t2  t3:=a-b

  | d:= t1+t3   u:=t3+t2

t:=a-b

u:=a-c

v:=t+u

d:=v+u

Инструкция

Сгенерированный код

Дескриптор регистров (регистры пусты)

Дескриптор адреса

t:= a-b

MOV R0, a

SUB R0, b

R0 – содержит t

t в R0

u:= a-c

MOV R1, a

SUB R1, c

R0 – содержит t

R1 – содержит u

t в R0

u в R1

v:= t+u

ADD R0, R1

R0 – содержит v

R1 – содержит u

v в R0

u в R1

d:= v+u

ADD R0, R1

MOV d, R0

R0 – содержит d

d в R0

Стоимость инструкций – 10.


 

А также другие работы, которые могут Вас заинтересовать

74442. Новизна метатеоретических юридических исследований 14.59 KB
  Исследование проводимое в целях получения новых знаний в сфере теории познания и методологии правовой науки понимается как метатеоретическое. Наиболее весомые результаты в разработке метатеоретических проблем правовой науки достигаются разработкой конкретных методологических правил обеспечивающих успешное применение в правовой науке конкретного специального или общего метода. Однако такие позитивные результаты в разработке проблем методологии правовой науки достигаются отнюдь не всегда. Другая распространенная форма новизны...
74443. Новизна прикладных правовых исследований: концепция проекта закона, иного нормативного правового акта, предложений по совершенствованию действующего законодательства 14.66 KB
  Новизна прикладных правовых исследований: концепция проекта закона иного нормативного правового акта предложений по совершенствованию действующего законодательства. Новизна прикладных правовых исследований определяется сферой их применения. Следует отметить что предложения по совершенствованию законодательства и практики его применения сформулированные ученымиюристами а также подготовленные ими проекты законов иных нормативных правовых актов не обладают новизной научного знания а представляют собой разновидность конструкторских...
74445. Критика правовой теории 44.5 KB
  Специфика критики как процедуры научного познания состоит в следующем. Например объектом правовой науки предстает социальноправовая практика тогда как объектом критики в об iи правовой науки выступает существующее наличное научное знание о праве которое сохранилось дошло до наших дней в письменных и иных источниках. Объектом критики могут стать положения какой либо правовой теории школы доктрины взгляды отдельного ученого положения конкретной монографии иного научного труда либо просто отдельные высказывания по какомулибо...
74447. Понимание метода правовой науки 49.5 KB
  Метод теории государства и права представляет собой особый компонент правовой науки и имеет собственное отличное от теории права содержание. Умение оперировать теоретическими знаниями категориями и понятиями теории государства и права закрепляется в правилах принципах составляющих непосредственное содержание различных общих и специальных методов. Примером такого рода правил могут служить принципы толкования права. Не представляет особого труда обнаружить обусловленность требований методов толкования права положениями общей теории права о...
74449. Объект правовой науки: понятие и состав 11.79 KB
  Объект правовой науки: понятие и состав. В философской и науковедческой литературе объект понимается как реально существующий мир или его часть исследуемые наукой для раскрытия ее предмета тогда как предмет это определенный аспект закономерности существующего мира познание которых составляет непосредственную цель науки. В объект правой науки в целом и ее отдельных отраслей входят государство право правоотношения правонарушения и др. Однако объект правовой науки не может быть ограничен только названными явлениями.
74450. Объяснение. Понятие и структура объяснения. Виды объяснений 12.36 KB
  Экспаланс объясняющий содержит научно обоснованные положения из которых с необходимостью и вероятностью следует заключение. Экспаланс имеет два вида посылок: большую посылку составляют теоретические законы принципы и иные общие положения правовой науки философии итд полученные индуктивным путем. меньшую посылку образуют положения свидетельствующие о наличии у исследуемого явления совокупности признаков связей характерных для действия закона принципа общей связи обозначенной в большей...