Курс лекций - Микропроцессоры


Объявление переменных в языке программирования PLM-51 - часть 2


Это осуществляется при помощи уточняющих слов, следующих за определением типа переменной. 

  1. MAIN - переменная размещается во с
  2. IDATA - переменная размещается во с
  3. REGISTER - переменная размещается в области
  4. AUXILIARY - переменная размещается во
  5. CONSTANT - константа размещается в

Если уточняющее слово отсутствует, то по умолчанию переменные размещаются во внутренней памяти данных. В приведенном выше примере переменные были размещены во внутренней памяти данных. Приведём пример объявления переменной в области регистров специальных функций:

declare SBUF byte at (99h) register; /*рег. данных последовательного порта */

В этом примере была объявлена переменная, совпадающая с регистром данных последовательного порта. Поэтому при записи байта в эту переменную, записанное число будет передано через .

Суффикс CONSTANT описывает переменные в адресном пространстве памяти программ, где должно находиться ПЗУ. Содержимое такой переменной в отличие от других не изменяется в процессе выполнения всей программы. Идентификатор такой переменной никогда не должен находиться в левой части оператора присваивания. Инициализация данных производится добавлением значения константы к ключевому слову CONSTANT. Следующий оператор:

declare Porog byte constant (48);

объявляет байт Porog в памяти программ и присваивает ему значение 48. Оператор:

declare (Counter, Limit, Incr) word constant (1024, 0, -2)

объявляет скаляры Counter (счетчик англ), Limit (граница англ) и Incr (увеличение англ) типа WORD, указывает, что они находятся в ПЗУ, и устанавливает значение константы Counter равным 1024, значение константы Limit - 0, значение константы Incr равным (-2).

Достаточно мощное средство программирования предоставляет макроподстановка LITERALLY. Строка, следующая за ключевым словом LITERALLY подставляется на этапе трансляции.

Следующий пример иллюстрирует использование ключевого слова LITERALLY:

declare True literally '1',  False literally '0'; declare Rough bit; declare (x, y, Delta, Final) word; ...


- Начало -  - Назад -  - Вперед -