OSDev
http://osdev.su/

Virtual 8086 mode
http://osdev.su/viewtopic.php?f=6&t=522
Страница 1 из 4

Автор:  DJ PhoeniX [ 03 апр 2012, 14:52 ]
Заголовок сообщения:  Virtual 8086 mode

Знаю, знаю, "гугл рулит", но видимо меня там забанили.
Суть проста - у кого есть простой и понятный ман по этой фиче? А то в сети либо так запутано, что проще офис на брейнфаке написать, либо весь ман сводится к "постройте адронный коллайдер и просто нажмите кнопку".

В идеале - асмовый код (проще - лучше), а ещё идеальнее - с комментариями.

Автор:  SII [ 03 апр 2012, 14:57 ]
Заголовок сообщения:  Re: Virtual 8086 mode

Всё вполне вменяемо описано в интеловских мануалах на архитектуру. Если Вы понять её (документацию) не в состоянии, то уж, извините, осеписательство -- не Ваше. Ну а если в состоянии, но лениво разбираться и хочется готового -- то хотеть не вредно, но придётся всё ж самому. На чужом опыте, каким бы великим он ни был, далеко не уедешь.

Автор:  DJ PhoeniX [ 03 апр 2012, 15:38 ]
Заголовок сообщения:  Re: Virtual 8086 mode

SII писал(а):
Всё вполне вменяемо описано в интеловских мануалах на архитектуру. Если Вы понять её (документацию) не в состоянии, то уж, извините, осеписательство -- не Ваше. Ну а если в состоянии, но лениво разбираться и хочется готового -- то хотеть не вредно, но придётся всё ж самому. На чужом опыте, каким бы великим он ни был, далеко не уедешь.

Да я понимаю, что можно и доки пораскуривать, вопрос в необходимости. Ради двух-трёх интов курить 10 страниц - как-то непродуктивно...

Автор:  grindars [ 03 апр 2012, 16:48 ]
Заголовок сообщения:  Re: Virtual 8086 mode

Если вам нужно вызвать какой-нибудь VBE, то посмотрите пару моих постов в теме про эмуляторы - такое может оказаться более простым решением, и, к тому же, работающим на IA-32e.

Автор:  phantom-84 [ 03 апр 2012, 16:59 ]
Заголовок сообщения:  Re: Virtual 8086 mode

DJ PhoeniX писал(а):
Да я понимаю, что можно и доки пораскуривать, вопрос в необходимости. Ради двух-трёх интов курить 10 страниц - как-то непродуктивно...
Кстати, если все-таки решишь разобраться основательно, можем скооперироваться. У меня недавно возникла задача запустить одно приложение под мою ось на основе сервиса BIOS 10h/13h/16h, не "убивая" таймерный и другие обработчики BIOS'а, т.е. без родных дров и полноценного ядра.

Автор:  Yoda [ 03 апр 2012, 17:11 ]
Заголовок сообщения:  Re: Virtual 8086 mode

В тьюториалах Алексея Фрунзе
http://members.tripod.com/protected_mod ... mtuts.html
есть пример запуска режима V86 и обработки внутри него вызовов BIOS.
Вообще говоря, если есть в планах переход на 64-битное расширение, то от V86 надо отказываться. V86 в 64-битном режиме не поддерживается. Поэтому, кстати, нельзя запустить ДОС-овские экзешники на 64-битных версиях винды.

Автор:  phantom-84 [ 03 апр 2012, 17:30 ]
Заголовок сообщения:  Re: Virtual 8086 mode

Мне нужно в 32-разрядном приложении обращаться ко всем хардам и флешкам, которые видит BIOS.

Автор:  DJ PhoeniX [ 03 апр 2012, 19:55 ]
Заголовок сообщения:  Re: Virtual 8086 mode

grindars писал(а):
Если вам нужно вызвать какой-нибудь VBE, то посмотрите пару моих постов в теме про эмуляторы - такое может оказаться более простым решением, и, к тому же, работающим на IA-32e.

Я уже думал над полноценной эмуляцией, и даже продвинулся в этом направлении, но как-то мне это кажется не совсем правильным, когда есть готовые решения. Хотя про х64 правильно сказали - там вообще иного пути нет.

Автор:  grindars [ 03 апр 2012, 20:30 ]
Заголовок сообщения:  Re: Virtual 8086 mode

Yoda писал(а):
Поэтому, кстати, нельзя запустить ДОС-овские экзешники на 64-битных версиях винды.


В NTVDM для Alpha и MIPS был чистый эмулятор x86. Вероятно, MS просто решила выкинуть поддержку 16-битных виндовых приложений, для которых есть куча костылей в граф. подсистеме, а ДОСу "до кучи" досталось.

P.S. Все совпадения случайны :)

DJ PhoeniX писал(а):
Я уже думал над полноценной эмуляцией, и даже продвинулся в этом направлении, но как-то мне это кажется не совсем правильным, когда есть готовые решения. Хотя про х64 правильно сказали - там вообще иного пути нет.


Я бы повесил (собственно, и вешал) эмулятор 8086 в отдельную задачу, чтобы не захламлять ядро кучей малонужных костылей для поддержки давно умершего софта.

Автор:  valeri [ 03 апр 2012, 20:36 ]
Заголовок сообщения:  Re: Virtual 8086 mode

DJ PhoeniX писал(а):
Я уже думал над полноценной эмуляцией, и даже продвинулся в этом направлении, но как-то мне это кажется не совсем правильным, когда есть готовые решения. Хотя про х64 правильно сказали - там вообще иного пути нет.


Как раз таки эмуляция и есть правильный выход, имхо единственно правильный, тем более для 8086 ее не так сложно написать.

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/