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

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





/p>

cmp cl, -4; Порівняємо CL з -4 p> jne next; Не дорівнює - виконаємо ще раз

jmp ent1; Так само - перехід на ent1

ras: mov [Time + si], ':'; Запишемо в змінну time - В«:В»

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

jmp vw; Перейдемо на мітку vw

ent1: mov [Time + si], ''; Запишемо в змінну time - «»

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

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

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

mov ax, dx; Дату збережемо в AX

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

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

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

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

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

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

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

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

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

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

cmp cl, -4; Порівняємо CL з -4 p> jne next1; Не дорівнює - виконаємо ще раз

jmp ent2; Так само - перехід на ent2

ras1: mov [Time + si], '.' ; Запишемо в змінну time - В«.В» p> inc si; Збільшимо на 1 зсув

jmp vw1; Перейдемо на мітку vw1

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

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

pop bx; Відновимо дескриптор

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

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

mov dx, offset time; DS: DX В¬ адреса рядка

int 21h

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

int 21h

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

div2_f endp; Кінець процедури підготовки файлу

; Процедура ініціалізації

init proc

mov cl, es: 80h; Отримаємо довжину хвоста PSP

cmp cl, 0; Довжина хвоста = 0? p> je live; Та програма запущена без параметрів

xor ch, ch; Тепер CX = CL = довжина хвоста

mov di, 81h; DS: SI В® хвіст в PSP

lea si, tail; DS: SI В® поле tail

mov al, ''; Приберемо пробіли з початку хвоста

repe scasb; Скануємо хвіст, поки прогалини

dec di; DI В® перший символ після прогалин

mov cx, 3; Очікувана довжина параметра

repe cmpsb; Порівнюємо введений хвіст з очікуваним

jne live; Введена невідома команда

inc flag; Введено В«offВ», встановимо прапор запиту на вивантаження

; Перевіримо, чи не встановлена ​​вже дана програма

live: mov ah, 0f1h; Встановимо нашу функцію

mov al, 0; і підфункцію на наявність нашої програми в оперативній пам'яті

int 2fh

cmp al, 0ffh; встановлена ​​програма?

je installed; Так, за наявності запиту на вивантаження її можна вивантажити

; Збережемо вектор 2fh

mov ax, 352fh; Функція отримання вектора 2fh

int 2...


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





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

  • Реферат на тему: Організація закупівель ресурсів в умовах функціонування системи Just-in-Tim ...
  • Реферат на тему: Методична рекомендація по виконанню джазових стандартів &Ev'ry time we ...
  • Реферат на тему: Зсув Н.С. Хрущова з вищих партійних і державних постів
  • Реферат на тему: Побудова амперметру та вольтметру. Методи вімірювання фазового Зсув
  • Реферат на тему: Купірування хвоста у собак