Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
ВнизInt 21h в Delphi Найти похожие ветки
← →
Top Gun (2003-04-08 18:48) [0]Вот узнал тут, что в дельфе между asm и end; можно вставить ассемблерные комманды
Но никак не могу разобраться. А вот можно вызвать int21h, например, для вывода строки ? И если можно - покажите как
← →
MityaP (2003-04-08 19:17) [1]С int21h у тебя в NT будет проблеба - тебе не даст она такого сделать...
Где-то на форумах я видел, но ща уже не помню ссылку...
← →
Palladin (2003-04-08 19:28) [2]вот здесь наверно...
здесь собраны самые великолепные вопросы..
что то вроде доски почета..
http://delphi.mastak.ru/nuts/nuts.html
← →
Top Gun (2003-04-08 20:58) [3]Palladin, да, да, очень смешно.
Ну может int21 и нельзя непосредственно вызвать, но я слышал, что NT что-то там эмулирует... В общем, что хочу сказать. Если на TASM написать обычный Hello, World, где для вывода использовать int21, то скомпилированный exe в 2000 работает на ура. Так вот, хочу тоже самое проделать и в Delphi. Только не понимаю как
← →
Palladin (2003-04-08 21:40) [4]ты знаешь что такое int 21h?
к сожалению такое чувство у меня, что ты не знаешь...
это всеголишь прерывание DOS, именно DOS (!!!!) и не чье либо другое...
теперь понимаешь шутку юмора?
у тебя вдруг наверно возникнет вопрос да? почему же скомпилированое TASM работает?
ну батенька... скомпилированое TASM это является COM чисто DOSовская весч, которая в принципе не может занимать более 64кб
соотвессно COM исполняется под VM, то бишь Virtual Machine (помоему так пишется)...
слышал... уши свои пожалуйста фильтруй...
ЗЫ Моему возмущенью нет предела...
← →
evvcom (2003-04-09 09:26) [5]Palladin грубит, но он прав.
Зачем под Win вызывать DOS-прерывания? Для выполнения тех задач, которые исполняли функции DOS-прерываний, написан WinAPI с теми же и даже более широкими возможностями. Используйте их.
← →
Palladin (2003-04-09 09:55) [6]извиняюсь за грубость
← →
Top Gun (2003-04-09 18:30) [7]Palladin, я прекрасно осведомлен, что такое int21.
Не понимаю, почему ты вообще завел тему о ".com" файлах. Я то в ".exe" компилирую
Я не говорю, что это очень необходимо - вызвать под win int21, я просто спрашиваю можно ли это сделать ? Если можно - подскажите как, дальше уж буду думать
← →
Palladin (2003-04-09 18:44) [8]какая разница, ну предположим компильнул ты в exe
exe получился не PE а MZ, и исполнился в той же самой VM поэтому int отработал...
Delphi собирает PE файлы, и исполняются они не под VM, в VM int 21h эмулируется...
ну нету int21h в windows как ты не понял до сих пор...
← →
Palladin (2003-04-09 18:53) [9]хотя за 9x с полной увереностью сказать немогу
← →
Top Gun (2003-04-09 18:55) [10]Palladin, вот так намного понятнее, и не надо возмущаться. Я слышал, что эмулируется что-то - и ведь действительно эмулируется...
А тогда как дело обстоит с прерываниями BIOS, например? Их то наверняка можно вызвать, ведь сама windows их вызывает, думаю (как же без этого?). Можно пример вызова такого прерывания?
← →
Palladin (2003-04-09 19:08) [11]нет
windows не вызывает прерывания bios,
их вызывает драйвер видеокарты...
← →
Palladin (2003-04-09 19:09) [12]если конечно он вообще их вызывает а не работает на прямую с контроллером...
← →
Cobalt (2003-04-09 19:19) [13]2 Top Gun
>ведь сама windows их вызывает,
Сама вызывает, а другим не дает. Принцип "разделяй и властвуй" - нефига лезть своими пальцами в сердце системы. Только сертефицированным драйверам. (это, как правило - в линейке NT, а вот у 9Х - там похуже, программа может "просто" зависнуть, или "просто" подвесить систему)
← →
Palladin (2003-04-09 19:29) [14]откуда такое стремление вызвать какое нибудь прерывание в windows?
← →
NA (2003-04-09 19:37) [15]:)))) веселая темка ;)
Вообще я не готов говорить на все 100%, но имхо даже в биос под виндой пробиться сложновато, скорее всего программа будет работать с мулькой, любезно предложенной виндой вместо биоса настоящего. Поправьте, если ошибаюсь.
Эмулируется в DOS-окнах, да. Может, даже в консольном приложении что-то такое прокатит с теи или иными ограничениями, НО - ЗАЧЕМ???
← →
Top Gun (2003-04-09 19:44) [16]Palladin, а как это можно работать с утройством еще более "прямо", чем вызывать прерывания ?
Могу объяснить зачем. Но это долго. Вы скажите, ЗНАЧИТ, НЕЛЬЗЯ ВЫЗЫВАТЬ ПРЕРЫВАНИЯ В DELPHI ? ТАк или не тАК ? Кто этим занимался, расскажите!
← →
Palladin (2003-04-09 20:20) [17]прерывания это вовсе не "прямая" работа с устройствами...
прямая это чтение/запись портов для этих устройств...
в Delphi ты ничего не вызовешь, у него нет такого оператора.
← →
Top Gun (2003-04-09 21:50) [18]>прямая это чтение/запись портов для этих устройств...
А можно продемонстрировать, это как ? Как это можно писать в порт устройства CD-ROM ?
← →
Palladin (2003-04-09 22:17) [19]
> Top Gun (09.04.03 21:50)
:))
демонстрирую (если цифрой не ошибся, да простят меня хорошопомнящие)
port[$60] - младшие 7 битов код нажатой клавиши на клавиатуре если старший бит равен 1 то эта клавиша была только что отпущена...
это все что я помню из bp7/tp7 по поводу портов...
а что по поводу windows, имхо, к портам таким образом тебе обратится не дано. Нельзя.
ЗЫ что то жутко сомневаюсь по поводу $60...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c