Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПМПУ / andr.doc
Скачиваний:
40
Добавлен:
20.04.2015
Размер:
710.14 Кб
Скачать

2.2.2. Директивы языка асм51

Директивы в отличие от команд ассемблерного языка не преобразуются в объектный код и применяются для управления процессом трансляции исходной МК-программы.

Рассмотрим основные директивы языка АСМ51.

ASCII операнды

Директива последовательно размещает в ячейках памяти программ (ПП) кодыASCII символов строки, указанной в полеоперандыи заканчивающейся возвратом каретки.

Пример

;MT1 соответствует адресу

;20FH в ПП

MT1 ASCII PEN

;в ПП (20FH)=50H,

;(210H)=45H, (211H)=4EH

DB операнды

Директива последовательно размещает в ячейках памяти программ (ПП) байтовые константы, перечисленные через запятую в полеоперанды. Если указанное поле отсутствует, то используется одна ячейка ПП, в которую заносится "0".

Пример

;MT1 соответствует адресу

;1FFH в ПП

MT1 DB 12H,<.NOT.11H+1

DB 10100101B,32

;в ПП (1FFH)=12H, ;(200H)=0EFH,

;(201H)=0A5H, (202H)=20H

DS операнды

Директива резервирует ячейки памяти программ (ПП), причем количество этих ячеек определяется значением, указанным в полеоперанды.

Пример

;MT2 соответствует адресу

;200H в ПП

MT2 DS 12H ;(PC)=212H

DW операнды

Директива последовательно размещает в ячейках памяти программ (ПП)2-байтовые константы, перечисленные через запятую в полеоперанды. Если указанное поле отсутствует, то используются две ячейки ПП, в которые заносится "0".

Пример

;MT1=20FH

MT1 DW 3212H

DW

;в ПП (20FH)=32H,

;(210H)=12H,

;(211H)=(212H)=00H

END

Директива определяет конец МК-программы.

ENDM

Директива определяет конец макроопределения.

метка EQU операнды

Директива присваивает символическому имени, размещенному в поле метка, байтовое или 2-байтовое значение, указанное в полеоперанды. Это имя не может быть переопределено.

Пример

SS EQU 25H

ZZ EQU SS+2

PP EQU ZZ-1

MOV A,#PP ;(A)=26H

EXTERN операнды

Директива объявляет символические имена, указанные через запятую в поле операнды, как внешние, то есть определяемые в другой (других) МК-программе (МК-программах).

Include операнды

Директива включает в трансляцию файл, имя которого вместе с расширением указаны в поле операнды. Включения не могут подвергаться вложению.

LIST

Директива разрешает вывод листинга следующего за ней текста МК-программы. По умолчанию выполняется директива NLIST.

LONG операнды

Директива последовательно размещает в ячейках памяти программ (ПП)4-байтовые константы, перечисленные через запятую в полеоперанды. Если указанное поле отсутствует, то используются четыре ячейки ПП, в которые заносится "0".

Пример

;MT1 соответствует адресу

;4EEH в ПП

MT1 LONG 11223344H

;в ПП (4EEH)=11H,

;(4EFH)=22H, (4F0H)=33H,

;(4F1H)=44H

метка MACRO операнды

Директива начинает макроопределение, которое составляется из операторов языка АСМ51(строк исходного текста МК-программы) и должно заканчиваться директивойENDM. Любое поле включенных в макроопределение операторов (кроме полякомментарий) может быть представлено формальным параметром, которые перечисляются через запятую в полеоперанды. В полеметкауказывается символическое имя макрокоманды, которая будет определяться данным макроопределением. Макрокоманда может использоваться в МК-программе произвольное число раз и при трансляции заменяется на тело своего макроопределения, причем фактические параметры, перечисленные через запятую в полеоперандымакрокоманды подставляются вместо соответствующих формальных параметров макроопределения.

До трансляции

После трансляции

TC MACRO x,y,z

MOV A,#z

x A,#y

ENDM

MOV R0,#25

TC ORL,15H,10

MOVX @R0,A

END

1 TC MACRO x,y,z

2 MOV A,#z

3 x A,#y

4 ENDM

5 0000 7819 MOV R0,#25

6 0002 TC ORL,15H,10

7 0002 740A MOV A,#10

8 0004 4415 ORL A,#15H

9 0006 ENDM

10 0006 F2 MOVX @R0,A

11 0007 END

NLIST

Директива запрещает вывод листинга следующего за ней текста МК-программы, если ранее выполнялась директива LIST.

ORG операнды

Директива устанавливает значение программного счетчика PC, причем указанное значение определяется содержимым поляоперанды. При отсутствии директивы исходное значениеPCпринимается равным нулю.

Пример

;(PC)=1234H

ORG 12H

;(PC)=0012H

PUBLIC операнды

Директива объявляет символические имена, указанные через запятую в поле операнды, как глобальные (общие), то есть такие, к которым можно осуществлять ссылку из других МК-программ.

метка REG операнды

Директива присваивает символическому имени, размещенному в поле метка, байтовое или битовое значение, указанное в полеоперанды, причем указанное значение может быть задано не только числом, другим символическим именем или выражением, но и именем программно доступного элемента микроконтроллера. Символическое имя, размещенное в полеметка, не может быть переопределено.

Пример

X REG R4 ;X определя-

;ется как регистр R4

Y REG P3 ;Y определя-

;ется как порт P3

Z REG Y ;Z определяет-

;ся как порт P3

B.0 REG C ;B.0 определя-

;ется как флаг C

B.1 REG X.1 ;B.1 опреде-

;ляется как первый бит

;регистра R4

RECSIZE операнды

Директива используется для управления редактором связей. В частности, от содержимого поля операндыэтой директивы зависит максимальный размер записей в загрузочном модуле МК-программы (см. подраздел 3.3).

SYMBOLS

Директива используется для управления редактором связей. В частности, разрешает формирование специального файла, содержащего символические имена, в формате MICROTEK илиZAK (см. подраздел 3.3).

метка VAR операнды

Директива присваивает символическому имени, размещенному в поле метка, байтовое или 2-байтовое значение, указанное в полеоперанды. Это имя может быть переопределено.

Пример

SS VAR 25H

MOV A,#SS ;(A)=25H

SS VAR 13H

MOV A,#SS ;(A)=13H

Список литературы

1. Однокристальные микроЭВМ. М.: МИКАП, 1994.

2. Сташин В.В. и др. Проектирование цифровых устройств на однокристальных микроконтроллерах/ В.В.Сташин, А.В.Урусов, О.Ф.Мологонцева. М.: Энергоатомиздат, 1990.

3. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы. М.: Радио и связь, 1989.

4. ОСТ 110342.2-87. Язык ассемблера АСМ51. М., 1987.

Глава 3.

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИКЛАДНОГО

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

МИКРОКОНТРОЛЛЕРОВ MCS-51