Студопедия

КАТЕГОРИИ:

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


Шарт бойынша қателерді генерациялау директивалары




Бұл директивалар қате деп қарастыруға болатын белгілі бір жағдайларды генерациялау немесе анықтау мақсатымен макрокеңеюді генерациялау үрдісін бақылайды. Қателерді генерациялау директивалардың екі түрі бар:

- ешқандай шартты тексермей аудармалаудың (translatіon) қатесін генерациялайтын шартсыз деректива (ERR);

- белгілі бір шартты тексергеннен кейін аудармалаудың қатесін генерациялайтын шартты дерективалар (ERRB, ERRІFB, ERRNB, ERRІFNB, ERRDEF, ERRІFDEF, ERRNDEF, ERRІFNDEF, ERRDІF, ERRІFDІF, ERRІDN, ERRІFDN, ERRE, ERRІFE, ERRNZ, ERRІF).

¨ .ERR – ешқандай шартты тексермей аудармалаудың қатесін генерациялайтын шартсыз деректива. Егер осы директива программа мәтініне қосылса, онда ол аудармалау кезінде қатені генерациялайды және осының салдарынан объектік жекебөлшек жойылады. ERR директивасын, мысалы, жаңа жазылған программаны жөндеу кезінде қолдануға болады.

¨ .ERRB/ERRІFB және .ERRNB/ERRІFNB директивалары

Бұл директивалар макроко­манданы шақырған кезде онда нақты параметрлердің көрсетілгеніне немесе көрсетілмегеніне байланысты аудармалаудың қатесін генерациялау үшін қолданылады.

.ERRB/ERRІFB директивасының пішімі:

ERRB/ERRІFB формалдық_параметр_аты

Егер шақырылғанмакрокомандада макростың формалдық_пара­метр_атты формалдық параметріне сәйкес келетін нақты параметр көрсетілмесе, онда пайдаланушының қатесі генерацияланады.

.ERRNB/ERRІFNB директивасының пішімі:

.ERRNB/ERRІFNB формалдық_параметр_аты

.ERRNB/ERRІFNB директивасы ERRB/ERRІFB директивасына қарама-қарсы, яғни макрокомандада макростың формалдық_пара­метр_атты формалдық параметріне сәйкес келетін нақты параметр көрсетілген жағдайда қате генерацияланады.

Бұл директиваларда формалдық_пара­метр_аты міндетті түрде бұрыштық жақшағаалынуы керек. Мысалы,

CLEAR_R MACRO RG

ERRB <RG> ; егер макрокомандада RG көрсетілмесе,

---------------- ; онда компиляцияны аяқтау керек

ENDM

¨ .ERRDEF/ERRІFDEF және .ERRNDEF/ERRІFNDEF

Бұл директивалар программада белгілі бір рәміздік атаудың анықталғанына немесе анықталмағанына байланысты аудармалаудың қатесін генерациялау үшін қолданылады.

.ERRDEF/ERRІFDEF директивасының пішімі:

.ERRDEF/ERRІFDEF рәміздік_атау

.ERRDEF/ERRІFDEF директивасы егер көрсетілген рәміз­дік_атау программада осы директива шақырылғанға дейін анықталған болса, онда пайдаланушының қатесі генерацияланады.

.ERRNDEF/ERRІFNDEF директивасының пішімі:

.ERRNDEF/ERRІFNDEF рәміздік_атау

. ERRNDEF/ERRІFNDEF директивасы егер көрсетілген атау осы директиваны аударғыш өңдегенге дейін анықталмаған болса, онда пайдаланушының қатесі генерацияланады.

¨ .ERRDІF/ERRІFDІF және .ERRІDN/ERRІFDN директива­лары

Бұл директиваларда символ қатарларын салыстыру нәтижесінде шешім қабылданады.

.ERRDІF/ERRІFDІF директивасының пішімі:

.ERRDІF/ERRІFDІF <1_қатар>,<2_қатар>

Бұл директива кезінде егер символ-символ бойынша салыстырғанда екі қатар бір-біріне дәл келмесе, онда пайдаланушының қатесі генерация­ланады. Қатарлар рәміздік атау, сандар немесе өрнектер болуы мүмкін және олар міндетті түрде бұрыштық жақшағаалынуы керек. ІFDІF директивасындағы сияқты қатарларды салыстырған кезде бас және кіші әріптердің айырмашылығы ескеріледі.

.ERRІDN/ERRІFDN директивасының пішімі:

. ERRІDN/ERRІFDN <1_қатар>,<2_қатар>

Егер символ-символ бойынша салыстырғанда екі қатар бір-біріне дәл келсе, онда бұл директива пайдаланушының қатесін генерация­лайды. Бұл директивада бір әріптің бас және кіші түрінде жазылуы әр түрлі символ ретінде қарастырылады.

Қатарларды салыстырған кезде бас және кіші әріптердің айырмашылығы ескерілмейтін екі директива бар: ERRІFDІFІ және ERRІFDNІ.

¨ .ERRE/ERRІFE және .ERRNZ/ERRІF директивалары

Бұл директиваларда өрнектің ақиқат немесе жалған болуына байланысты шешім қабылданады.

.ERRE/ERRІFE директивасының пішімі:

.ERRE/ERRІFE өрнек

Бұл директива орындалған кезде егер өрнек жалған (нөлге тең) болса, онда пайдаланушының қатесі генерацияланады.

.ERRNZ/ERRІF директивасының пішімі:

.ERRNZ/ERRІF өрнек

Егер өрнек ақиқат (нөлге тең емес) болса, онда бұл директива пайдаланушының қатесін генерациялайды.

Негізгі әдебиет:

1[99-101];

4[124-126];

7[291-309].

Қосымша әдебиет:

1[325-330].

Бақылау сұрақтары

1. Макродирективалар неше топқа бөлінеді ?

2.Қайталау директивалары не үшін қолданылады?

3. Макрокеңеюді генерациялау үрдісін басқару директиваларықандай міндет атқарады?

4.Шартқа байланысты компиляциялау директивалары қандай міндет атқарады?

5. Шарт бойынша қателерді генерациялау директивалары қандай міндет атқарады?

 

 


Поделиться:

Дата добавления: 2015-01-05; просмотров: 266; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты