Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с системными прерываниями и регистрами процессора [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`овские вставки, если конечно ассемблер знаешь...


Наверх

Титульная страница Поиск, карта сайта Написать письмо