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

  • Просмотров 3218
  • Скачиваний 400
  • Размер файла 20
    Кб

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

ассемблеры, ком- пиляторы и интерпретаторы. Транслятор, преобразующий программу, написанную на языке ассембле- ра, в машинный код, называется ассемблером. При написании программы на языке ассемблера программист использует мнемонические обозначения машин- ных команд и адресов (имена и метки). В процессе трансляции ассемблер заменяет все мнемонические обозначения (коды команд и имена) их двоичны- ми кодами. Для сокращения текста

при повторении идентичных частей прог- раммы в отдельные языки ассемблера введены средства написания и обработ- ки макрокоманд. Это позволяет программисту определить некоторую последо- вательность команд как макроопределение, которое обрабатывается макроас- семблером (макропроцессором). Последний представляет тексты макроопреде- лений с соответствующими фактическими параметрами макровызова вместо макрокоманд в

программе. Простейший ассемблер является однопроходным и преобразует исходную программу за один просмотр. Но при этом возникают трудности, связанные с вычислением адресов имен, которые определены позже. Этого можно избе- жать, потребовав, чтобы все имена данных были объявлены заранее, а неоп- ределенные адреса заносились в таблицу, в которую вводятся ссылки впе- ред. Эта таблица либо используется для модификации команды, либо

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