ОСНОВЫ ЯЗЫКА АССЕМБЛЕРА С51ASM
1. Операторы
2. Комментарии
3. Идентификаторы
3.1 Метки
3.2. Предопределенные идентификаторы
4. Константы
5. Выражения
6. Типы сегментов
7. Набор инструкций 8051
8. Директивы ассемблера
9. Управление ассемблером
10. Условное ассемблирование
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ
1. Задание и порядок выполнения работы
2. Задачи
3. Оформление отчета
ПРИЛОЖЕНИЕ
Сообщение об ошибках ассемблера C51ASM
4. Константы
C51ASM поддерживает числа в двоичном, восьмеричном, десятичном и шестнадцатеричном формате. Числовые константы состоят из последовательности цифр, за которыми следуют спецификатор системы счисления. Первый символ должен всегда быть десятичной цифрой. В качестве альтернативы для двоичных, восьмеричных и шестнадцатеричных чисел может использоваться префикс системы счисления цифр. Запись цифры и спецификатора системы счисления может быть в верхнем или нижнем регистре. Спецификаторы систем счисления приведены в табл. 4.
Табл. 4. Поддерживаемые форматы чисел
Таким образом, например, следующие константы эквивалентны:
1111111B двоичная
177Q восьмеричная
177o восьмеричная
127 десятичная
127d десятичная
07FH шестнадцатеричная
0b1111111 двоичная
0177 восьмеричная
0x7F шестнадцатеричная
Символьные константы могут использоваться везде, где допускается числовое значение. Символьная константа состоит из одного или двух символов, заключенных в одинарные кавычки (') или двойные кавычки (''). Сам символ одинарной кавычки может быть представлен двумя последовательными кавычками (''). Например:
'A' 8-битовая константа: 41H
"b?" 16-битовая константа: 623FH
'''' 8-битовая константа: 27H
В директиве DB символьные константы могут иметь любую длину для создания строк символов. Например:
DB 'This is sample text!'
Табл. 5. Управляющие символы символьной строки
Разница между строками, заключенных в одинарные и двойные кавычки в том, что двойные кавычки позволяют использование управляющих символов в стиле Cи с помощью обратной косой черты (\). Двойная кавычка сама может быть представлена, если ей предшествовал символ обратной косой черты (\"). Допустимые управляющие символы, перечислены в табл. 5. Управление восьмеричными и шестнадцатеричными кодами не поддерживается.
Завершение строки нулем может быть построено путем смешивания строковых и числовых данных или с помощью \0.
DB 'This is a null terminated string',0
DB "and so is this\0"
Значение программного счетчика может использоваться для автоматического вычисления длины строковой константы во время выполнения программы.
text: DB "Find the length of this string",0
textlen EQU $-text ; textlen = strlen(text)+1
5. Выражения
Арифметические выражения состоят из операндов, операторов и скобок. Операндами могут быть определяемые пользователем идентификаторы, константы или специальные ассемблерные идентификаторы. Все операнды рассматриваются как 16-разрядные числа без знака. Специальные ассемблерные идентификаторы, которые могут использоваться в качестве операндов, приведены в табл. 6.
Табл. 6. Специальные идентификаторы выражений
В табл. 7 представлены следующие операторы:
Табл. 7. Поддерживаемые операторы
Ключевые слова операторов, таких как SHR или AND, должны быть отделены от своих операндов, по крайней мере, одним пробелом или символом табуляции. Выражения вычисляются слева направо в соответствии с приоритетом операторов (табл. 8), которые могут быть переопределены скобками.
Табл. 8. Приоритеты операторов
Круглые скобки могут быть вложенными до любого уровня. Результат выражения всегда оценивается 16-разрядным целым числом без знака, а его переполнение игнорируется. Когда результат выражения должен иметь 8-битовую величину, старший байт должен быть 00 или FF. Для операторов отношений TRUE имеет значение FFFFH, а FALSE - значение 0.
Например, выражение (87+3)/10 OR SHR 0DH будет эквивалентно 0FH