Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы»




НазваниеМетодические указания к курсовой работе по дисциплине «Системное программирование и операционные системы»
страница2/11
Дата публикации05.03.2013
Размер1.32 Mb.
ТипМетодические указания
uchebilka.ru > Математика > Методические указания
1   2   3   4   5   6   7   8   9   10   11
^

ТЕХНИЧЕСКОЕ ЗАДАНИЕ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ К КУРСОВЫМ РАБОТАМ


Тема 1. Двухпросмотровый ассемблер

Техническое задание.

Разработать двухпросмотровый ассемблер, реализующий ассемблирование программ, использующих основной набор инструкций микропроцесссора Intel 8086.
Методические указания.

Основные функции ассемблера.

Большинство ассемблеров выполняет два просмотра исходной программы. Основной задачей первого просмотра является поиск символических имен и назначение им адресов.

Основное назначение ассемблеров состоит в трансляции, т.е. переводе мнемонических кодов операций в их эквиваленты на машинном языке.

Пример mov ax, 4 B8 0004

int 1oh cd 10

push es 06

mov bl, 50 b3 32

Ассемблер наряду с трансляцией команд исходной программы должен также выполнять и также выполнять и так называемые директивы ассемблера. Эти директивы не переводятся непосредственно в машинные команды, а управляют работой самого ассемблера.

В заключительной фазе своей работы ассемблер должен записать полученный объектный код на некоторое устройство вывода. Позднее эта объектная программа будет загружена в оперативную память для исполнения.

Для представления учебной объектной программы иногда используется простой формат, в котором определены три типа записей: запись-заголовок, тело программы и запись-конец. Запись-заголовок содержит имя программы её начальный адрес и длину. Тело программы содержит машинные команды и данные программы с указанием адресов их загрузки. Запись-конец отмечает конец объектной программы и определяет адрес, с которого следует начать исполнение программы (точку входа). (если этот адрес не задан, то в качестве точки входа берется адрес первой исполняемой команды). В каждой записи первым полем является признак типа записи (Head- для записи заголовка, Code- для тела программы, End- для записи конца).

Сформулируем теперь функции каждого из двух просмотров.

^ Первый просмотр (определение имен):

  1. Назначение адресов для всех предложений исходной программы.

  2. Запоминание значений (адресов), присвоенных всем меткам, для последующего их использования на втором просмотре.

  3. Выполнение некоторых директив ассемблера.

Второй просмотр (трансляция команд и генерация объектного кода).

  1. Трансляция команд (перевод кодов операций и разрешение адресных ссылок).

  2. Генерация данных, заданных директивами byte, word и др.

  3. Выполнение тех директив ассемблера, которые не были обработаны на первом просмотре.

  4. Запись объектного кода и выдача листинга.


Таблицы и алгоритмы ассемблера.

Простой ассемблер использует две основные внутренние таблицы: таблицу кодов операций (ОРТАВ) и таблицу символических имен (SYMТAB).

ОРТАВ используется для поиска мнемонических кодов операций и перевода их в эквивалентные им представления на машинном языке.

SYMТAB используется для хранения значений (адресов), присвоенных символическим именам.

Ещё нам потребуется счетчик адреса (LOCCTR). LOCCTR - это переменная, которая используется для назначения адресов. Начальное значение LOCCTR определяется операндом директивы ORG. После обработки очередного предложения исходной программы длина полученной команды или области данных прибавляется к LOCCTR. Таким образом, если мы встречаем помеченное предложение исходной программы, то значение этой метки определяется текущим значением LOCCTR.

Таблица кодов операций должна, по крайней мере, содержать мнемонические коды операций и их машинные эквиваленты. В более сложных ассемблерах эта таблица, кроме того, содержит информацию о длине и формате каждой команды. Во время первого просмотра ОРТАВ используется для поиска и проверки корректности задания кодов операций в исходной программе. Во время второго просмотра она используется для перевода мнемонических кодов в их машинное представление. Обычно ОРТАВ организуется в виде хеш-таблицы, в которой в качестве ключа используется мнемонический код операции.

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

Таблица имен (SYMТAB) состоит из имен и значений (адресов) всех меток исходной программы вместе с признаками, указывающими на ошибку (например, дважды определенное имя). Эта таблица может также содержать информацию о типе, длине и других характеристиках помеченной области данных или команды. Во время первого просмотра все встретившиеся в исходной программе имена вместе с их адресами (они определяются по LOCCTR) сразу заносятся в SYMТAB. Во время второго просмотра имена, используемые в качестве операндов, ищутся в SYMТAB и соответствующие им адреса используются для генерации команд.

Для повышения эффективности поиска и внесения новых имен SYMТAB на протяжении всей работы ассемблера требует тщательного подбора хеш-функции. Очень часто программисты используют много похожих друг на друга имен, например LOOP1, LOOP2, … или имена, имеющие одинаковую длину (A, X, Y, Z). Важно, чтобы используемая хеш-функция обеспечивала хорошую работу с такими неслучайными именами. Часто хороший результат достигается путем деления входного ключа на простое число, равное длине таблицы.

Хотя в качестве входной информации на этапе второго просмотра можно использовать исходную программу, однако, должна быть, учтена и информация первого просмотра создается промежуточный файл, который содержит с его адресом, признаком ошибки и другой необходимой информацией. Промежуточный файл является входным второго просмотра. Рабочая копия исходной программы, содержащаяся в промежуточном файле, может быть использована для того, чтобы сохранить результаты некоторых операций, выполненных во время первого просмотра (например, операции сканирования поля операндов для определения имен и способов их адресации). Это дает возможность не выполнять их ещё раз при втором просмотре. Аналогично для кодов операций и имен могут быть сохранены указатели на таблицы ОРТАВ и SYMТAB, что позволит избежать повторных операций поиска.
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению курсовой работы «Гребные электрические...
Методические указания к выполнению курсовой работы «гребные электрические установки» по дисциплине «электрические системы и комплексы...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к курсовой работе по курсу "Разведка месторождений полезных ископаемых"
Методические указания к выполнению курсовой работы по дисциплине «Разведка месторождений полезных ископаемых» (для студентов очной...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к курсовой работе по дисциплине «Теория электрическихцепей»

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания и задания к лабораторным работам по курсу «Архитектура компьютеров (АК)»
Методические указания к лабораторным работам по курсу “Архитектура компьютеров предназначены для студентов специальностей «Системное...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» icon«Системное программирование и операционные системы»
Все цитаты, цифровой, фактический материал и библиографические сведенья проверены, запись единиц соответствует стандартам

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению курсовой работы по дисциплине «Вычислительный практикум»
Методические указания к выполнению курсовой работы по дисциплине «Вычислительный практикум» для студентов заочной формы обучения...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению курсовой работы по дисциплине «Основы маркетинга»
Бобрушева В. В. Методические указания к выполнению курсовой работы по дисциплине «Основы маркетинга» для студентов 2 курса дневной...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению лабораторных работ по дисциплине...
Компьютерная инженерия” (для студентов дневной и заочной формы обучения специальности 091501 “Компьютерные системы и сети”, 091502...

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению курсовой работы по дисциплине...
Методические указания к выполнению курсовой работы по дисциплине «Техническая термодинамика»/ Составители

Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» iconМетодические указания к выполнению контрольной работы (ргр) по дисциплине...
Методические указания к выполнению контрольной работы (ргр) по дисциплине «Объектно-ориентированное программирование» (для студентов...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<