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

Функції завжди перечислюються у такому порядку

Читайте также:
  1. АРХІВНІ ДОВІДНИКИ В СИСТЕМІ НДА: ФУНКЦІЇ ТА СТРУКТУРА
  2. Будова та функції кишечника
  3. Вбудовані елементарні математичні функції
  4. Ви завжди повинні відмовляти:
  5. Види і функції соціальних інститутів
  6. Види, форми і функції культури
  7. Визначення власного капіталу, його функції та мета складання Звіту про власний капітал
  8. Визначення мови та її функції.
  9. Відзначимо наступні основні функції політичної соціології як навчальної дисципліни: світоглядну, пізнавальну, виховну, практично-політичну.
  10. Границя функції в точці.
  11. Давнього світу та їх функції
  12. Державотворча роль мови. Мова як засіб пізнання, мислення, спілкування. Функції мови. Стилі і типи мовлення.

1. INITIALIZE (ініціалізація)

2. CHECK_MEDIA (перевірка носія)

3. MAKE _BPB

4. IOCTL_IN

5. IMPUT_DATA (ввід даних)

6. NONDESTRUCT_IN

7. IMPUT_STATUS (статус вводу)

8. CLEAR_INPUT (очищення вводу)

9. OUTPUT_DATA (вивід даних)

10. OUTPUT_VERIFY (перевірка виводу)

11. JUTHUT_STATUS (статус виводу)

12. CLEAR_OUTPUT (очищення виводу)

13. IOCTL_OUT

 


Приклад 3. Процедура обробки переривань.

В цьому прикладі приведена загальна форма процедури обробки переривання, за виключенням реального коду, що керує пристроєм. Тут використовується функція виводу. Процедура, що виконує вивід отримує з заголовка запит адреси буфера, в якому знаходяться дані, що виводяться (зміщення 14). Вона також зчитує число байтів, що потрібно вивести (зміщення 18). Коли процедура завершить вивід даних, то вона встановлює слово статусу в заголовку запита (зміщення 3) і поверне управління. Коли операція успішна, то потрібно встановити біт 8 слова статусу.

 

;---ініціалізація обробника переривань пристрою

DEV_INTERRUPT: PUSH ES;зберігаємо регістри

PUSH DS

PUSH AX

PUSH BX

PUSH CX

PUSH DX

PUSH SI

PUSH DI

PUSH BP

MOV AX,CS:KEEP_ES;ES:BX вказує на заголовок запиту

MOV ES,AX

MOV BX,CS:KEEP_BX

MOV AL,ES:[BX+2];отримуємо код команди із заголовку

SHL AL,1;помножуємо на 2)

SUB AH,AH;обнуляємо AH

LEA DI,FUNCTIONS;DI вказує на зміщення до(перед) таблиці(ею)

ADD DI,AX;додаємо зміщення в таблиці

JMP WORD PTR [DI];переходимо на адресу з таблиці

FUNCTIONS LABEL WORD;це таблиця функцій

DW INITIALIZE

DW CHECK_MEDIA

DW MAKE_BPB

DW IOCTL_IN

DW INPUT_DATA

DW NONDESTRUCT_IN

DW INPUT_STATUS

DW CLEAR_INPUT

DW OUTPUT_DATA

DW OUTPUT_VERIFY

DW OUTPUT_STATUS

DW CLEAR_OUTPUT

DW IOCTL_OUT

;-вихід із драйверу, якщо функція не підтримується

CHECK_MEDIA:

MAKE_BPB:

IOCTL_IN:

INPUT_DATA:

NONDESTRUCT_IN:

INPUT_STATUS:

CLEAR_INPUT:

OUTPUT_VERIFY:

OUTPUT_STATUS:

CLEAR_OUTPUT:

IOCTL_OUT:

OR ES:WORD PTR [BX]+3,8103H;модифікуємо статус

JMP QUIT

;-процедури для двох кодів, що підтримуються

INITIALIZE: LEA AX,E_O_P;зміщення кінця програми в AX

MOV ES:WORD PTR [BX]+14,AX;помістимо його у заголовок

MOV ES:WORD PTR [BX]+16,CS

...

(тут іде ініціалізація пристрою)

...

JMP QUIT

OUTPUT_DATA: MOV CL,ES:[BX]+18;отримуємо число, символ

CBW CX;CX використовуємо як лічильник

MOV AX,ES:[BX]+16;отримуємо адресу буфера даних

MOV DS,AX

MOV DX,ES:[BX]+14

...

(операції по виводу)

...

JMP QUIT

;-вихід з модифікацією байту статусу в заголовку запита

QUIT: OR ES:WORD PTR [BX]+3,100H;установлюємо біт 8

POP BP;повертаємо регістри

POP DI

POP SI

POP DX

POP CX

POP BX

POP AX

POP DS

POP ES

RET

E_O_P:;мітка кінця програми

DEVICE12 ENDP

CSEG ENDS

END DEVICE12

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)