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

    Дисциплина: Программирование
    Тип работы: Курсовая
    Тема: Трансляция всех модификаций команд add и cmp

    Введение
    Для написания пользователем программ на различных языках программи-
    рования необходимо иметь средства их перевода в машинный язык.
    Это
    вы-
    полняют специальные программы-переводчики, которые называются транслято-
    рами.
    Трансляторы для микроЭВМ преобразуют исходную программу на
    одном
    из языков программирования в некоторую стандартную
    форму,
    называемую
    объектной программой. Существует три вида трансляторов: ассемблеры, ком-
    пиляторы и интерпретаторы.
    Транслятор, преобразующий программу,
    написанную на языке ассембле-
    ра, в машинный код,
    называется ассемблером.
    При написании программы на
    языке ассемблера программист использует мнемонические обозначения машин-
    ных команд и адресов (имена и метки).
    В процессе
    трансляции
    ассемблер
    заменяет все мнемонические обозначения (коды команд и имена) их двоичны-
    ми кодами.
    Для сокращения текста при повторении идентичных частей прог-
    раммы в отдельные языки ассемблера введены средства написания и обработ-
    ки макрокоманд. Это позволяет программисту определить некоторую последо-
    вательность команд как макроопределение, которое обрабатывается макроас-
    семблером (макропроцессором). Последний представляет тексты макроопреде-
    лений с соответствующими
    фактическими
    параметрами
    макровызова
    вместо
    макрокоманд в программе.
    Простейший ассемблер является однопроходным и преобразует
    исходную
    программу за один просмотр. Но при этом возникают трудности, связанные с
    вычислением адресов имен,
    которые определены позже.
    Этого можно
    избе-
    жать, потребовав, чтобы все имена данных были объявлены заранее, а неоп-
    ределенные адреса заносились в таблицу,
    в которую вводятся ссылки
    впе-
    ред. Эта таблица либо используется для модификации команды, либо загруз-
    чиком, который может формировать данный адрес во время загрузки.
    Однако
    это не всегда удобно,
    поэтому большинство ассемблеров выполняют
    два
    прохода.
    Основная идея двухпроходного ассемблера проста.
    На первом
    проходе
    все символы (имена, метки) собираются в таблицу символов с соответствую-
    щими значениями адресов,
    на втором генерируется машинная
    программа
    на
    основании построенной на первом проходе таблицы символов.
    Если язык ассемблера включает средства макрорасширений,
    то макроп-
    роцессор реализуется различными способами.
    Он может быть добавлен к ас-
    семблеру как препроцессор для выполнения просмотра исходного текста
    пе-
    ред первым проходом ассемблера.
    В результате
    препроцессирования
    полу-
    чается программа на языке ассемблера,
    на содержащая макросов.
    При этом
    тексты макроопределений, если они есть в исходной программе,
    сохраняют-
    ся, а вместо макровызовов подставляются ассемблерные команды из макрооп-
    ределений.
    Возможно также объединение макропроцессора с первым проходом
    ассемблера, что сокращает время трансляции, но удлиняет текст ассемблера.
    ;...

    Забрать файл

    Похожие материалы:


ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены