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.


 

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

39149. Программное обеспечение вычислительной техники и автоматизированных систем 100.5 KB
  Техникум-интернат, как учреждение среднего профессионального образования получает право на общеобразовательную деятельность и льготы, представляемые законодательством Российской Федерации через лицензию, выданную Министерством социальной защиты населения Российской Федерации.
39150. РАЗРАБОТКА ПРОГРАММНОГО МОДУЛЯ «УЧЕТ СОЦИАЛЬНЫХ ДАННЫХ СТУДЕНТОВ» НА ПРИМЕРЕ ФКОУ СПО «КАЛАЧЕВСКИЙ ТЕХНИКУМ-ИНТЕРНАТ» 70.8 KB
  Цель данной работы – создание программного модуля учета социальных данных студентов для ФКОУ СПО «Калачевский техникум-интернат». Заказчиком данного программного модуля является социально-педагогическая служба техникума, которой требуется полный и точный контроль над социальными данными всех студентов техникума. Лучшее решение этой задачи – внедрение программного модуля, который автоматизирует данный процесс учета данных.
39152. Философия для аспирантов 1.73 MB
  Основное внимание уделено философскому анализу науки как специфической системы знания формы духовного производства и социального института. Рассмотрены общие закономерности развития науки ее генезис и история структура уровни и методология научного исследования актуальные проблемы философии науки роль науки в жизни человека и общества перспективы ее развития и ряд других проблем. Рассчитано прежде всего на аспирантов и соискателей готовящихся к экзаменам кандидатского минимума а также всех желающих составить собственное представление...
39153. КОНКУРЕНТОСПОСОБНОСТЬ ТОВАРА: АНАЛИЗ И УПРАВЛЕНИЕ 164 KB
  Целью данной работы и является 1) Определение и анализ тех факторов, за счет которых формируется конкурентоспособность товара, 2) Определить, что же это собственно такое – конкурентоспособность товара и 3) Каковы пути повышения конкурентоспособности товаров, выпускаемых предприятием.
39154. Оценка конкурентоспособности товаров и услуг на ООО «сервис-техника» 237.5 KB
  Самое главное в экономике любой страны – это малый бизнес. Во многих экономически развитых странах, по словам электронных СМИ, доля продукции, производимой малыми предприятиями в годовом ВВП, доходит до 60%. В этих странах на малых предприятиях работает минимум половина всего населения. Новые предприятия успешно создаются и функционируют, производят качественную и конкурентоспособную продукцию.
39155. Классификация компьютеров 496.94 KB
  Специалисты а таковыми являются в наш век все подростки старше десяти лет не преминут заметить что компьютер это не мозг по крайне мере пока уточнят особенно талантливые. Это простонапросто еще один инструмент еще одно устройство придуманное для того чтобы облегчить наш труд или усилить нашу власть над природой. Именно поэтому я и решил что моя будущая специальность будет связана с компьютерами: вопреки опасениям писателейфантастов человек не стал придатком машины а получил возможность лучше проявить свои...
39156. Ассортимент и контроль качества персональных компьютеров и их комплектующих в магазине Северного филиала компании R-Style в г.Нижневартовск Ханты-Мансийского АО 949.46 KB
  Процесс взаимодействия человека с ЭВМ насчитывает уже более 40лет. До недавнего времени в этом процессе могли участвовать только специалисты-инженеры, математики - программисты, операторы. В последние годы произошли кардинальные изменения в области вычислительной техники. Благодаря разработке и внедрению микропроцессоров в структуру ЭВМ появились малогабаритные