Ниже коротко описываются правила использования констант и выражений в программе, предназначенной для ассемблирования с помощью команды ASM.
Константы. Существует два основных типа констант, которые можно размещать в поле операнда. Это числовые и строковые константы, которые описаны ниже.
1. Числовые константы. Числовая константа представляет собой фиксированное число по одному из следующих четырех оснований:
а) Двоичному (основание 2). Двоичная числовая константа представляет собой последовательность цифр ”0” и ”1”, за которой должен следовать символ ”В”.
б) Восьмеричному (основание 8). Восьмеричная числовая константа представляет собой последовательности цифр, каждая из которых может быть от ”0” до ”7”. Последовательность также завершается символом ”0” или ”Q”.
в) Десятичному (основание 10). Десятичная числовая константа представляет собой последовательность цифр, каждая из которых может быть в интервале от ”0” до ”9”. Для ясности в конце последовательности можно дополнительно поставить символ ”D”. Это делать не обязательно, поскольку программа ’’ASM” любую числовую константу без символа основания счисления рассматривает как десятичное число.
г) Шестнадцатеричному (основание 16). Шестнадцатеричная числовая константа представляет собой последовательность цифр и символов (цифры — в интервале от ”0” до ”9” и символы от ”А” до ”F”). Константа этого типа должна начинаться с цифры (от ”0” до ”9”). Эта последовательность должна заканчиваться символом ”Н”, который можно не указывать, если первой цифрой в последовательности является ”0”, поскольку в каждом случае программа ’’ASM” автоматически рассматривает константу как шестнадцатеричное число.
2. Строковые константы. Строковая константа представляет собой последовательность символов, заключенную в апострофы. Константы этого типа должны быть длиной не более 64 символов и должны содержать только печатаемые символы (использование непечатаемых управляющих символов не допускается). Если данная строка должна включать в себя апостроф, то следует ввести последовательность из двух апострофов. Это необходимо сделать потому, что программа ’’ASM” проигнорирует первый апостроф, а второй рассмотрит как литерал. Отметим, что программа ’’ASM” не осуществляет преобразований символов нижнего регистра в символы верхнего регистра. Значение строковой константы программа ’’ASM” вычисляет путем добавления старшего нулевого бита семибитовому (ASCII) коду каждого символа. Выражения. Программа ’’ASM” допускает использование выражений в поле операнда. Выражение может быть составлено из констант, символических имен, арифметических операторов, логических операторов и скобок. В процессе ассемблирования программа ’’ASM” преобразует выражение и вычисляет его значение. Программа ’’ASM” выполняет эти операции над 16-битовыми числами без знака и выдает результат также в виде 16-битового числа без знака. Программа ’’ASM” поддерживает следующие арифметические и логические операторы:
1. Арифметические операторы. В процессе преобразования выражений программа ’’ASM” может выполнять простейшие арифметические действия. В сочетании с идентификаторами и константами в выражении могут быть использованы следующие операторы:
• Сложение (выражение ”А + В” эквивалентно арифметической сумме значений А и В).
• Вычитание (выражение ”А — В” обозначает вычитание значения В из значения А).
• Умножение (выражение ”А В” обозначает умножение значения А на значение В).
• Деление (выражение ”А/В” обозначает целочисленное деление значения А на значение В, а выражение ”А MOD В” обозначает остаток от деления значения А на В).
• Унарный плюс (выражение ”+ А” эквивалентно выражению ”А”).
• Унарный минус (выражение А” эквивалентно выражению ”0 — А”).
2. Логические операторы. Кроме того, программа ’’ASM” может выполнять логические (булевы) операции. В ней поддерживаются следующие логические операторы:
• NOT (выражение ’’NOT В” равно обратному значению или дополнению выражения ”В”).
• AND (значением выражения ”А AND В” является результат логической операции ”И” над значениями А и В).
• OR (значением выражения ”А OR В” является результат логической операции ’’ИЛИ” над значениями А и В).
• XOR (значением выражения ”А XOR В” является результат логической операции ’’Исключающее ИЛИ” над значениями А и В).
• SHL и SHR (результатом выражения ”А SHL В” является сдвиг значения А влево на число битов, установленное значением В. Сдвинутые старшие разряды теряются, а освободившиеся младшие разряды заполняются нулями. Выражение ”А SHRB” таким же образом обеспечивает сдвиг вправо.