Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-67124
Akhmadey
2003-04-01 20:45
2003.04.21
Можно ли в идентификаторе использовать переменную


1-67389
rol
2003-04-10 11:53
2003.04.21
Компонент RichEdit как родитель


7-67590
studentas
2003-03-03 12:49
2003.04.21
GetVolumeInformation


14-67552
MVVD
2003-04-04 16:11
2003.04.21
Почему не работает F1 в DELPHI6?


7-67592
gorchakov
2003-03-04 15:49
2003.04.21
вывод через принтерный порт на светодиоды





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский