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.


 

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

29934. Чрезвычайные ситуации техногенного характера. Общие понятия и определения. Классификация чрезвычайных ситуаций по масштабам их распространения и тяжести последствий 35 KB
  Правила ухода за кожей зубами и волосами: регулярно менять белье носки чулки колготки гольфы; У мыться ежедневно теплой водой с туалетным или детским мылом; если кожа чешется смазать ее кремом или мазью; не выдавливать прыщи не вскрывать гнойники так как на их месте может начаться воспаление; при обнаружении на теле сыпи сразу же сказать об этом родителям; употреблять в пищу больше свежих овощей и фруктов молока; в них достаточно витаминов и минеральных веществ необходимых для кожи; зимой защищать кожу от...
29935. Радиационно-опасные объекты. Аварии на радиационно-опасных объектах и их возможные последствия. Обеспечение радиационной безопасности населения 39 KB
  Это поражение может произойти следующими способами: внешнее облучение при прохождении радиоактивного облака; внешнее облучение обусловленное радиоактивным загрязнением почвы и местных предметов; внутреннее облучение при вдыхании воздуха зараженного радиоактивными веществами; внутреннее облучение при употреблении загрязненной воды пищи; контактное облучение в результате попадания на кожу и одежду радиоактивных веществ.
29936. Химически опасные объекты. Аварии на химически опасных объектах и их возможные последствия. Обеспечение безопасности населения 43 KB
  Аварии на химически опасных объектах и их возможные последствия. Обеспечение безопасности населения Ответ: Химически опасный объект это такой объект при аварии на котором или при разрушении которого могут произойти массовые поражения людей животных и растений опасными химическими веществами. Поэтому аварии на таких объектах очень опасны. Эти аварии классифицируются следующим образом: аварии с выбросом или угрозой выброса аварийно химически опасных веществ АХОВ при их производстве переработке в хранении; аварии на...
29937. Пожаро - и взрывоопасные объекты. Возможные последствия аварий на пожаро- и взрывоопасных объектах. Правила поведения при пожаре и угрозе взрыва 33 KB
  Возможные последствия аварий на пожаро и взрывоопасных объектах. Правила поведения при пожаре и угрозе взрыва Ответ: Пожаро и взрывоопасные объекты это предприятия на которых в производственном процессе применяют взрывчатые и легковоспламеняющиеся вещества а также железнодорожный и трубопроводный транспорт используемый для перевозки перекачки пожаро и взрывоопасных веществ. К таким объектам относятся предприятия химической газовой нефтеперерабатывающей целлюлознобумажной пищевой лакокрасочной промышленности производства...
29938. Гидротехнические сооружения, возможные аварии на них и их последствия 38.5 KB
  Защита населения от последствий гидродинамических аварий Ответ: Гидродинамически опасные объекты это сооружения и естественные образования создающие разницу уровней воды до и после них верхний бьеф и нижний бьеф. Этому способствует также скопление населения на ограниченных площадях при значительном ухудшении материальнобытовых условий жизни людей. Защита и безопасность населения при гидродинамических авариях обеспечивается организационными инженернотехническими и другими мероприятиями. Меры по защите населения при...
29939. Криминогенные ситуации, которые могут возникнуть в повседневной жизни. Общие правила личной безопасности в криминогенных ситуациях 36 KB
  Инфекции передаваемые половым путем меры по их профилактике Ответ: Вступление в половые отношения в подростковом возрасте чаще всего происходит по следующим обстоятельствам: алкогольное опьянение насилие скука материальная выгода желание привлечь к себе внимание партнера для самоутверждения как средство доказать свою взрослость. Как правило эти связи приводят к таким последствиям: ранняя беременность которая обычно заканчивается абортом со всеми вытекающими отсюда последствиями; воспалительные заболевания половых путей и...
29940. Действия населения по сигналу «Внимание всем!» 31.5 KB
  2 вопрос: Понятие о ВИЧинфекции и СПИДе. Способы передачи ВИЧинфекции и меры ее профилактики Ответ: В 1981 г. Вирус вызывающий болезнь получил название ВИЧ вирус иммунодефицита человека. Применяемые препараты только продлевают состояние ВИЧинфицированности не давая человеку заболеть СПИДом и погибнуть.
29941. Защита населения от чрезвычайных ситуаций. Комплекс мер, проводимых по защите населения. Организация оповещения и инженерной защиты населения 39.5 KB
  Комплекс мер проводимых по защите населения. Организация оповещения и инженерной защиты населения Ответ: Защита населения от чрезвычайных ситуаций комплекс мероприятий РСЧС взаимосвязанных по месту времени проведения целям ресурсам и направленных на устранение или снижение до приемлемого уровня на пострадавших территориях угрозы жизни и здоровью людей в случае реальной опасности возникновения или в условиях действия опасных и вредных факторов стихийных бедствий техногенных аварий и катастроф. Защита населения от чрезвычайных...
29942. Эвакуация населения из зон чрезвычайных ситуаций. Виды эвакуации 38 KB
  Получив распоряжение на эвакуацию граждане должны подготовить средства индивидуальной защиты личные вещи документы паспорт военный билет диплом об образовании трудовую книжку пенсионное удостоверение свидетельства о браке и рождении детей постельные принадлежности необходимые медикаменты запас продуктов питания на 23 суток. 2 вопрос: Средства индивидуальной защиты: противогаз респиратор ватномарлевая повязка. Их предназначение и использование Ответ: К средствам индивидуальной защиты органов дыхания относятся...