Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)

Реферат Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)





; Відновимо вектор 2fh

mov ax, 252fh; Функція установки вектора

lds dx, cs: old_2fh; Заповнимо DS: DX

int 21h

; Отримаємо з PSP адресу власного оточення і вивантажимо його

mov es, cs: 2ch; ES В® оточення

mov ah, 49h; Функція звільнення блоку пам'яті

int 21h

; Вивантажимо тепер саму програму

push cs; Завантажимо в ES вміст CS, тобто сегментна адреса PSP

pop es

mov ah, 49h; Функція звільнення блоку пам'яті

int 21h

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

pop dx

pop es

pop ds

iret; Повернення в викликала програму

new_2fh endp; Кінець процедури обробки переривання 2Fh

end_res = $; Зсув кінця резидентної частини програми

main endp

tail db 'off'; Очікуваний хвіст команди

flag db 0; Прапор вимоги вивантаження

tabl db '0123456789 '; Таблиця для перекладу BCD коду в ASCII

time db 25 dup (?); Осередок для збереження поточної дати і часу

; Процедура створення файлу

div_f proc

mov ah, 3ch; Функція створення файлу

mov cx, 0; Без атрибутів

lea dx, filename; DS: DX В¬ ASCIIZ імені файлу


int 21h

mov bx, ax; Дескриптор у ВХ

mov ah, 40h; Функція запису в файл

mov cx, buflen; CХ В¬ кількість байт

lea dx, buf; DS: DX В¬ адреса рядка

int 21h

mov ah, 3eh; Функція закриття файлу

int 21h

ret; Вихід з процедури

div_f endp; Кінець процедури створення файлу

; Процедура відкриття файлу і запису в нього поточної дати і часу

div2_f proc

mov [time], 0ah; Запис в змінну time маркерів

mov [time +1], 0dh; переходу на наступний рядок

mov ah, 3dh; Функція відкриття файлу

mov al, 1; для запису

mov dx, offset filename; DS: DX В¬ ASCIIZ імені файлу

int 21h

mov bx, ax; Дескриптор у ВХ

push bx; Збережемо дескриптор

xor cx, cx; відчистити СХ

xor dx, dx; і DX

mov ax, 4202h; Функція установки покажчика в кінець файлу

int 21h

mov ah, 02h; Функція читання часу з В«ПостійнихВ» В«CMOSВ» годин реального часу

int 1ah; Переривання введення - виведення для часу

mov bx, offset tabl; DS: DX В¬ адреса таблиці

mov si, 2; Встановимо зміщення для змінної time

mov ax, cx; Години і хвилини збережемо в AX

mov cx, 12; Встановимо лічильник зсуву

next: push ax; Збережемо AX

shr ax, cl; Зрушимо AX на CL

and al, 0fh; Отримаємо номер осередки в таблиці додавши маску

xlat; Отримаємо ASCII код числа

mov [time + si], al; Занесемо його в змінну time

inc si; Збільшимо на 1 зсув

cmp si, 4; Зсув = 4? p> je ras; Так, перехід на мітку ras

vw: sub cl, 4; Ні, зменшимо CL на 4

pop ax; Відновимо AX <...


Назад | сторінка 20 з 23 | Наступна сторінка





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

  • Реферат на тему: Створення текстового файлу. Довідково-пошукова система
  • Реферат на тему: Створення меню без файлу опису ресурсів на основі функції LoadMenuIndirect ...
  • Реферат на тему: Розробка програми для підрахунку хеш-суми файлу і тексту з графічним інтерф ...
  • Реферат на тему: Потокове шифрування файлу
  • Реферат на тему: Робота зі структурою двійкового файлу