Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Предложения языка Ассемблера

Читайте также:
  1. II. СЛОЖНОСОЧИНЕННЫЕ ПРЕДЛОЖЕНИЯ
  2. IV. ОФИЦИАЛЬНО-ДЕЛОВОЙ СТИЛЬ СОВРЕМЕННОГО РУССКОГО ЯЗЫКА.
  3. ВВОДНЫЙ КУРС НЕМЕЦКОГО ЯЗЫКА
  4. Взаимодействие спроса и предложения. Рыночное равновесие.
  5. Вопрос 3. Взаимосвязь спроса и предложения. Равновесная цена
  6. Вопрос №3. Синтаксис языка 1С
  7. Второстепенные члены предложения.
  8. Глава V ВНУТРЕННИЕ И ВНЕШНИЕ ЭЛЕМЕНТЫ ЯЗЫКА
  9. Долгий путь развития английского языка
  10. ЕСТЕСТВЕННОИСТОРИЧЕСКИЕ АНАЛОГИИ К ИСТОРИИ ЯЗЫКА

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

Во всех языках Ассемблеров каждое новое предложение языка на­чинается с новой строки. Каждое предложение, как правило, занимает одну строку, хотя обычно допускается продолжение на следующей стро­ке/строках. Формат записи предложений языка м.б. жесткий или свобод­ный. При записи в жестком формате составляющие предложения долж­ны располагаться в фиксированных позициях строки. (Например: метка должна располагаться в позициях 1-8, позиция 9 — пустая, позиции 10-12 — мнемоника команды, позиция 13 — пустая, начиная с позиции 14 — операнды, позиция 72 — признак продолжения). Обычно для записи программ при жестком формате создаются бланки. Жесткий формат удо­бен для обработки Ассемблером (удобен и для чтения).

Свободный формат допускает любое количество пробелов между составляющими предложения.

В общих случаях предложения языка Ассемблера состоят из следу­ющих компонент:

- метка или имя;

- мнемоника;

- операнды;

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

Метка или имя является необязательным компонентом. Не во всех языках Ассемблеров эти понятия различаются. Если они различают­ся (например, MASM), то метка — точка программы, на которую переда­ется управление, следовательно, метка стоит в предложении, содержа­щем команду; имя — имя переменной программы, ячейки памяти, следовательно, имя стоит в предложении, содержащем псевдокоманду резервирования памяти или определения константы. В некоторых случа­ях метка и имя могут отличаться даже синтаксически, так, в MASM/ TASM после метки ставится двоеточие, а после имени — нет.

Однако, физический смысл и метки, и имени — одинаков, это — адрес памяти. Во всех случаях, когда Ассемблер встречает в программе имя или метку, он заменяет ее на адрес той ячейки памяти, к которую имя/метка именует.

Правила формирования имен/меток совпадают с таковыми для языков программирования. В некоторых Ассемблерах (HLAM S/390) не делается различия между меткой и именем.

В языке должны предусматриваться некоторые специальные пра­вила, позволяющие Ассемблеру распознать и выделить метку/имя, например:

- метка/имя должна начинаться в 1-й позиции строки

- если метки/имени нет, то в 1-й позиции должен быть пробел, или за меткой/именем должно следовать двоеточие, и т.п.

Мнемоника— символическое обозначение команды/псевдокоманды.

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

Комментарии— любой текст, который игнорируется Ассемблером. Комментарии располагаются в конце предложения и отделяются от тек­ста предложения, обрабатываемого Ассемблером, каким-либо специаль­ным символом (в некоторых языках — пробелом). Всегда предусматри­вается возможность строк, содержащих только комментарий,обычно такие строки содержат специальный символ в 1-й позиции.

Константы —могут представлять непосредственные операнды или абсолютные адреса памяти. Применяются 10-е, 8-е, 16-е, 2-е, символьные константы.

Непосредственные операнды— записываются в сам код команды.

Имена— адреса ячеек памяти.

При трансляции Ассемблер преобразует имена в адреса. Способ преобразования имени в значение зависит от принятых способов адреса­ции. Как правило, в основным способом адресации в машинных языках является адресация относительная: адрес в команде задается в виде сме­щения относительно какого-то базового адреса, значение которого со­держится в некотором базовом регистре. В качестве базового могут при­меняться либо специальные регистры (DS, CS в Intel) или регистры общего назначения (S/390).

Литералы — записанные в особой форме константы. Концепту­ально литералы—те же имена. При появлении в программе литерала Ас­семблер выделяет ячейку памяти и записывает в нее заданную в литерале константу. Далее все появления этого литерала Ассемблер заменяет на обращения по адресу этой ячейки. Таким образом, литеральные кон­станты, хранятся в памяти в одном экземпляре, независимо от числа об­ращений к ним.

Специальный синтаксис— явное описание способа адресации (на­пример, указание базового регистра и смещения).


<== предыдущая страница | следующая страница ==>
Программирование на языке Ассемблера | Биты и байты

Дата добавления: 2014-03-11; просмотров: 440; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.