Особливості використання функцій на мові Асемблер







Пошукова робота з

дисципліни

Системне програмування


на тему: “Особливості використання функцій на мові Асемблер”



















2001



Програма, яка викликається

1. Імя процедури (функції) повинна бути задана в директиві public:

public імя процедури (функції)

2. Якщо процедура (функція) використовує дані, пам’ять під які виділена в іншій програмі, то в цій програмі використовується директива extrn, визначення 1, визначення 2, ...

Загальний вид визначення для даних, що передаються:

імя – тип: кількість, де

імя - імя даного, память під яке виділена в іншому модулі;

тип – тип даного, використовується для визначення довжини даного в байтах, для задання використовуються ключові слова: byte, word, dword, ford, gword, tbyte або ім’я структури для 1-, 2-, 4-, 8-, 10 – байтових даних та даних визначених користувачем. Якщо в якості зовсім іншого імені використовується ім’я, визначене в директиві equ, його тип – аbs;

кількість – задає кількість елементів даного типу, використовується, якщо в якості зовнішнього передається масив, дозволяє застосовувати в процедурі (функції) операції SIZE, LENGTN.

Таким чином, імена використаних, але не визначених даних повинні визначатися директивою estrn, а імена визначених даних, які можуть використовуватися іншими модулями, визначаються директивою public. Щоб забезпечити можливість однаково задавати дані в різних модулях, використовується директива global. Загальний вигляд директиви:

global визначення 1, визначення 2, ...

Визначення задаються так само, як для директиви extrn.

Щоб визначити функцію global, транслятор “дивиться” чи виділена память для даного в цьому модулі. Якщо виділена, директива еквівалентна директиві local, в противному випадку – estrn. Використання global дає можливість зробити загальним визначення для декількох модулів. Загальна частина може бути поміщена в файл, який підключається до модулів за допомогою директиви include.

Загальний вигляд директиви:

incude ім’я файла.

Для файла може бути задане його повне імя.

Зовнішня процедура (функція) може використовуватися іншими програмами, про які розробник заздалегідь може не знати, ця програма не повинна “псувати” зміст ресурсів загального користування.

З врахуванням вищевказаних вимог загальний вигляд зовнішньої процедури (функції) слідуючий:

MODEL імя

......................

CODE

імя проц. proc

public імя

; Збереження використаних регістрів

.......................

; реалізація алгоритма

; відновлення використаних регістрів

.......................

ret

імя endp

end

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

Загальний вигляд викликаючої програми:

MODEL імя

......................

extrn імя – проц. proc

......................

CODE

begin

...................

end begin

Директиви public та extrn в цих програмах можна замінити директивою global імя – проц: proc. Але все-таки рекомендується використовувати директиви public та extrn, так як вони дозволяють більш глибоко вивчити механізм звязку модулів. Саме ці директиви найбільш часто використовуються в програмах. Після впевненого використання цих директив, їх можна замінити директивою global.

Для створення програми з декількох модулів, виконується роздільна трансляція для кожного модуля (tasm ім’я – модуля 1, tasm ім’я – модуля 2, ...) і компоновка всіх модулів разом (tlink ім’я – модуля 1, ім’я модуля 2...) Для формування налагодженої інформації використовуються ті ж ключі, що і для одномодульних програм.

Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