Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ для ЛПЗ, Архитектура ЭВМ методичка лаборатор...doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
9.7 Mб
Скачать

Основы программирования процессора

Программирование процессора происходит на языке программирования Ассемблер или на языках программирования высокого уровня. Ассемблер – это язык, с помощью которого понятным для человека образом пишутся команды процессора. На самом деле процессор понимает не команды Ассемблера, а последовательности из нулей и единиц. Преобразованием команд Ассемблера в команды процессора занимается компилятор. Программы, написанные на Ассемблере, не уступают в качестве и скорости программам, написанным на машинном языке, так как компилятор просто переводит мнемонические обозначения команд в последовательности байтов (нулей и единиц).

Компиляция

Процесс компиляции состоит из следующих этапов:

  1. Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем. Т.е. происходит процесс аналитического разбора входной последовательности символов языка программирования, которая имеет смысл для компилятора.

  2. Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.

Пример:

Для примера, исходный код следующей строки программы

net_worth_future = (assets - liabilities);

может быть преобразован следующим образом:

ИМЯ "net_worth_future"

РАВЕНСТВО

ОТКРЫВАЮЩАЯ_СКОБКА

ИМЯ "assets"

МИНУС

ИМЯ "liabilities"

ЗАКРЫВАЮЩАЯ_СКОБКА

ТОЧКА_С_ЗАПЯТОЙ

  1. Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) – например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки. При этом, любая последовательность символов входного потока, которая, согласно грамматике, не может быть идентифицирована, обычно рассматривается как ошибка.

  2. Оптимизация. Выполняется удаление излишних конструкций и упрощение кода с сохранением его смысла. Оптимизация может быть на разных уровнях и этапах – например, над промежуточным кодом или над конечным машинным кодом.

  3. Генерация кода. Из промежуточного представления порождается код на целевом языке. Этот этап заключается в генерации бинарного кода (двоичного кода) из кода на языке Ассемблера. В конце этого этапа генерируется файл с расширением.

Контрольные вопросы:

  1. Что такое команда? Что описывает команда?

  2. Что такое конвейерное выполнение команд?

  3. По каким признакам можно провести классификацию команд?

  4. Назовите основные группы команд.

  5. Как программируется процессор?

  6. Из каких этапов состоит процесс компиляции?

Литература:

  1. Архитектура компьютера. 4-е изд./ Э.Таненбаум. – СПб.: Питер, 2003.

  2. Кузин А.В., Пескова С.А. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: Форум: Инфра – М, 2006.

  3. Мураховский В.И. Устройство компьютера/ Под ред. С.В.Симоновича. – М.: АСТ-ПРЕСС КНИГА, 2004.