Числа
В языке программирования 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)
Для десятичного числа суффикс может отсутствовать. Количество символов в числе ограничено размером строки, однако значение числа определяется по модулю 2**16 (т.е. диапазон значений числа находится в пределах от 0 до 65535).
Примеры записи чисел:
011101b, 1011100B, 735Q, 456o, 256 , 0fah, 0CBH
Число всегда начинается с цифры. Это необходимо для того, чтобы отличать шестнадцатиричное число от идентификатора.
ADCH - идентификатор
0ADCH - число
Часто бывает удобно выполнить некоторые вычисления для того, чтобы получить число. Язык программирования ASM-51 позволяет выполнять беззнаковые операции над числами. В таких выражениях допустимо использовать арифметические операции:
- + суммирование
- - вычитание
- * умножение
- / деление
- mod вычисление остатка от целочисленного деления
- not побитовая инверсия операнда
- and логическое "и"
- or логическое "или"
- xor "исключающее или" (суммирование по модулю два)
и функций выделения старшего HIGH и младшего LOW байта шестнадцатиразрядного числа.
Пример использования выражений для определения числовой константы:
Часто число используется для представления символов. В этом случае для определения числа можно воспользоваться литеральной константой. Литеральная константа заключается в апострофы:
'a', 'W'
Для записи фраз в памяти программ можно воспользоваться литеральными строками:
В этом случае каждый символ заменяется отдельным байтом и запоминается в ПЗУ памяти программ.
[ ] [ ] [ ]