- •Державний заклад “Київський коледж зв’язку”
- •Передача параметрів за значенням
- •Передача параметрів по посиланню
- •Передача параметрів за значенням, що повертається
- •Передача параметрів по результату
- •Передача параметрів по імені
- •Передача параметрів відкладеним обчисленням
- •Передача параметрів у регістрах
- •Передача параметрів у глобальних змінних
- •Передача параметрів у стеку
- •Передача параметрів у потоку коду
- •Передача параметрів у блоку параметрів
- •Прилади та обладнання.
Державний заклад “Київський коледж зв’язку”
СХВАЛЕНО Затверджую
на засіданні циклової комісії Заступник директора
комп’ютерних систем та мереж з навчально - виробничої роботи
протокол № _____
від"____"_______________2008р. ______________ О.Ю. Коновалов
Голова_________ А.Ю.Лойкова "____"__________________2008р.
МЕТОДИЧНІ ВКАЗІВКИ
ПО ВИКОНАННЮ
ЛАБОРАТОРНОЇ РОБОТИ №16
З ПРЕДМЕТУ
„СИСТЕМНЕ ПРОГРАМУВАННЯ”
для студентів вищих навчальних закладів,
які навчаються за
освітньо-кваліфікаційним рівнем „бакалавр”
з напрямку 6.050102 – „Комп’ютерна інженерія ”
Розробив викладач
Довженко П.В.
_____________________________
"_____"_________________2008р.
Київ – 2008
Тема: Модульне програмування.
Мета завдання.
Поглибити знання про модульне програмування.
Прилади та обладнання.
ЕОМ типу IBM PC, система програмування Асемблер.
Теоретичні відомості.
Процедури й функції
Прийнято розділяти мови програмування на процедурні (С, Pascal, Fortran, BASIC) і непроцедурні (LISP, FORTH, PROLOG), де процедури — блоки коду програм, що мають одну точку входу й одну точку виходу й возвращающие керування на наступну команду після команди передачі керування процедурі. Асемблеру однаково легко можна використовувати як процедурну мову так і непроцедурну.
Передача параметрів
Процедури можуть одержувати або не одержувати параметри із визиваючої процедури й можуть повертати або не повертати результати (процедури, які що-небудь повертають, називаються функціями в мові Pascal, але асемблер не робить яких-небудь розходжень між ними).
Параметри можна передавати за допомогою одного із шести механізмів:
за значенням;
по посиланню;
по повертаючому значенню;
по результату;
по імені;
відкладеним обчисленням.
Параметри можна передавати в одному з п'яти місць:
у регістрах;
у глобальній змінній;
у стеку;
у потоку коду;
у блоку параметрів.
Так що всього в асемблері можливо 30 різних способів передачі параметрів для процедур.
Передача параметрів за значенням
Процедурі передається значення параметра. При цьому фактично значення параметра копіюється, і процедура використовує його копію, так що модифікація вихідного параметра виявляється неможливою. Цей механізм застосовується для передачі невеликих параметрів, таких як байти або слова.
Наприклад, якщо параметри передаються в регістрах:
mov ax,word ptr value ; зробити копію значення
call procedure ; викликати процедуру
Передача параметрів по посиланню
Процедурі передається не значення змінної, а її адреса, по якому процедура повинна сама прочитати значення параметра. Цей механізм зручний для передачі більших масивів даних і для тих випадків, коли процедура повинна модифікувати параметри, хоча він і повільніше через те, що процедура буде виконувати додаткові дії для одержання значень параметрів.
mov ax,offset value
call procedure