Вниз
Скачать: CL | DM;

Почему неработает функция прерывания int в программе на Delphi   Найти похожие ветки 

 
Demi   (2004-04-22 10:02) [0]

У меня есть кника по ассемблеру в ней написано зделайте так проделайте эдак. Проблема в том что всё было бы  нормально если бы команда  int не вызывала исключение, от которой всё зависит.Подскажите в чём проблема. Спасибо.


 
Игорь Шевченко ©   (2004-04-22 10:09) [1]


> У меня есть кника по ассемблеру


Сходить на форум по ассемблеру ?


 
Григорьев Антон   (2004-04-22 10:50) [2]

Программе, работающей в пользовательском режиме, нет нужды вызвать прерывания, вот система и не разрешает делать это. Забудьте вообще про прерывания и ищите альтернативный способ.


 
inic   (2004-04-22 11:05) [3]

Предыдущий человек (Григорьев Антон) прав. Я не помню точно, но обычные программы в Win32 выполняются в некотором режиме, для которых недопустимы некоторые инструкции процессора, например int, in, out и т.п. (необходимо прочитать материал о защищенном режиме - Protected Mode; уверен, что в Вашей книге по ассемблеру это описывается). Но такие инструкции доступны для драйверов (кстати, часто их и создают не в качестве драйвера, а в качетсве библиотеки к главной программе для доступа к ним).


 
PVOzerski ©   (2004-04-22 11:08) [4]

Уточнение: win"9x и win"NT здесь ведут себя по-разному.


 
Digitman ©   (2004-04-22 11:33) [5]


> если бы команда  int не вызывала исключение, от которой
> всё зависит


не понял, от кого и что зависит ? от исключения что-то зависит ? или от невозможности якобы использовать int-инструкцию ?


 
Матлабист   (2004-04-22 11:35) [6]

Почитай внимательно книжку, на какую OS она рассчитана. Скорее всего DOS ;)


 
Матлабист   (2004-04-22 11:50) [7]

> вот система и не разрешает делать это

Очень даже разрешает. Половина функций из ntdll уходят в int $2e. Например:

ntdll.ZwCreateMutant:  mov eax, $00000025
 lea edx, [esp+$04]
 int $2e ; Обращение к ядру Windows  
 ret $0010



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
7-1076080076
Станислав
2004-02-06 18:07
2004.04.11
Рабочий стол


1-1080145525
Larry Laffer
2004-03-24 19:25
2004.04.11
Main Menu


1-1082369020
Dmitriy O.
2004-04-19 14:03
2004.04.11
Qreport не хочет печатать в NT


7-1075775338
Tumcoat
2004-02-03 05:28
2004.04.11
Как программно определить имя компьютера


1-1079971378
Алексейй
2004-03-22 19:02
2004.04.11
Эта загадочная клавиша "Home"




   Наверх