Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 21:50   #1
Николайка
Пользователь
 
Аватар для Николайка
 
Регистрация: 26.11.2009
Сообщений: 13
Вопрос Обработчик прерывания int 21h

; (01prog)----------------------------------------------------------------------

Код:
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Begin:
     jmp Init
     Int_21h_proc proc
     cmp ah,9
     je ok_09
     Jmp dword ptr cs:[Int_21h_vect]
ok_09:
     push ds
     push dx
     push cs
     pop ds
     mov dx,offset My_string
     pushf
     call dword ptr cs:[Int_21h_vect]
     pop dx
     pop ds
     iret
       Int_21h_vect dd ?
       My_string db 'Моя строка!$'
       int_21h_proc endp
     Init:
         mov ah,35h
         mov al,21h
         int 21h
         mov word ptr Int_21h_vect,bx
         mov word ptr Int_21h_vect+2,es
         mov ax,2521h
         mov dx,offset Int_21h_proc
         int 21h
         mov dx,offset Init
         int 27h
         CSEG ends
         end Begin
По идее обработчик прерывания должен проверить если какая либо программа вызывает функцию "ah,9" то обработать прерывание "int 21" и выдать ту строку которую я хочу, но у меня почему то это не работает. Вроде разобрал все досконально, и по идее должно работать. Запускаю (01prog) там программа остается резидентной для обработки прерывания. Потом запускаю (02prog) ведь она использует функцию "ah,9" поэтому при запуске этой программы должна появится "Моя строка!" из (01prog) если бы обработчик работал.. но как вы уже поняли она выдает "Чужая строка!"(02prog) т.е. не работает. Кто бы помог мне понять почему.. блин я на этом застрял, а книга Калашникова не раскрыла эту тему полностью. Точнее я логику всю разобрал, что и как, по идее должно работать но дальше логики он не рассказывает или я что то не понял. Помогите Please!


; (02prog) ------------------------------------------------------------------------------------------------

Код:
CSEG segment
org 100h
Begin:
    mov ah,09h
    mov dx,offset string
    int 21h
    int 20h
string db 'Чужая строка$'    
CSEG ends
end Begin

Последний раз редактировалось Николайка; 16.04.2012 в 20:46. Причина: уточнил вопрос
Николайка вне форума Ответить с цитированием
Старый 12.09.2012, 04:37   #2
Николайка
Пользователь
 
Аватар для Николайка
 
Регистрация: 26.11.2009
Сообщений: 13
По умолчанию

не понял как редактировать мое сообщение..(бурду написал хорошую), блин! Перехватчик не работает? Что такое не пойму, программу разобрал досконально, но почему не идет перехват прерывания.. По Калашникову все как говорится правильно сделал а результата как не было так и нет, почему этот резидент не работает...
Николайка вне форума Ответить с цитированием
Старый 12.09.2012, 06:26   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

вы не забывайте, что в винде дос только эмулируется. И разные дос программы не связаны между собой. Попробуйте запустить command.com и запускать программы по очереди в нем
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mov bx,0 pinkiller Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 16.04.2012 19:07
MOV eax to xmm f.hump Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 10.08.2011 11:25
mov eax, [ebx] goluzov Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 03.07.2011 20:57
Дизассемблер MOV zipwind Помощь студентам 2 12.05.2011 23:57
команда MOV, проблемы fermat_c Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.04.2008 19:19