Генерация кода Преобразование дерева операций в код на языке ассемблера Ассемблер процессоров типа Intel 80x86 Code – функция перевода узла в команды ассемблера.

Презентация:



Advertisements
Похожие презентации
М.Ю. Харламов, ВНУ им. В.Даля, Генерация объектного кода это перевод компилятором внутреннего представ­ления исходной программы в цепочку символов.
Advertisements

Архитектура ЭВМ Практика 3. Линейные программы на языке ассемблера.
Организация циклов в Ассемблере. Цикл – это многократно повторяющаяся последовательность операторов.
Представление чисел в памяти компьютера. Язык машинных команд.
Адресация Адресация Уточним понятие "адресация". Адресация (по Э. Таненбауму) – процесс определения местоположения операндов команды МП (их адреса). Адрес.
y X Построение графика функции, по графику 0 0 X = - 5 x = 7.
Машинное кодирование Лекция 4 Логические операции:
С ИСТЕМА КОМАНД ЕОМ. С ТРУКТУРА ТА ФОРМАТИ КОМАНД.
Арифметическиеи логические команды языка Ассемблер. Битовые команды.
Регистры общего назначения – сумматор, регистр данных, адресный регистр и т.д. Арифметико- логическое устройство Устройство управления
Числа со знаком и дополнительный код Синтаксис FASM Для записи отрицательного числа в программе на ассемблере используется символ -, например: x db -5.
ОСНОВЫ ЛОГИКИ. ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ И ОСНОВНЫЕ ЛОГИЧЕСКИЕ УСТРОЙСТВА КОМПЬЮТЕРА Логический элемент Логический элемент это электронное устройство, реализующее.
Внутреннее представление компилятора Типы представлений и их особенности.
Машинное кодирование Лекция 3 Логические операции:
Трансляция операций с массивами в код для современных графических процессоров Сахарных Н.А., Адинец А.В. Научный руководитель Березин С.Б. Лаборатория.
1 Лекция 1 Система команд универсальных микропроцессоров Лектор: Люличева И.А.
Ф ОРМАТ КОМАНДЫ ПРОЦЕССОРА I NTEL С АРХИТЕКТУРОЙ IA-32.
CISC vs RISC Сложное против простого. Особенности CISC Множество команд для выполнения разнообразных операций Различное время на дешифрацию и выполнение.
Функциональное программирование Лекция 11. Содержание Анализ искусственных и естественных языков Метапрограммирование: Quotations 2.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Транксрипт:

Генерация кода Преобразование дерева операций в код на языке ассемблера Ассемблер процессоров типа Intel 80x86 Code – функция перевода узла в команды ассемблера act – команда одной из операций: add(+), sub(-), mul(*), div(/) 16-разрядные регистры процессора АХ (аккумулятор), DX (регистр данных)

Преобразование узлов дерева операций в код на языке ассемблера для арифметических операций Вид узла дерева Результирующий код op1 op2 mov ax, op1 act act ax, op2 op1 U2U2 act Code (U 2) mov dx, ax mov ax, op1 act ax, dx

Преобразование узлов дерева операций в код на языке ассемблера для арифметических операций Вид узла дерева Результирующий код U 2 op2 Code (U 2) act act ax, op2 U 2 U 3 act Code (U 2) push ax Code (U 3) mov dx, ax pop ax act ax, dx

Преобразование узлов дерева операций в код на языке ассемблера для операции присвоения Вид узла дерева Результирующий код op1 op2 mov ax, op2 := mov op1, ax op1 U 2 := Code (U 2) mov op1, ax

Пример Дано: дерево операций для выражения A:=B*C+D-B*10 Построить: последовательность команд языка ассемблера := A - +* * DB10 B C U 1 U 2 U 3 U 5 U 4

Построение: Шаг 1. Code (U2) mov A, ax Шаг 2. Code (U3) push ax Code (U5) mov dx, ax pop ax sub ax, dx mov A, ax Шаг 3. Code (U4) add ax, D push ax Code (U5) mov dx, ax pop ax sub ax, dx mov A, ax

Шаг 4. mov ax, B add ax, D push ax Code (U5) mov dx, ax pop ax sub ax, dx mov A, ax mul C Шаг 5. mov ax, B add ax, D push ax mov ax, B mov dx, ax pop ax sub ax, dx mov A, ax mul C mul 10 Построение (продолжение):