37012

Команди виклику підпрограм і повернення з підпрограм

Лабораторная работа

Информатика, кибернетика и программирование

Коли здійснюється звернення до підпрограми то на початку виконання вона реалізує запамятовування поточного значення лічильника команд точка повернення. Коли виконання підпрограми закінчується то за допомогою команди повернення мікропроцесору вказується що початкове значення лічильника команд потрібно взяти з памяті. Для запамятовування точки повернення використовується стек куди записується адреса команди слідуюча за адресою команди виклику підпрограми. Безумовний виклик підпрограми При виконанні даної команди виклик підпрограми...

Украинкский

2013-09-23

194 KB

10 чел.

Лабораторна робота №5

Команди виклику підпрограм і повернення з підпрограм

За допомогою команд переходів послідовність виконання команд програми може бути змінена, шляхом переходу до нової послідовності. Однак команда переходу сама по собі не дозволяє повернутись в те місце звідки був здійснений перехід. Це можна легко здійснити за допомогою команд виклику підпрограм. Підпрограма представляє собою фрагмент програми, звернення до якої може бути здійснено в любій точці головної програми. Коли здійснюється звернення до підпрограми, то на початку виконання вона реалізує запам’ятовування поточного значення лічильника команд (точка повернення). Коли виконання підпрограми закінчується, то за допомогою команди повернення мікропроцесору вказується, що початкове значення лічильника команд потрібно взяти з пам’яті. Для запам’ятовування точки повернення використовується стек, куди записується адреса команди слідуюча за адресою команди виклику підпрограми.

Команди даної групи не змінюють  вмісту регістра ознак.

  1.  Безумовний виклик підпрограми

При виконанні даної команди виклик підпрограми виконується в любому випадку. Команда займає 3 байти і виконується 5 машинних циклів.

  1.  Умовний виклик підпрограми

Перехід до підпрограми виконується тільки в тому випадку, якщо виконується умова, що провіряється.

При цьому

Якщо умова, що провіряється не виконується, то і не виконується перехід до підпрограми, а виконується слідуюча команда програми.

Значення розрядів ССС вибирається в залежності від умови, що провіряється.

  1.  Повернення з підпрограми безумовне

  1.  Повернення із підпрограми умовне.

 Якщо умова, що провіряється виконується, то    і виконується вихід з підпрограми в точку адреса якої знаходиться в стеці. Якщо умова не виконується, то повернення не здійснюється і виконується слідуюча команда підпрограми.

Значення розрядів ССС вибирається в залежності від умови, що провіряється.

При виконанні команд повернення з підпрограми МП дістає зі стеку значення програмного лічильника, при якому виник перехід із програми попереднього рівня і завантажує це значення в лічильник команд. Команді «повернення із підпрограми»  не   повідомляється якого рівня вкладення  виконується програма і скільки разів виникав виклик цієї підпрограми . Виконуючи цю команду, МП просто повертається до того значення програмного лічильника , яке було останнім завантажене у стек.

Завдання

 Використовуючи завдання відповідно до варіанту минулої ЛБ написати програму вирішення даного завдання з використанням підпрограм.


 

А также другие работы, которые могут Вас заинтересовать

68948. Перевантаження операторів 40 KB
  Перевантаження скорочених операторів присвоєння Обмеження на перевантаження операторів З перевантаженням функцій тісно пов’язаний механізм перевантаження операторів. У мові C можна перенавантажувати більшість операторів набудувавши їх на конкретний клас.
68949. Перевантаження операторів new і delete 53.5 KB
  У мові C++ можна перенавантажувати операторів new і delete. Це доводиться робити, якщо виникає необхідність створити особливий механізм розподілу пам’яті. Наприклад, можна зажадати, щоб процедура розподілу пам’яті використовувала жорсткий диск як віртуальну пам’ять, якщо купа вичерпана.
68950. Перевантаження операторів [], () 49.5 KB
  Ці оператори також можна перенавантажувати, що породжує масу цікавих можливостей. На перевантаження цих операторів розповсюджується одне загальне обмеження: вони повинні бути нестатичними функціями-членами. Дружні функції застосовувати не можна.
68951. Деформация кристалла 142 KB
  Деформа́ция (от лат. deformatio — «искажение») — изменение взаимного положения частиц тела, связанное с их перемещением относительно друг друга. Деформация представляет собой результат изменения межатомных расстояний и перегруппировки блоков атомов.
68952. Наслідування. Доступ до членів класу 31.5 KB
  Наслідування — один з наріжних каменів обєктно-орієнтованого програмування, оскільки воно дозволяє створювати ієрархічні класифікації Використовуючи Наслідування, можна створювати загальні класи, що визначають властивості, характерні для всієї сукупності споріднених класів.
68953. Конструктори похідних класів 44 KB
  У звязку із наслідуванням виникають два питання, що стосуються конструкторів і деструкцій. По-перше, коли викликаються конструктори і деструкції базового і похідного класів? По-друге, як передаються параметри конструкторів базового класу? Відповіді на ці питання містяться в наступному розділі.
68954. Передача параметрів конструктору базового класу 47.5 KB
  Якщо конструктор похідного класу повинен отримувати декілька параметрів слід просто використовувати стандартну синтаксичну форму конструктора з параметрами. Проте виникає питання яким чином передаються аргументи конструктору базового класу
68955. Віртуальні деструктори 26.5 KB
  Явний опис деструкторів у програмах потрібний лише тоді, коли обєкт створюється у динамічній памяті. При використанні віртуальних деструкторів досить очевидними є переваги поліморфізму. Зазвичай, вони застосовуються тоді, коли при знищенні обєктів необхідно видалити обєкти похідного класу...
68956. Шаблони. Функція з двома узагальненими параметрами 54.5 KB
  За допомогою шаблонів можна створювати узагальнені функції і класи які працюють з типом даних заданим як параметр. Узагальнені функції Узагальнена функція визначає універсальну сукупність операцій застосовних до різних типів даних. За допомогою узагальненої функції можна визначити природу...