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.


 

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

75682. Стилистическая оценка параллельных синтаксических конструкций 127.53 KB
  Редактор прочитал рукопись и написал рабочую рецензию. Редактор прочитав рукопись написал рабочую рецензию. Редактор прочитавший рукопись написал рабочую рецензию. Редактор закончил чтение рукописи и приступил к написанию рабочей рецензии.
75683. Стилистическая оценка заимствованных слов 118.35 KB
  Заимствования из древних языков греческого латинского тюркизмы галлицизмы слова из голландского немецкого английского полонизмы украинизмы и др. В средствах массовой информации полюбили слова популизм популист используя их однако совсем не так как это принято на Западе. Примеров такого толкования слова можно привести множество вот один из них: . Словари иностранных слов не успевают освоить новые заимствования поэтому читатель не владеющий английским нередко оказывается беспомощным встречая непонятные слова в газетах...
75684. Лексические образные средства 219.96 KB
  Понятие образности речи Слова образность образный используются в стилистике в разных значениях. Образность в широком смысле этого слова как живость наглядность красочность изображения неотъемлемый признак всякого вида искусства форма осознания действительности с позиций какого-то эстетического идеала образность речи частное ее проявление. Стилистика рассматривает образность речи как особую стилевую черту которая получает наиболее полное выражение в языке художественной литературы. Более узкое понимание образности речи основано...
75685. Фоника. Понятие фоники. Значение звуковой организации речи 365.48 KB
  Понятие фоники Фоника раздел стилистики изучающий звуковую сторону речи. В отличие от фонетики представляющей собой раздел языкознания который изучает способы образования и акустические свойства звуков того или иного языка фоника наука об искусстве звуковой организации речи. Под фоникой понимают также звуковую организацию речи т. При этом говорят о фонике того или иного произведения исследуя например фонику поэмы стихотворения анализируя эстетическую функцию различных фонетических средств прежде всегозвуков речи.
75686. СТИЛИСТИКА СЛОВООБРАЗОВАНИЯ 189.65 KB
  Русский язык отличается исключительным богатством словообразовательных ресурсов, обладающих яркой стилистической окраской. Это обусловлено развитой системой русского словообразования, продуктивностью оценочных суффиксов, придающих словам разнообразные экспрессивные оттенки
75687. Стилистика имени числительного 164.35 KB
  Однако этот графический способ обозначения числа количества здесь уже не является единственным: параллельно могут быть использованы и словесные обозначения чисел количества что открывает пути к функционально-стилевому применению числительных.
75688. Стилистика местоимения. Употребление местоимений в разных стилях речи 158.67 KB
  Употребление местоимений в разных стилях речи При функционально-стилевой характеристике местоимений прежде всего обращает на себя внимание их особая употребительность в разговорной речи. В разговорной речи употребление местоимений сопровождается различными приемами их актуализации; ср. плеонастическое употребление местоимений при указании на субъект действия: Дима он не подведет или конструкции типа: Так оно и было; Идет она прическа платье все у нее по моде. Использование местоимений в разговорном стиле отличает также свойственная...
75689. Стилистическое использование грамматических форм имен прилагательных 117.66 KB
  Однако при субстантивации прилагательных их грамматические формы преображаются. В числе их немало экспрессивных прилагательных по своей семантике тяготеющих к эмоциональной речи что позволяет вводить их в поэзию: Несказанное синее нежное. Употребление прилагательных в значении существительных добавляет к их лексическому наполнению предметность и образность а форма среднего рода придает оттенок отвлеченности нередко создающей впечатление чего-то неуловимого не вполне осознанного: И повеяло степным луговым цветным из журн.
75690. Естественные и антропогенные опасности 11.99 KB
  Естественные и антропогенные опасности Опасностью называют различные явления процессы объекты способные в определенных условиях наносить ущерб здоровью человека или иным его ценностям а также представляющие угрозу для жизни человека. Антропогенные опасности – возникают в результате воздействия человека на среду обитания своей деятельностью и продуктами деятельности техническими средствами выбросами различных продуктов и т.Чем выше преобразующая деятельность человека тем выше уровень и число антропогенных опасностей – вредных и...