logo
AOM / Мельник А

3.2.4.3. Команди звернення до підпрограм

Одним з найбільших покращань в розробці мов програмування є підпрограми. Під­програма є самостійною комп'ютерною програмою, яка, при необхідності, використову­ється іншою програмою. В якійсь точці програми підпрограма повинна бути виклика­ною та виконаною, після чого виконання програми має бути продовженим. Причиною використання підпрограм є економічна доцільність та потреба забезпечення поділу про­грами на незалежні модулі. Підпрограма дозволяє тій же частині коду бути використаною багаторазово. Це економить зусилля програміста та ємність пам'яті програм. Підпрограми також дозволяють розділити великі частини програми на малі блоки. Таке використання незалежних модулів суттєво спрощує написання та відлагодження програм.

Механізм підпрограм задіює дві базові команди: команду виклику, яка здійснює пе­рехід з попередньої комірки до підпрограми, та команду повернення, яка здійснює по­вернення від підпрограми до місця, з якого вона була викликана. Обидві команди на­лежать до команд переходу.

На рис. 3.9 показано як на основі підпрограм будувати програми.

95

На цьому прикладі основна програма починається з комірки за адресою 010. Ця про­грама включає звернення до підпрограми SUB1,яка починається з комірки за адресою 500. Коли виконується ця команда виклику, процесор призупиняє виконання основної програми і починає виконання підпрограми SUB1шляхом вибору наступної команди з комірки 500. Всередині підпрограми SUB1є два звернення до підпрограми SUB2,яка починається з комірки за адресою 800. В обох цих випадках призупиняється виконання підпрограми SUB1і виконується підпрограма SUB2.Команда Returnвказує процесору повернутись назад до програми SUB1та продовжити виконання команди, яка іде за від­повідною командою виклику Call.Ці звернення між основною програмою та підпрогра­мами показані на рис. 3.10.

В табл. 3.4 як приклад наведені команди передачі керування комп'ютера з спроще­ною системою команд DLX.

96

3

J,JR

Jumps; 26-розрядне зміщення до PC + 4 (J) або цільового регістра (JR)

4

JAL JALR

Jump and link; збереження РС+8 до R31, ціллю є 26-розрядне зміщення до PC+ 4 (JAL)чи регістр (JALR)