информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
А может человек без мнемокода обойтись хочет: "db ...". 15.06.04 13:34  Число просмотров: 1299
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.06.04 13:35  Количество правок: 1
<"чистая" ссылка>
> А компилер/ассемблер у него есть 64-битный?
> А как он собирается "запихать" 64-битные инструкции в PE32?

А может человек без мнемокода обойтись хочет: "db ...".

> > А я под 16 разрядным ДОСом запускаю 32 разрядные
> программы,
> Ага... Да только они используют какой-нибудь DOS-Extender,
> который сам по себе маленькая OS :) И этот Extender
> загоняет бедную DOS в виртуальную машину, и использует
> хитрые трюки для использования функций DOS из 32-битного
> кода.

Когда надо, с экстендером, а раньше бывало под обычным "голым" ДОСом. Причем 32 битные регистры прекрасно задействовались и под старым BCv3.1 без всяких екстендеров. Вот с памятью было потяжелее, но были варианты - как с himem и emm, так и без них (в реальном режиме). Так что если автор будет юзать верхнюю память (за пределами 4 гигабайт), то тяжело придется.

> Вот он хочет поюзать 64-битные регистры... А тут 32-битная
> ось ушла в ядро по прерыванию таймера (многозадачность ей
> надо обеспечивать, однако)... Контекст процесса ей надо
> сохранить? Надо. А она нюхом не знает про 64-битные
> регистры и сохранит их как 32-битные... Потом, когда
> контекст процесса восстановится, приложение с хрустом
> упадёт ;-)

Под ДОСом тоже такое могло быть, если програмка, висящая на прерывании могла попортить регистры (ПсевдоМногоЗадачность). Но если она (в ДОСе или сама ОС если она Виндовс) при переключении на нее контекста сохранит то, что будет портить (младшую часть), а потом восстановит (старшая чать останется неизменной, поскольку никто не знает о ее существовании), то ничего страшного не произойдет.
В конце концов можно заплатку на ОС накатить, которая правильно регистры сохраняет, если процессор соответствующий. Можно больше в ОСи ничего не трогать.
<beginners>
Win98/2k/XP + Athlon 64 14.06.04 08:59  
Автор: Leon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Подскажите чайнику: возможно ли под Win98/2K/XP исполнение кода, использующего 64-битные регистры и инструкции для Athlon 64 или для этого нужна 64-битная ось?
А я под 16 разрядным ДОСом запускаю 32 разрядные программы,... 15.06.04 12:03  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.06.04 12:04  Количество правок: 1
<"чистая" ссылка>
> Подскажите чайнику: возможно ли под Win98/2K/XP исполнение
> кода, использующего 64-битные регистры и инструкции для
> Athlon 64 или для этого нужна 64-битная ось?
А я под 16 разрядным ДОСом запускаю 32 разрядные программы, (был бы Атлон-64, думаю, что и 64 разрядная програмка работала бы) - полагаю можно и под 16 разрядными и под 32 разрядными запускать 64 разрядные приложения. ОС то тут при чем? Разве что коллизии возможны между двумя одновременно работающими 64 разрядными программами.
Тут в другом вопрос... 15.06.04 12:34  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> > Подскажите чайнику: возможно ли под Win98/2K/XP
> исполнение
> > кода, использующего 64-битные регистры и инструкции
> для
> > Athlon 64 или для этого нужна 64-битная ось?
А компилер/ассемблер у него есть 64-битный?
А как он собирается "запихать" 64-битные инструкции в PE32?

> А я под 16 разрядным ДОСом запускаю 32 разрядные программы,
Ага... Да только они используют какой-нибудь DOS-Extender, который сам по себе маленькая OS :) И этот Extender загоняет бедную DOS в виртуальную машину, и использует хитрые трюки для использования функций DOS из 32-битного кода.

