Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материалы_2_полуг_1.doc
Скачиваний:
4
Добавлен:
08.09.2019
Размер:
138.75 Кб
Скачать

5.2. Ассемблерный уровень

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

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

Транслятор – программа, преобразующая программу, написанную на одном языке программирования, в программу на другом языке или в машинные коды.

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

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

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

Языки Ассемблера по сравнению с чисто машинными языками обыч­но получают следующие дополнительные элементы:

• многократные метки (несколько меток для одной команды);

• ограниченные арифметические (адресные) выражения;

• прямая запись констант (непосредственные операнды);

• символическая адресация;

• сегментирование программы (области действия имен);

• определение и вставка заменяющих текстов (макросредства).

Для записи программы на языке Ассемблера используются следующие типы операторов: машинные команды, команды Ассемблера, команды генерации, макрокоманды, команды комментариев.

Операторы машинных команд представляют символическую форму записи обычных команд ЭВМ. Набор операторов этих команд определяется системой команд ЭВМ.

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

Команды определения предоставляют программисту различные способы определения констант и областей памяти, устанавливают идентичность символических имен, используемых для одних и тех же элементов программы.

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

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

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