- •Дәрістік сабақ конспектілері Дәріс №1. Деректердің берілуі
- •1 Сурет. Адрестік кеңістікті тарату кестесі
- •3 Сурет. .Com программаларының жадыда орналасуы
- •Дәріс №3. Микропроцессордың пайдаланушы регистрлері
- •Жалпы міндетті регистрлер
- •Сегменттік регистрлер
- •Басқару және күйлер регистрлері
- •Күйлер белгісі
- •Жүйелік белгілер
- •Дәріс №4. Микропроцессордың жүйелік регистрлері
- •Жүйелік адрес регистрлері
- •Жөндеу регистрлері
- •Дәріс №5. Операндтарды адресациялау әдістері
- •Дәріс №7. І80х86 микропроцессор командалар жүйесіне шолу. Арифметикалық командалар Екілік сандарды қосу
- •Екілік сандарды азайту
- •Сандарды көбейту
- •Imul операнд
- •Екілік –ондық сандармен орындалатын арифметикалық операциялар
- •Жинақталған bcd-сандармен орындалатын арифметикалық операциялар Жинақталған bcd-сандарды қосу
- •Жинақталған bcd-сандарды азайту
- •Бүтінсан операцияларын орындау үшін қосымшы командалар
- •Типті ауыстыру командалары
- •Дәріс №8. Екілік разрядтармен жұмыс командалары
- •Көпмодулдік программаларды ұйымдастыру
- •Макродирективалар
- •While және rept директивалары
- •Irp директивасы
- •Irpc директивасы
- •Шартқа байланысты компиляция директивалары
- •Шартқа байланысты компиляция директиваларының жалпы синтаксисі келесі құрамдағы синтаксистік конструкцияда берілген:
- •Дәріс № 14. Wіndows операциялық жүйесінде программалау негіздері
- •Дәріс № 15. Консольды қолданба
Макродирективалар
Ассемблер тілінің макроқұралдарының көмегімен макроанықтағышқа кіретін жолдарды өзгертуге және жолдарды енгізу жиынын модификациялауға, сондай-ақ жолдардың орындалу тәртібінде өзгертуге болады. Бұлар макродиректива жиындарының көмегімен жасалады (макродиректива ары қарай директива деп қаралады). Оларды екі топқа бөлуге болады:
- WHILE, REPT, IRP және IRPC қайталау директивалары. Бұл топ директивалары макрос құру үшін қолданылады, олар бірінен соң бірі жол орналасқан тізбекті жолдардан тұрады. Бұл жолдардың кей жерлері модификациялануы мүмкін.
- EXITM және GOTO директивалары макрокеңейтуді генерациялау процесін басқару үшін қолданылады. Олар сәйкесінше макроанықтағыш жолдар жиынынан тұратын макрокеңейту процесін қалыптастыруды басқару үшін қолданылады. Бұл директивалардың көмегімен макрокеңейтулердегі кейбір жолдарды алып тастауға және генерация процесін тоқтатуға болады. EXITM және GOTO директивалары әдетте компиляцияның шартты директиваларымен бірге қолданылады, сондықтан оларды қарап кетейік.
While және rept директивалары
WHILE және REPT директивалары кейбір жолдар тізбегін анықталған бірнеше рет қайталауды орындау үшін қолданылады. Бұл директивалардың синтаксисисі келесі түрде беріледі:
WHILE тұрақты_өрнек
тізбекті_жолдар
ENDM
REPT тұрақты_өрнек
тізбекті_жолдар
ENDM
Келесі екі IRP және IRPC директивалары, бұл процесті ыңғайлы етеді, яғни әрбір итерация сайын кейбір тізбекті_жолдардағы элементтерді модификациялауға мұрсат береді.
Irp директивасы
IRP директивасының синтаксисі:
IRP формальды_аргумент, <жолдар_символы_1,...,жолдар_символы_N>
тізбекті_жолдар
ENDM
Бұл директиваның қызметі, тізбекті_жолдарды N рет қайталайды, яғни, IRP директивасының екінші операндында берілген үшбұрыш символдарына қанша жолдар_символы жазылса сонша рет қайталайды. Ал тізбекті_жолдарды қайталау формальды_аргументпен орындалатын екінші операндтағы жолдар символымен ауыстырылады. Сонымен бірінші генерация кезінде жолдар_символы_1 ауысады. Егер жолдар_символы_2 бар болса онда екінші генерация орындалады, яғни тізбекті_жолдардағы формальды_аргумент жолдар_символы_2 ауысады, осылайша жолдар_символы_N дейін қайталана береді.
Мысалы, прорграммадағы келесі конструкцияны анықтау нәтижесін қарайық:
irp ini,<1,2,3,4,5>
db ini
endm
Макрогенератормен келесі макрокеңейту генерацияланады:
db 1
db 2
db 3
db 4
db 5
Irpc директивасы
IRPC директивасының синтаксисі:
IRPC формальды_аргумент, жолдар_символы
тізбекті_жолдар
ENDM
Берілген директива IRP ұқсас, бірақ ол әрбір итерация кезінде формальды_аргументті кезектегі жолдар_символыда орналасқан символмен ауыстыратындығымен ерекшеленеді. Сәйкесінше тізбекті_жолдардағы қайталау жолдар_символындағы символдардың санымен анықталады. Мысалы:
irpc rg,
push rg&x
endm
Генерация процесі кезінде макрогенератормен келесі макрокеңейту генерацияланады :
push ax
push bx
push cx
push dx
Шартты компиляция директивалары
EXITM директивасы операндтары болмайды, бұл директиваның қызметі макроанықтағышта кездескен жерінен бастап макрокеңейту процесін тез арада тоқтату болып табылады.
GOTO таңба_аты директивасы макроанықтағыштағы генерация процесін басқа орынға ауыстырады.
