ПредишенСледващото

За механизма на процедури; На макро асемблер; За механизъм за прекъсване. В този урок ще разгледаме основите на механизъм процедури. Значението на този въпрос изисква да се вземе от него в своята цялост на една група (което ние ще направим в клас 14). Макро асемблер и прекъсване също ще се считат като отделни въпроси (в клас 13, 15 и 17).

Процедурата е често наричан подпрограма, - основна функционална единица на разлагане (разделяне на няколко части) на задача. Процедурата представлява група с команди за конкретен subproblem разтвори и има средство за получаване на контролния пункт се позове на по-високо ниво и връщане за контрол на тази точка. В най-простия случай, програмата може да се състои от една процедура. С други думи, процесът може да се определи като набор от инструкции, изпълнена така, че, след като се описва, ако е необходимо, да бъдат причинени на всяко място в програмата.

За описание на последователност от команди в процедура на асемблер използва две директиви: PROC и ENDP.

Синтаксис Описание Това е процедурата (фиг. 10.3).

procedure_name PROC [[modifikator_yazyka] език] ^ ARG Списъкът с аргументи] Списъкът на данъчни декларации по Аргумент] Списъкът на местните Аргумент] УПОТРЕБА spisok_registrov]

Фиг. 10.3. Описанията на синтаксиса в процедурата по програма

Фиг. 10.3 показва, че заглавието на процедура (директива PROC) е задължителна само за справочни името на процедурата. Сред големия брой директива операнди PROC трябва да се подчертае [дължина]. Този атрибут може да бъде близо и далеч, и характеризира възможността за прибягване до процедурата от друг код сегмент. атрибут по подразбиране [разстояние> е зададен в близост.

Процедурата може да се постави навсякъде в програмата, но така, че да случайно не се получи контрол. Ако процедурата само да ги поставите в една обща инструкция поток, микропроцесорът ще се процедури с команди, като част от този поток и, съответно, ще извършва команди процедура за изпълнение. С оглед на това, че има следните възможности за настаняване в процедурата по програма:

За началото на програмата (до първия изпълним команда); За края (след командата, която връща контрола на операционната система); На междинен вариант - той се намира вътре в тялото на процедурата или други процедури за основната програма. В този случай, трябва да предоставите на процедура за байпас с помощта на безусловна JMP клон инструкция; От друга модула. процедура по разположение в началото на код сегмент предполага, че последователността на команда, ограничена от директивите на PROC и ENDP, ще бъде публикуван на марката се посочва първия отбор, с който започва програмата. Този етикет трябва да бъде посочен като директива параметър END, отбелязвайки края на програмата:

модел-малки 1. стека IOOh .data .code

my_proc Proc край на задържане

my_proc старт endp:

модел малък
. стека 100h
.данни
.код
myproc Proc
4 I «задържане
my_proc endp
започнете Proc
• * | старт endp
endstart

В този фрагмент след като програмата е заредена в паметта, управлението се насочва към първия отбор лечение на име главен.

процедура по разположение в края на програмата показва, че последователността от команди, ограничен PROC и директиви ENDP, ще бъде поставен след командата, която връща контрола на операционната система.

модела малки .stack 100H .data. код старт:

Mov axt4cO0h вътр 21h; Връща операционната система schu__rgos Proc близо

myjproc endp endstart

Междинното версия на системата на процедура тяло предполага неговото поставяне в друга процедура или основната програма. В този случай, трябва да предоставите на процедура за байпас, тялото, ограничено от директивите и PROC EN0P, с команда безусловно скок JMP на:

модел smal1. стека IOOh .data .code започнете: аз> •

my_proc Proc близост • • »

INT 21h; контролът се връща endstart операционна система

Последният описанието място опция на процедурата - в отделен сегмент на код - показва, че обикновено се използват процедурите, се подават в отделен файл. Файл с процедурите, които да бъдат проектирани като обикновен файл източник и подложени на излъчване на кода за обект. Впоследствие, обект TLINK полезност файл, може да се комбинира с файл, който използва процедурата. Използването TLINK полезност е описано в клас 4. Този метод се приема, че текстът източник на програмата има някои от елементите, свързани с особеностите на прилагането на концепцията за модул на асемблер. Поради това, в своята цялост, този метод ще бъде обсъдено в клас 14.
Предишна 85 86 87 88 89 90 257 Следваща >>

Подкрепете проекта - споделете линка, благодаря!