Идентификаторы.
Идентификатор это символическое обозначение объекта программы. В качестве идентификатора может быть использована любая последовательность букв и цифр. При этом в качестве буквы может быть использована любая буква латинского алфавита, а также вопросительный знак (?) и знак "нижнее подчеркивание" (_). Идентификатор может начинаться только с буквы. Это позволяет отличать его от числа. В идентификаторах, язык программирования ASM-51 различает буквы верхнего и нижнего регистров. Количество символов в идентификаторе ограничено длиной строки (255 символов). Транслятор различает идентификаторы по первым 31 символам.
Примеры идентификаторов: ADD5, FFFFH, ?, ALFA_1.
В языке программирования ASM-51 имеются три категории идентификаторов.
1. Ключевое слово является определяющей частью оператора языка ассемблера. Значения ключевых слов языка ассемблера АSМ-51 не могут быть изменены или переопределены в программном модуле каким-либо образом. Ключевому слову не может быть назначено имя- синоним. Ключевые слова могут быть написаны буквами как верхнего, так и нижнего регистров.
В языке АSМ-51 имеются следующие категории ключевых слов: инструкции, директивы, вспомогательные слова, операции.
Инструкции по форме записи совпадают с мнемоническими обозначениями команд микроконтроллеров семейства MCS-51 и совместно с операндами, составляют команды микроконтроллера.
Директивы совместно с вспомогательными словами определяют действия в программе, которые должны быть выполнены ассемблером в процессе преобразования исходного текста программы в объектный код. В языке программирования ASM51 используются:
Директивы:
BIT, BSEG, CODE, CSEG, DATA, DB, DBIT, DS, DSEG, DW, END, EQU, EXTRN, IDATA, ISEG, NAME, ORG, PUBLIC, RSEG, SEGMENT, SET, USING, XDATA, XSEG.
Вспомогательные слова:
AT, BIT, BITADDRESSABLE, CODE, DATA, IDATA, INBLOCK, INPAGE, NUMBER, PAGE, UNIT, XDATA.
Операции выполняются ассемблером в процессе вычисления выражений на этапе трансляции исходного текста программы для определения конкретного числа, которое используется в команде. Перечень операций, использующихся языком программирования ASM-51: AND, EQ, GE, GT, HIGH, LE, LOW, LT, MOD, NE, NOT, OR, SHL, SHR, XOR.
2. Встроенные имена (табл. 4.1) — присвоены адресам регистров специальных функций, адресам флагов специальных функций AR0-AR7, рабочим регистрам R0-R7 текущего банка регистров, а также аккумулятору A и флагу переноса C.
Встроенные имена языка ASM-51
Таблица 4.1.
Имя | Регистр |
A | аккумулятор |
R0-R7 | 8-разрядный рабочий регистр текущего банка рабочих регистров |
AR0-AR7 | адреса 8-разрядных рабочих регистров текущего банка рабочих регистров |
DPTR | 16-разрядный регистр-указатель данных |
PC | 16-разрядный счетчик команд |
С | флаг переноса |
AB | регистровая пара, состоящая из аккумулятора A (старшая часть) и регистра B (младшая часть) |
3. Определяемые имена - имена объявляются пользователем. В языке программирования ASM-51 имеются следующие категории определяемых идентификаторов:
метки, внутренние и внешние переменные адресного типа, внутренние и внешние переменные числового типа, имена сегментов, названия программных модулей.
Числа
В языке программирования ASM-51 используются целые беззнаковые числа, представленные в двоичной, восьмеричной, десятичной и шестнадцатеричной формах записи. Для определения основания системы счисления используется суффикс (буква, следующая за числом):
· B-двоичное число (разрешённые цифры 0,1);
· Q\O- восьмеричное число (разрешённые цифры 0, 1, 2, 3, 4, 5, 6, 7);
· D -десятичное число (разрешённые цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
· H-шестнадцатеричное число (разрешённые цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , A, B, C, D, E, F).
Для десятичного числа суффикс может отсутствовать. Количество символов в числе ограничено размером строки, однако значение числа определяется по модулю 216 (т.е. диапазон значений числа находится в пределах от 0 до 65535).
Число всегда начинается с цифры. Это необходимо для того, чтобы отличать шестнадцатеричное число от идентификатора.
Часто бывает удобно выполнить некоторые вычисления для того, чтобы получить число. Язык программирования ASM-51 позволяет выполнять беззнаковые операции над числами (табл. 4.2).
Операции языка ASM-51
Таблица 4.2.
Арифметические операции | |
+ | суммирование |
- | вычитание |
* | умножение |
/ | деление |
mod | вычисление остатка от целочисленного деления |
Логические операции | |
not | побитовая инверсия операнда |
and | логическое "и" |
or | логическое "или" |
xor | "исключающее или" (суммирование по модулю два) |
Операции преобразования данных | |
high | выделение старшего байта 16-разрядного числа |
low | выделение младшего байта 16-разрядного числа |
Рис. 4.4. Пример использования выражений для определения числовой константы:
В языке программирования ASМ-51 также определена одноместная операция '-'. Для нее требуется один операнд, которому она предшествует. Для изменения порядка выполнения операций можно воспользоваться скобками.
Часто число используется для представления символов. В этом случае для определения числа можно воспользоваться литеральной константой. Литеральная константа заключается в апострофы: mov SBUF, #’Б’.
Дата добавления: 2015-10-09; просмотров: 1195;