
- •Программирование микроконтроллеров mcs-51
- •Учебное издание
- •Предисловие
- •1.1. Микроконтроллеры фирмы Intel
- •1.2. Микроконтроллеры фирмы Philips
- •1.3. Микроконтроллеры фирм Siemens, Atmel
- •2.1. Программная модель микроконтроллера 8051
- •2.2. Ассемблерный язык микроконтроллера 8051
- •2.2.1. Система команд языка асм51
- •2.2.2. Директивы языка асм51
- •Include операнды
- •3.1. Этапы проектирования ппо
- •3.2. Кросс-ассемблер x8051
- •Input Filename:
- •2500 A.D. 8051 Macro Assembler - Version 4.02a
- •Input Filename: prim.Asm
- •3.3. Кросс-редактор связей Link
- •Input Filename:
- •3.4. Примеры микроконтроллерных программ
- •Оглавление
- •Глава 1. Состав семейства mcs-51. . . . . . . 5
- •Глава 2. Особенности программирования
- •Глава 3. Технология разработки прикладного
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 |