 
        
        - •Введение
- •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 бит.
