Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

Трансляция всех модификаций команд add и cmp

←предыдущая  следующая→
1 2 3 

Содержание

Введение

1. Анализ технического задания .................................

2. Разработка алгоритма ........................................

3. Разработка структуры данных .................................

4. Кодирование алгоритма .......................................

5. Тестирование и отладка программы ............................

Заключение .....................................................

Литература .....................................................

Приложение .....................................................

Министерство образования и науки Республики Беларусь

Белорусский Государственный Университет Информатики и Радиоэлектроники

______________________________________________________________________

Факультет Компьютерного Проектирования

Пояснительная записка

 к курсовому проекту по теме

"Трансляция команды CMP всех модификаций"

Выполнил

студент гр.410703

Коровинский С.В.

Руководитель работы

Ширинский В.П.

Минск, 1997

Введение

Для написания пользователем программ на различных языках программи-

рования необходимо иметь средства их перевода в машинный язык. Это вы-

полняют специальные программы-переводчики, которые называются транслято-

рами. Трансляторы для микроЭВМ преобразуют исходную программу на одном

из языков программирования в некоторую стандартную форму, называемую

объектной программой. Существует три вида трансляторов: ассемблеры, ком-

пиляторы и интерпретаторы.

Транслятор, преобразующий программу, написанную на языке ассембле-

ра, в машинный код, называется ассемблером. При написании программы на

языке ассемблера программист использует мнемонические обозначения машин-

ных команд и адресов (имена и метки). В процессе трансляции ассемблер

заменяет все мнемонические обозначения (коды команд и имена) их двоичны-

ми кодами. Для сокращения текста при повторении идентичных частей прог-

раммы в отдельные языки ассемблера введены средства написания и обработ-

ки макрокоманд. Это позволяет программисту определить некоторую последо-

вательность команд как макроопределение, которое обрабатывается макроас-

семблером (макропроцессором). Последний представляет тексты макроопреде-

лений с соответствующими фактическими параметрами макровызова вместо

макрокоманд в программе.

Простейший ассемблер является однопроходным и преобразует исходную

программу за один просмотр. Но при этом возникают трудности, связанные с

вычислением адресов имен, которые определены позже. Этого можно избе-

жать, потребовав, чтобы все имена данных были объявлены заранее, а неоп-

ределенные адреса заносились в таблицу, в которую вводятся ссылки впе-

ред. Эта таблица либо используется для модификации команды, либо загруз-

чиком, который может формировать данный адрес во время загрузки. Однако

это не всегда удобно, поэтому большинство ассемблеров выполняют в два

прохода.

Основная идея двухпроходного ассемблера проста. На первом проходе

все символы (имена, метки) собираются в таблицу символов с соответствую-

щими значениями адресов, на втором генерируется машинная программа на

основании построенной на первом проходе таблицы символов.

Если язык ассемблера включает средства макрорасширений, то макроп-

роцессор реализуется различными способами. Он может быть добавлен к ас-

семблеру как препроцессор для выполнения просмотра исходного текста пе-

ред первым проходом ассемблера. В результате препроцессирования полу-

чается программа на языке ассемблера, на содержащая макросов. При этом

тексты макроопределений, если они есть в исходной программе, сохраняют-

ся, а вместо макровызовов подставляются ассемблерные команды из макрооп-

ределений. Возможно также объединение макропроцессора с первым проходом

ассемблера, что сокращает время трансляции, но удлиняет текст ассемблера.

 1. Анализ технического задания

В данном курсовом проекте необходимо разработать программу на язы-

ке Ассемблер для МП Intel 8086 реализующую функции транслятора всех мо-

дификаций команды ADD. Программа должна правильно распознавать тип адре-

сации (например регистр-регистр, регистр-память, память-регистр), иметь

подпрограммы обработки ошибок трансляции, выводить информацию о процес-

се трансляции и ошибках на экран дисплея. Команды для трансляции должны

быть оформлены в виде текстового файла, находящегося в одном каталоге с

программой-транслятором. При анализе команд транслятором также должны

правильно обрабатываться:

- пустые строки

- строки с начальными и конечными пробелами

- строки-комментарии

- прописные и заглавные буквы

- ошибочные операторы

Результатом работы программы-транслятора должен быть выходной файл,

содержащий машинные коды оттранслированных команд. Входной и выходной

файлы должны задаваться в командной строке запуска программы-транслято-

ра в виде параметров.

Для разработки транслятора понадобятся некоторые сведения о струк-

туре команды ADD, обозначении регистров и способах адресации.

 Объектный код команды ADD имеет следующий вид:

000000 d w mod reg r/m

ДДДВДД В В ДВД ДВД ДВД

і і і і і АДДДД Указатель регистр/память (3 бита)

і і і і АДДДДДДДД Тип регистра (3 бита)

і і і АДДДДДДДДДДДД Тип адресации регистр/память (2 бита)

і і АДДДДДДДДДДДДДДД Размер регистра (0-байт, 1-слово)

і АДДДДДДДДДДДДДДДДД Бит направления передачи

АДДДДДДДДДДДДДДДДДДДДД Код операции

 Регистры микропроцессора Intel 8086 кодируются следующим образом:

ЪДДДДДДДДДДДДДДВДДДДДДДДДДДДВДДДДДДДДДДДї

і Код регистра і w=0 і w=1 і

ГДДДДДДДДДДДДДДЕДДДДДДДДДДДДЕДДДДДДДДДДДґ

і 000 і AL і AX і

і 001 і CL і CX і

і 010 і DL і DX і

і 011 і BL і BX і

і 100 і AH і SP і

і 101 і CH і BP і

і 110 і DH і SI і

і 111 і BH і DI і

АДДДДДДДДДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДЩ

←предыдущая  следующая→
1 2 3 


Copyright © 2005—2007 «RefStore.Ru»