Макростар


POP ; ; стек 🡺 R POP bx
ENDM
11. 3 Макростар
Қайталау блогі көмегімен кейіннен макрогенератормен бірнеше рет көшірілетін бағдарламаның қандай да фрагменті бір рет сипатталады. Бірақта қайталау блоктарын тек егер бұл көшірмелер бір-біріне қатар орналасқанда ғана қолдануға болады. Ал егер бағдарлама фрагменті бағдарламаның әртүрлі жерінде, қайталану керек болса не істеу керек? Бұл жағдайда макростар қолданылады: бұл бағдарлама фрагменті әдейі сипатталып оған есім беріледі және бағдарламаның керек жерлерінде осы макросқа (оның есімі көрсетіледі) сілтеме жазады, ал макрогенератор бағдарлама тексін қарағанда және осындай сілтеме кездестіргенде оның орнына қорытынды бағдарламаға - бағдарламаның сәйкес фрагмент макростың өзін қояды және бағдарламаның қай жерінде кездессе де әрбір макросқа сілтеме жасалады.
Макростарды қолданғанда келесі терминология қолданылады. Макростың сипаттамасы - макроанықтауыш, макросқа сілтеме макрокоманда макрокоманданы макросқа ауыстырғанда процесін - макроқою, ал мұндай қоюдың нәтижесін - макроұлғаю деп атайды.
11. 3. 1 Макроанықтаулар
Макростың сипатталауы, яғни макроанықтаулар келесі түрге ие:
<макрос есімі> MACRO<үтір арқылы формальді параметр> <макрос денесі>
ENDM
Екі нақты мысал:
SUM MACRO X, Y ; X:=X+4 VAR MACRO NM, TP, VL
MOV AX, 4 NM D & TP VL
ADD X, AX ENDM
ENDM
Макроанықтаудың бірінші жолы - ол макрос атауы деп аталатын MACRO директивасы. Онда біріншіден, үтір арқылы макростың формальды параметрлері келтіріледі. Параметрлерде қажеттілік макрос жалпы жағдайда өзгертілмеген түрде емес, ал кейбір модификациялармен көшірілуі керек; ал параметрлер осы модификацияларға ықпал жасайтын шамаларды білдіреді. Формальды параметрлерге кез-келген есім беруге болады, бұл есімдер макрос денесінде жергіліктенеді егер параметрдің есімі бағдарламаның басқа объект есімімен сәйкес келсе, онда макроанықтау ішінде бұл есім объекті емес параметрді білдіреді.
Макрос денесі ол содан кейін бірнеше рет көшірілетін бағдарлама фрагменті. Дене макростың формальды параметрлерін қолдануға болатын кез-келген сөйлем соңынан тұра алады қайталау болктарында сияқты формальды параметрлер дене сөйлемдерінің кез-келген бөлігін білдіре алады. Сонымен қатар, егер параметрлердің жанында есім не сан көрсету керек болса, немесе егер параметрлерді жолдың ішінде көрсету керек болса, онда & макрооператорын қолдану керек. (қар D&TP VAR макросында) . Макрос денесінде екі үтірлі нүктеден бастап түсіндірмелерді қолдануға болады.
Макроанықтауды ENDM (end of macro) директивасы аяқтайды. Бұл директивада макрос есімін қайталап керегі жоқтығына ерекше көңіл аударыңыз (егер мұнда макрос есімін көрсетсек, онда бұл сөйлем макростың рекурсивті шақырылуы ретінде қарастырылады) . Тағыда дәл осы директива қайталау блоктарының соңында көрсетілетінін айтып кетейік (&A-да бұл блоктар макростарды спецификациялық жайғдайы ретінде қарастырады) .
Макроанықтауларды қайда орналастыру керек? Олар бағдарлама тексінің кез-келген жерінде орналасуы мүмкін (ол бойынша машиналық бағдарламаларға ештеңе жазылмайды), бірақ міндетті түрде осы макросқа бірінші сілтемеге дейін орналасуы тиіс. Осылайша, &A-да алдымен макросты сипатта ал кейін ал кейін оған жолдан деген ереже бар.
11. 3. 2 Макрокомандалар
макрогенератордың біз қалаған бағдарлама жерінде макростарды қою үшін келесі түрде жазылатын макрокоманда түрінде макросқа жолдау жазу керек:
<макрос есімі><үтір немесе бос арқылы нақты параметрлер>
нақты мысалдар:
SUM A, ES:B немесе SUM A ES:B
VAR Z, W, ? немесе VAR Z W, ?
Көрініп түрғандай макрокомандалар жәй командалар мен директиваларға өте ұқсас. Бірақ айырмашылықтар бар. Біріншіден, қызмет көзі болып табылатын команда не директива атауының орнына макрокомандада бағдарлама авторы өзі ойлап шығарған макрос есімі көрсетіледі. Екіншіден, макрокомандада параметрлер бір бірінен үтірмен ді, бос орынмен де бөліне алады.
Нақты параметр ретінде кез-келген текст көрсетілуі мүмкін (сонымен қатар бос), бірақ ол тырнақшалармен және бұрыштық жақшалармен балансталған және осы тырнақша мен жақшалар сыртында оның ішінде үтірлер, бос орындар және осы тырнақша мен жақша сыртында оның ішінде үтірлер. Бос орындар және үтірлі нүктелер болмауы тиіс. Үтір және бос орынмен бір параметр екіншісінен бөлінгендіктен, ал үтірлі нүктеден түсіндірме басталғандықтан, олардың нақты параметрлер ішінде қолдануы шатасуға әкелер еді.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz