АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Директиви мови АСМ51

Читайте также:
  1. Система команд мови АСМ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).


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)