> (был бы Атлон-64, думаю, что и 64 разрядная програмка
> работала бы) - полагаю можно и под 16 разрядными и под 32
> разрядными запускать 64 разрядные приложения. ОС то тут при
> чем? Разве что коллизии возможны между двумя одновременно
> работающими 64 разрядными программами.
Вот он хочет поюзать 64-битные регистры... А тут 32-битная ось ушла в ядро по прерыванию таймера (многозадачность ей надо обеспечивать, однако)... Контекст процесса ей надо сохранить? Надо. А она нюхом не знает про 64-битные регистры и сохранит их как 32-битные... Потом, когда контекст процесса восстановится, приложение с хрустом упадёт ;-)
А может человек без мнемокода обойтись хочет: "db ...". 15.06.04 13:34  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.06.04 13:35  Количество правок: 1
<"чистая" ссылка>
> А компилер/ассемблер у него есть 64-битный?
> А как он собирается "запихать" 64-битные инструкции в PE32?

А может человек без мнемокода обойтись хочет: "db ...".

> > А я под 16 разрядным ДОСом запускаю 32 разрядные
> программы,
> Ага... Да только они используют какой-нибудь DOS-Extender,
> который сам по себе маленькая OS :) И этот Extender
> загоняет бедную DOS в виртуальную машину, и использует
> хитрые трюки для использования функций DOS из 32-битного
> кода.

Когда надо, с экстендером, а раньше бывало под обычным "голым" ДОСом. Причем 32 битные регистры прекрасно задействовались и под старым BCv3.1 без всяких екстендеров. Вот с памятью было потяжелее, но были варианты - как с himem и emm, так и без них (в реальном режиме). Так что если автор будет юзать верхнюю память (за пределами 4 гигабайт), то тяжело придется.

> Вот он хочет поюзать 64-битные регистры... А тут 32-битная
> ось ушла в ядро по прерыванию таймера (многозадачность ей
> надо обеспечивать, однако)... Контекст процесса ей надо
> сохранить? Надо. А она нюхом не знает про 64-битные
> регистры и сохранит их как 32-битные... Потом, когда
> контекст процесса восстановится, приложение с хрустом
> упадёт ;-)

Под ДОСом тоже такое могло быть, если програмка, висящая на прерывании могла попортить регистры (ПсевдоМногоЗадачность). Но если она (в ДОСе или сама ОС если она Виндовс) при переключении на нее контекста сохранит то, что будет портить (младшую часть), а потом восстановит (старшая чать останется неизменной, поскольку никто не знает о ее существовании), то ничего страшного не произойдет.
В конце концов можно заплатку на ОС накатить, которая правильно регистры сохраняет, если процессор соответствующий. Можно больше в ОСи ничего не трогать.
Ну это понятно всё... Заплатку на ядро винды, значит? ;-) Гемора слишком много и автор корневого поста (IMHO), уже присматривается к XP 64-bit edition ;-) 15.06.04 13:44  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 15.06.04 13:49  Количество правок: 1
<"чистая" ссылка>
А помните, как в M$ решали эту траблу (запуск 32-битных приложений) на Windows 3.11? Они прикрутили к ней целую subsystem... Так что не всё так просто, IMHO.
Похоже это тот же ХР, только уже с патчем под новые 64 битные процессоры. 15.06.04 14:09  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.06.04 14:11  Количество правок: 3
<"чистая" ссылка>
> А помните, как в M$ решали эту траблу (запуск 32-битных
> приложений) на Windows 3.11? Они прикрутили к ней целую
> subsystem... Так что не всё так просто, IMHO.
Хорошо помню, только проблему это не рашало - все глючило, быстро появились Вин95 более проработанные. Посему для Вин32 было мало чего написано 32 битного (Кроме ФриЦел), а все больше для 95 и все это не работало под Вин3.11/32.
Не знаю все потраха Вин32, но Вин3.11 были всего лишь графической надстройкой над ДОСом. Т.е. для вв/выв они все равно ДОС дергали. А иначе никак - небыло у них ни своей поддержки ФАТ, ни контроллеров... Посему проблематично было большие и далеко в адресном пространстве расположенные куски памяти в файлы скидывать, например.
Вообще-то вин95 - это тоже надстройка над ДОСом. 15.06.04 19:24  
Автор: Еретик Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Да, там много чего поменялось, но ядро Вин32(такое же как в 3.11) осталось в целости и сохранности.
В свое время была одна замечательная книжка по этому поводу с анализом ассемблерного кода.
За давностью лет я уже особо не помню, что поменялось в Вин95, кроме ГУИ.

Новая ОС - это линия НТ-ХР. Но ей, между прочим, уже пятнадцать лет минул.р
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach