Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка елементів навчальної системи програмування

Реферат Розробка елементів навчальної системи програмування





ка відповідного значення псевдокоманди EQU для відповідної BASED-змінної.

. Оператори:

. 1. Оператор присвоювання кодується в 6ти-байтовую SS команду MVN, що має формат:


MVN D1 (L, B1), D2 (B2)


де:

· D1 і D2 - зсув щодо базової адреси, що міститься в регістрі загального призначення;

· B1, B2 - регістри РОН, що містять адресу даних;

· L - довжина операндів в байтах

Команда MVN спеціалізована під копіювання числа з однієї адреси пам'яті в інший. Ця SS-команда вимагає більше число тактів, ніж RX-команда, однак спрощує вихідний еквівалент програми і не вимагає додаткового втручання для правильного копіювання чисел.

. 2. Оператор ADDR кодується у дві 4ех-байтові RX команди: LA і ST, тому в Асемблері IBM 370 відсутня команда, яка б копіювала адреса змінної у відповідне місце пам'яті. Ці команди мають однаковий формат:


LA R1, D2 (X2, B2) R1, D2 (X2, B2)


де:

· R1- регістр РОН;

· D2 - зсув щодо базової адреси, що міститься в регістрі загального призначення;

· X2 -регістри РОН, використовуваний в якості індексу;

· B2 - регістр РОН, що містять адресу даних;

Команда LA завантажує адресу змінної, зазначеної в якості другого операнда в перший операнд - регістр. А команда ST заносить значення першого операнда - регістра в другій операнд - змінну. Таким чином спочатку зчитується адреса змінної з пам'яті в регістр, а потім це значення заноситься в змінну-покажчик.

. 3. Оператор присвоювання - =. Змінні, розташовані по праву сторону від оператора кодуються залежно від типу:

. 3.1. Для BASED-змінних кодування відбувається в два етапи: 1) Завантаження значення покажчика в регістр за допомогою вже наявної у вихідному макеті команди L; 2) Завантаження значення змінної, розташованої по отриманим адресою за допомогою тієї ж команди L.

. 3.2. Завантаження десяткових змінних відбувається за допомогою комманди L. Таким чином, якщо йде привласнення однією десяткової змінної інший, то спочатку йде завантаження другого десяткової змінної в регістр за допомогою комманди L, а потім відбувається копіювання пам'яті за допомогою комманди MVN, описаної раніше.

Модифікація бази даних вихідного макета

У таблицю продукцій (SINT) були додані розроблені синтаксичні правила для змінних і операторів. Розмір таблиці збільшився з 201 до 263 елементів. Матриця суміжності, при цьому, не модифікувалася.

Були введені додаткові типи в семантику мови:

· для змінних, що описують десяткові числа, був введений тип D

· для змінних, що описують покажчики - тип A

· для змінних типу BASED - тип V

Модифікація алгоритму вихідного макета

Функція декларування змінних - ODC1 була модифікована відповідно з новими типами змінних.

При попаданні арифметичним оператором на покажчик на другому проході у функції OPA2, перевіряється, чи є наступний за оператором присвоювання оператор ADDR, і, якщо так, то формується код комманд LA і ST.

Якщо ж за перед опреатора присвоєння варто десяткова змінна, то формується команда MVN, в якості другого операнда якій використовується регістр RRAB містить адресу змінної, який був завантажений в регістр при першому проході.

У функції AVI2 (на другому проході) при визначенні типу змінної - BASED, формуються дві асемблерні команди L: перший завантажує значення змінної-покажчика в регістр RRAB, друга завантажує значення десяткової змінної, розташованої за адресою, завантаженому попередньою командою L в регістр RRAB.

Якщо ж у функції AVI2 зустрічається десяткова змінна, то формується команда L, яка завантажує значення змінної в регістр RRAB.

В результаті, був розроблений компілятор ЯВУ, який має нижче перераховані приемущества і недоліки. Незважаючи на недоліки, нова функціональностть дозволяє виконувати поставлене завдання.

Плюси даної реалізації:

· Використання вбудованих функцій асемблера для роботи з числами і адресами;

· BASED-змінні мають уявлення у вихідному файлі, що дозволяє більш точно відновити вихідний код по вихідному еквіваленту;

· Не використовується пам'ять для BASED-змінних;

Мінуси даної реалізації:

· Тільки...


Назад | сторінка 3 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Контроль якості конденсаторів змінної ємності
  • Реферат на тему: Регістр арифметичного пристрою ЕОМ
  • Реферат на тему: Розробка стабілізатора змінної напруги
  • Реферат на тему: Кредитний регістр Національного банку Республіки Білорусь, його діяльність ...
  • Реферат на тему: Розробка блоку управління стабілізатора змінної напруги