Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Методички » Асемблер для IBM PC

Реферат Асемблер для IBM PC





а отримати за допомогою конструкції [ВХ]. p align="justify"> Частковий основної програми, відповідний зверненнями D (A) і D (B):


; процедура; основна программаDPROCLEABX, A; ВХ = адресу АPUSH СХ; зберегти cxCALLDD (A) MOV CL, 4LEABX, B; ВХ = адресу ВSHR WORD PTR [BX], CL X : = x div 16CALLD; D (B) POP CX; відновити СХRETDENDP

Зауваження . На початку своєї роботи процедура повинна зберегти в стеку значення тих регістрів, які їй будуть потрібні для роботи. Перед виходом вона повинна відновити колишні значення цих регістрів, зчитавши їх з стека.

У разі, коли параметром процедури є дані складних типів, вони також передаються в процедуру по посиланню з використанням одного з регістрів-модифікаторів і непрямої адресації.

. Передача через стек: програма перед викликом заносить параметри в стек за допомогою команди push. Щоб підпрограма могла змінювати значення параметрів, слід передавати їй не самі значення, а адреси параметрів. Використовується у випадку великої кількості параметрів.

Виконання процедури повинно починатися зі наступних команд (В«вхідніВ» дії процедури):


Р PROCUSH ВР; зберегти ВРBP, SP; ВР - на вершину стека

...


команди процедури

Після запису в стек старого значення ВР (ВРст) для доступу до параметрів процедури треба використовувати вираз виду [ВР + i], де i = 2 * n (n - розмірність параметра).

При виході з процедури стек повинен бути в тому ж стані, в якому він був після В«вхіднихВ» дій. Для відновлення стану стека виконуються В«вихідніВ» дії:

POP ВР; відновити старе значення ВР2 * k; очищення стека від k параметрів-слів і повернення

Р ENDP

За командою RET i * k з стека видаляється адресу повернення, потім стек очищається на вказане операндом число байтів і далі виконується перехід за адресою повернення.

Модульна структура програм мовою Асемблера.

Модулем називають частину програми, вирішальну деяку підзадачі і більш-менш незалежну від інших частин. Окремим випадком модулів є процедури. p align="justify"> Розглянемо процес об'єднання окремих модулів (оформлених у вигляді окремих asm-файлів) в єдиний завантажувальний модуль.

Нехай в програмі є два модулі Ml і М2. Нехай в модулі М2 описана процедура Р, до якої звертатиметься модуль Ml, і нехай модуль М2 користується змінної Х і константою До з модуля Ml. Щоб при трансляції не виникло повідомлення про помилку "неописане ім'яВ», транслятору асемблера повідомляється, що імена Х і К, хоча і використовуються в М2, описані в іншому модулі. Таке повідомлення робиться за допомогою директиви

<ім'я>: <тип>, ..., <ім'я>: <тип>


де <тип> - це BYTE, WORD, DWORD, ABS, NEAR, FAR.

У нашому випадку в модулі М2 треба вказати директиву EXTRN X: BYTE, K: ABS. Вона повідомляє ассемблеру, що імена Х і К є зовнішніми по відношенню до даного модулю. У модулі Ml слід помістити директиву EXTRN Р: PAR, сообщающую, що Р - це процедура з іншого модуля і виклик її повинен бути далеким. У модулі, де описані імена К і Х (тобто в Ml) треба помістити директиву PUBLIC <ім'я>, ...., <ім'я>

В даному випадку в модулі Ml треба записати директиву PUBLIC X, K. Цією директивою повідомляється, що імена Х і К даного модуля дозволено використовувати в інших модулях. Імена, описані в модулі і доступні іншим модулям, по відношенню до цього модуля називаються загальними. Отже, якщо в якомусь модулі програми деяке ім'я описано як зовнішнє, то в якомусь іншому модулі це ім'я обов'язково має бути оголошено загальним. З урахуванням сказаного модулі Ml і М2 повинні мати наступний вигляд


; модуль Ml; модуль М2EXTRN Р: FAREXTRN X: BYTE, K: ABSPUBLIC Х, KPUBLIC PXDB? PPROCFARКEQU100MOVX, 0 ... MOVАХ, КCALLР ...

Модулі транслюються окремо. Потім при компонуванні вони об'єднуються в єдину машинну програму за допомогою команди:

LINK M1.OBJ + ... + Mk.OBJ, M.EXE;

Робота з командою переривань INT.

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

Гј апаратні - це сигнал від будь-якого пристрою системи для процесора, який за цим сигнало...


Назад | сторінка 6 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Автоматизовані мехатронні модулі
  • Реферат на тему: Модулі в Turbo Pascal
  • Реферат на тему: Модулі статистичної обробки аналізатора &Тензотрем&
  • Реферат на тему: Додаткові модулі в Adobe Photoshop. Розробка Plug-in
  • Реферат на тему: Інтелектуальні силові модулі. Автономні інвертори струму