Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Компіляція-основні поняття.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
311 Кб
Скачать
☆

1.3.6. Генерація коду

Остання фаза компіляції полягає в генерації цільового коду, зазвичай переміщуваного (relосаtable) машинного коду або асемблерного коду. Для кожної змінної програми визначається її положення в пам'яті. Після цього кожна проміжна инструкція транслюється в послідовність машинних інструкцій, які виконують ту ж саму роботу. Ключовий аспект цієї фази полягає в призначенні змінних регістрам.

Наприклад, використовуючи регістри R1 і R2 при трансляції коду (1.4), отримаємо наступний код:

MOVF id3, R2

MULF #60.0, R2

MOVF id2, R1

ADDF R2, R1

MOVF R1, id1

Перший і другий операнди кожної інструкції визначають джерело і приймач. F говорить про те, що в інструкції використовуються числа з плаваючою крапкою. Цей код переміщує вміст адреси id3 в регістр R2, потім множить його на дійсну константу 60.0. Символ # означає, що 60.0 являє собою константу. Третя інструкція переносить значення id2 в регістр R1, а потім до нього додається обчислене раніше значення з регістра R2. І нарешті, значення з регістра R1 переноситься в комірку пам'яті з адресою id1. Тим самим код реалізує присвоєння, показане на рис. 1.8.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]