Скачиваний:
20
Добавлен:
01.05.2014
Размер:
1.7 Mб
Скачать

1.8.Описание макроассемблера mcs-96

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

Любая программа ассемблера состоит из трех частей:

- машинные команды;

- директивы ассемблера;

- средства управления ассемблером.

Машинная команда - машинный код, который может выполняться машиной. Каждая команда подробно объясняется в приложении “Система команд ассемблера MCS-96”.

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

Средства управления Ассемблером устанавливают режим работы ассемблера и управляют процессом трансляции.

1.8.1. Компоненты языка Ассемблера

Подобно любому языку, ассемблер состоит из словаря (совокупность элементов) и грамматики (набор правил, которые определяют каким образом элементы языка должны быть записаны, чтобы сгенерировать какое-либо действие)

1.8.1.1. Набор cимволов

ASM96 использует набор символов ASCII. Все символы ASCII допустимы, но некоторые из них имеют определенные специальные семантические значения для ассемблера.

Числа

Таблица 2.6

Число

Состоит из цифры

Пример

Двоичное

<0-1>B(b)

10101010B,111b

Восьмиричное

<0-7>O(o)

377O,456Q,23o,34q

Десятичное

<0-9>D(d)

100D,234d,678

Шестнадцатиричное

<0-9>,

<A-F>H(h)

0AAH,125h,4FEh

Длинные константы

Длинные константы (32 битные числа без знака) могут определяться директивой DCL.

Разделители

Разделители служат для того, чтобы отделять элементы операторов ASM96.

Табл. 2.7

Символ

Определение

Пробел

Может быть введен один или несколько пробелов Пробелы служат как разделители полей или разделители символов.

,

Запятые отделяют операнды.

Апостроф - служит для ограничения символьных строк.

( )

Круглые скобки разграничивают выражения.

[ ]

В квадратные скобки заключены базовые регистры в операндах команды. Признак косвенной адресации; в скобках содержится адрес регистра слова, содержащего исполняемый адрес.

< >

Угловые скобки включают макро параметры.

%

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

!

Знак восклицания используется как заменитель литеры в макрообработке.

&

Символ & используется чтобы отделить формальные параметры из смежного текста.

LF

Перевод строки(ASCII 0AH) - признак конца строки.

CR

Возврат каретки ( ASCII 0DH ).

HT

Горизонтальная табуляция - обрабатывается как пробел.

;

Точка с запятой разграничивает начало комментария.

#

Знак фунта определяет непосредственное значение при непосредственном способе адресации.

:

Двоеточие отделяет имя от оставшегося оператора.

Идентификаторы

Идентификаторы - определяемые пользователем имена, которые могут использоваться чтобы представить адреса памяти, константы, макрокоманды, и т.д.. Идентификатор может содержать до 31 символа. Первый символ должен быть буквой или специальным символом ( ? или _ ). Регистр символов (прописные или строчные) внутри идентификатора игнорируется ассемблером.

Зарезервированные слова

Зарезервированные слова - имена которые имеют специфическое значение в ассемблере и таким образом не доступны для определения пользователем. (Мнемоники команд, директивы ассемблера и макро-директивы, предопределенный идентификатор STACK).

Текущая ячейка внутри активного сегмента программы (указатель программного счетчика) указывается в операторе знаком доллара ($). Знак является адресом младшего байта (начала) команды, в которой он указан.

Строки

Строки - последовательность символов ASCII. Строка ограничивается начальным и конечным апострофами.

Примеры: 'STACK' - символьная строка S T A C K ,а не зарезервированное слово STACK, ‘FFH’ - символьная строка FFH а не шестнадцатеричное число FF, и ‘$’ - литерный знак доллара, а не счетчик команд.

Строки могут использоваться как операнды для директивы DCB и как операнды в выражениях. Когда строка используется как операнд в директиве DCB, длина строки может быть от 0 до 255. Когда строка используется как операнд в выражении, строка может содержать только один или два символа.

Выражения и базовые операнды

Базовые операнды - числа, идентификаторы, предопределенный символ ($) для счетчика команд, предопределенная переменная (STACK) для вершины стека, и строки из одного или двух символов.

Выражение состоит из чисел, идентификаторов, специальных знаков и соединяющих их знаков операций.

Например: 23, Data1, $; -25; 166/32.

Выражения используются для определения 16-битных констант.

Соседние файлы в папке Лабораторные работы по МПС