- •Введение
- •2 Описание архитектуры микроэвм
- •Ряд команд не имеют аргументов и состоят только из кода операции, например, останов, сброс и установка флагов.
- •Описание системы команд и режимов адресации
- •3 Описание языка мнемокода
- •3.2 Разделы ассемблера
- •3.2.1 Алфавит
- •3.3 Описание структур данных модуля
- •4 Алгоритм трансляции
- •5 Описание объектного кода
- •6 Описание программного продукта
- •Приложение а
- •А.4 Основные этапы разработки
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ИНСТИТУТ ИНФОРМАТИКИ И ИСКУССТВЕННОГО
ИНТЕЛЕКТА
Д080403.1.01.05/131.КП Кафедра ПОИС
КурсовОЙ ПРОЕКТ
по дисциплине: «Операционные системы»
Тема: «Разработка кросс - ассемблера для гипотетической микро-ЭВМ с заданной архитектурой»
Руководители:
________ ст.преп. Сорокин Р.А. (дата, подпись)
Разработала:
________ст.гр.СИИ-10б Северенчук А.А.
(дата, подпись)
Донецк, 2012
|
РЕФЕРАТ
Курсовой проект 36 с., 5 рисунков, 5 таблиц, 3 приложения.
Цель курсового проекта – изучить принципы работы синтаксического анализатора и транслятора, а также формирования объектного кода и листинга исходной программы, написанной на языке, разработанном для заданной гипотетической ЭВМ. При разработке курсового проекта был использован язык программирования С.
ГИПОТЕТИЧЕСКАЯ ЭВМ, МАКРОПРОЦЕССОР, КОМПИЛЯТОР, МНЕМОКОД, СИСТЕМА КОМАНД, КРОСС-АССЕМБЛЕР, РАЗМЕРНОСТЬ, РЕГИСТР, РЕЖИМ АДРЕСАЦИИ, ТРАНСЛЯТОР
|
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
Д080403.1.01.05/131.КП |
||||||||||||
|
|
|
|
|
|
|||||||||||||
|
|
|
Фамилия |
Подпись |
Дата |
|||||||||||||
|
Разработала |
А.А. Северенчук |
|
|
Пояснительная записка |
Литера |
Лист |
Листов |
||||||||||
|
Рук. Проекта |
Р.А. Сорокин |
|
|
|
у |
|
3 |
36 |
|||||||||
|
|
|
|
|
ДонНТУ, каф.ПОИС Группа СИИ-10б |
|||||||||||||
|
|
|
|
|
||||||||||||||
CОДЕРЖАНИЕ
Введение............................................................................................................ 1 Постановка задачи......................................................................................... 2 Описание архитектуры микроэвм ............................................................... 2.1 Структурно-логическая схема микропроцессора ................................... 2.2 Описание форматов команд ..................................................................... 2.3 Описание системы команд и режимов адресации .................................. 3 Описание языка ............................................................................................ 3.1 Общие сведения ......................................................................................... 3.2 Элементы ассемблера................................................................................ 3.2.1 Алфавит.................................................................................................... 3.2.2 Целые величины ..................................................................................... 3.2.3 Имена........................................................................................................ 3.2.4 Зарезервированные имена...................................................................... 3.2.5 Комментарии............................................................................................ 4 Описание программного продукта.............................................................. 4.1 Общие сведения ......................................................................................... 4.2 Формат объектного файла ........................................................................ 4.3 Описание основных структур данных...................................................... 4.4 Описание функционирования………………………………................... 4.5 Входные данные……................................................................................. 4.6 Выходные данные...................................................................................... 5 Пример программы на мнемокоде............................................................... 6 Результаты ручной трансляции примера.................................................... Заключение....................................................................................................... Перечень ссылок ............................................................................................. Приложение А Техническое задание............................................................. Приложение Б Руководство пользователя..................................................... Приложение В Листинг программы...............................................................
|
4 5 6 6 7 8 11 11 11 11 11 12 12 12 13 13 13 15 16 16 16 17 18 19 20 21 24 25 |
|
||||||||||||||||
Разработала |
Фамилия |
Подпись |
Дата |
З080404.1.01.06/009.КП
|
Лист |
|
||||||||||||
Ст.гр. СИИ-10б |
Северенчук А.А. |
|
|
4 |
|
|||||||||||||
|
|
|
|
|
|
Введение
С появлением электронно-вычислительных машин возникла необходимость в разработке для них соответствующего программного обеспечения. Поначалу его разработка велась в машинных кодах, которые ЭВМ на этапе загрузке интерпретировала как команды. Появление различных сред программирования было не только логичным, но и неизбежным. Ведь с их внедрением написание программ превратилось в творческий процесс. В настоящее время программист тратит свое время на решение задачи.
Распространение микрокомпьютеров послужило причиной пеpесмотра отношения к языку ассемблера по двум основным причинам. Во-первых, программы, написанные на языке ассемблера, требуют значительно меньше памяти и времени выполнения.
Во-вторых, знание языка ассемблера и результирующего машинного кода дает понимание архитектуры машины, что вряд ли обеспечивается при работе на языке высокого уровня. Хотя большинство специалистов в области программного обеспечения ведут разработки на языках высокого уровня, таких как Паскаль или С, что проще при написании программ, наиболее мощное и эффективное программное обеспечение полностью или частично написано на языке ассемблера.
Языки высокого уровня были разработаны для того, чтобы избежать специальной технической особенности конкретных компьютеров. Язык ассемблера, в свою очередь, разработан для конкретной специфики компьютера или точнее для специфики процессора.
В состав среды программирования входят такие составляющие элементы как компилятор, линковщик и загрузчик. Компилятор преобразовывает исходные программы в объектные файлы; линковщик объединяет их, если необходимо, и преобразовывает в исполняемый; загрузчик загружает полученный файл в память и выполняет содержащуюся в нем программу. Разработка микропроцессора, элементов, входящих в его состав и, в зависимости от этого, набора команд является очень сложным процессом, занимающим важное место в компьютерном мире. Для реализации программ этого микропроцессора необходимо разработать свой язык ассемблера, включающий в себя компилятор, линковщик и загрузчик.
1 постановка задачи
Цель данного курсового проекта состоит в изучении методов разработки компиляторов, а также разработке машинно-ориентированного языка для гипотетической ЭВМ и написании для него компилятора.
Необходимо реализовать следующую постановку задачи: для гипотетической ЭВМ с заданной архитектурой разработать и программно выполнить компилятор для машинно-ориентированного языка этой ЭВМ.
Структура, отображающая программно доступные регистры, информационные связи между ними и машинный язык программ, определяющий способы кодирования информации, форматы данных и команд, режимы адресации и систему команд, называется архитектурой ЭВМ.
Важнейшей характеристикой любого микропроцессора является разрядность его внутренних регистров, а также внешних шин адреса и данных. Разрабатываемый микропроцессор имеет 8-разрядную внутреннюю архитектуру и такой же разрядности шины адреса и данных. Таким образом, адресное пространство составляет 28 = 256 байт.
В состав процессора входят:
один 16-разрядный аккумулятор (Acc);
4-разрядный регистр флагов (содержит флаги переполнения, нуля, знака, переноса(O, Z, S, C, соответственно));
РОНов нет;
два 8-разрядных индексных регистра;
Максимальная длина команды составляет 16 бит.
Процессор поддерживает следующие режимы адресации:
прямую (адрес поступает с шины данных на регистр IR);
относительная (счетчик команд увеличивается на смещение, поступающее с регистра DAR);
прямая регистровая (в команде хранится номер регистра, в нем - операнд);
непосредственная (обрабатываемые данные являются частью команды);
базовая (адрес операнда вычисляется путем сложения смещения заданного в команде и базового регистра).
Размер байта равен 8 бит и основного слова равен 8 бит.