Интернет магазин китайских планшетных компьютеров



Компьютеры - Язык ассемблера - Синтаксис

23 января 2011


Оглавление:
1. Язык ассемблера
2. Достоинства и недостатки
3. Применение
4. Синтаксис



Синтаксис языка ассемблера определяется системой команд конкретного процессора.

Набор команд

Типичными командами языка ассемблера являются:

  • Команды пересылки данных
  • Арифметические команды
  • Логические и побитовые операции
  • Команды управления ходом выполнения программы
  • Команды вызова прерываний: int, into
  • Команды ввода/вывода в порты
  • Для микроконтроллеров и микрокомпьютеров характерны также команды, выполняющие проверку и переход по условию, например:
  • cbne — перейти, если не равно
  • dbnz — декрементировать, и если результат ненулевой, то перейти
  • cfsneq — сравнить, и если не равно, пропустить следующую команду

Инструкции

Типичный формат записи команд:

 опкод  

где опкод — непосредственно мнемоника инструкции процессору. К ней могут быть добавлены префиксы.

В качестве операндов могут выступать константы, адреса регистров, адреса в оперативной памяти и пр. Различия между синтаксисом Intel и AT&T касаются в основном порядка перечисления операндов и указания различных методов адресации.

Используемые мнемоники обычно одинаковы для всех процессоров одной архитектуры или семейства архитектур. Они описываются в спецификации процессоров. Возможные исключения:

  • если ассемблер использует кроссплатформенный AT&T-синтаксис;
  • если изначально существовало два стандарта записи мнемоник.

Например, процессор Zilog Z80 наследовал систему команд Intel i8080, расширил её и поменял мнемоники на свой лад. Процессоры Motorola Fireball наследовали систему команд Z80, несколько её урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel и в данный момент половина ассемблеров для Fireball работает с мнемониками Intel, а половина — с мнемониками Zilog.

Директивы

Программа на языке ассемблера может содержать директивы: инструкции, не переводящиеся непосредственно в машинные команды, а управляющие работой компилятора. Набор и синтаксис их значительно разнятся и зависят не от аппаратной платформы, а от используемого транслятора. В качестве «джентельменского набора» директив можно выделить следующие:

  • определение данных,
  • управление организацией программы в памяти и параметрами выходного файла,
  • задание режима работы компилятора,
  • всевозможные абстракции — от оформления процедур и функций до условных конструкций и циклов,
  • макросы.

Пример программы

Примеры программы Hello, world! для разных платформ и разных диалектов:



Просмотров: 5630


<<< Стековый язык
Язык проектирования >>>