Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Охарактеризувати роботу з процедурами. Описати визначення процедури у програмах.






В програмах мовою Асемблера також можна визначати процедури, хоча процедури не є обов'язковим елементом, вони лише підвищують наочність програми.
Нижче показані два варіанти визначення підпрограм: за допомогою процедур та без використання директив визначення процедур. У другому випадку ім’я визначено як мітка початку процедури.

 

Розбивка програми на процедури дозволяє спростити структуру програми, логічно відокремити деякі її ділянки (тоді зміни в одній підпрограмі не будуть впливати на інші підпрограми). Коли підпрограми викликаються неодноразово, це дозволяє скоротити довжину всієї програми.

Для опису послідовності команд у вигляді процедури мова Асемблера має директиви PROC і ENDP. Тип процедури (NEAR чи FAR) задається при її оголошенні в директиві PROC операндом – атрибутом відстані NEAR або FAR. Атрибут NEAR означає, що цю процедуру можна викликати тільки з цього ж самого сегмента, тоді як для FAR процедури передбачений виклик з іншого сегмента. За замовчуванням встановлюється NEAR атрибут.

Процедури можуть розташовуватися в будь-якому порядку, вкладатися одна в іншу. Але їх варто розташовувати таким чином, щоб вони не мали змогу почати виконуватися “самі по собі”, тобто без їхнього виклику командою call.

Для виклику процедури існує спеціальна команда call. Команда call має 4 види:

· виклик прямий ближній (у межах поточного сегмента)

call rel16/rel32

· виклик непрямий ближній (у межах поточного сегмента)

call reg/mem

· виклик прямий далекий (процедури в різних сегментах)

call seg: rel

· виклик непрямий далекий (процедури в різних сегментах)


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал