Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Вот недавно закончил такую тему. Осваивал защищенный режим. Ассемблер это конечно сила, но это сила обратно пропорциональна количеству строк кода. Как только это количество начинает зашкаливать за 2-5 тыс. - все. Начинается каша. Так вот. Захотелось мне писать под защищенный режим на С или С++. недолго думая принялся за расширитель к VC .NET. И вот наконец-то появилась рабочая версия.
Создается новый проект, настраивается, к нему добавляется модуль на ASMе, который реализует переключение в PM и возврат из него. Все. Дальше все компилиться и вуаля. На выходе имеем DOS приложение, готовое работать с защищенным режимом.
Однако не так уж все безоблачно. Есть 2 неудобные веши.
1) компиляция. Компилить приходится MASMом 6.11, кроме этого ничего не нашел.
2) организация сегментов в Windows. Они там все с базой 0 и лимитом 4Г, а защита в ВИНДАХ на уровне страниц.

Вот теперь возникает 2 вопроса.
1) У меня в проекте VC настроена генерация ассемблерных листингов. Потом эти листинги подрабатываются (совсем немного) под MASM 6.11 и компиляться им. Вопрос такой. У меня XP SP2 и masm под ней неидет (ни ml.exe ни masm.exe). Народ подскажите, как заставить его работать. Или посоветуйте другой ассемблер, который понимает выходные листинги VC .NET и компилит под ДОС (это самое главное!!!).
2) Как быть с сегментацией. Я допустим, не хочу защиту только на уровне страниц. Я хочу защиту на уровне сегментов! Но VC этого явно не хочет. Если я делаю для разных сегментов разные базы - все!!! Трындец!!! VC генерит исходный код, который работает только в flat модели!!! Что делать!!!



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
каким местом соединяются
newgeneral писал(а):
VC .NET
и защищенный режим процессора и ассемблер???


newgeneral писал(а):
который понимает выходные листинги VC .NET и компилит под ДОС

Ты я надеюсь не на VC++ .NET пытаешся писать? А то ведь на выходе у тебя не ASM будет, а IL!
И вообще по теме асма есть очень хороший сайт. www.wasm.ru .

Вопрос еще один вылез. А зачем тебе вообще все это надо!??? Если ты в Windows работаеш, а не в ДОС?


 

Цитата:
И вообще по теме асма есть очень хороший сайт. www.wasm.ru .


был хороший сайт. А теперь нету!

Еще раз идея. На ASMе пишется только ядро. Все остальное на С. Зачем мне это надо - это долгая история. Надо.

Цитата:
Ты я надеюсь не на VC++ .NET пытаешся писать? А то ведь на выходе у тебя не ASM будет, а IL!


Хорошо технология .NET тут непрчем. Просто я пишу на C, далее VC выдает листинг ассемблера и его я подлинковываю к ядру написанному на ASMе.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
newgeneral писал(а):
был хороший сайт. А теперь нету!

Во блин! Точно накрылся :(

newgeneral писал(а):
Хорошо технология .NET тут непрчем. Просто я пишу на C, далее VC выдает листинг ассемблера и его я подлинковываю к ядру написанному на ASMе.

Ну теперь более менее понятно.

newgeneral писал(а):
VC генерит исходный код, который работает только в flat модели!!! Что делать!!!

Боюсь, что тут только чистый асм тебе и поможет. Я так понимаю, что VC тебе нуден, чтобы не маятся фигней потсоянно на АСМЕ делаю простые вещи слишком сложными. Тогда сделай так. Основные вещи напиши на VC. Тоесть грубо говоря процедуры, а весь остальной рабочий код уже пиши на АСМ.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
Потом эти листинги подрабатываются (совсем немного) под MASM 6.11 и компиляться им.

у меня работает. Но у меня версия MASM32 8.2. Да и какой-то ML был в самом пакете VCPP...
Цитата:
Трындец!!! VC генерит исходный код, который работает только в flat модели!!!

ага. В винде действительно flat модель юзается.

Варианты выхода из ситуации - юзать компилеры из пакетов Watcom C и DJGPP. К обоим есть удобная среда разработки, но не гуевая. Почему я о них говорю? А к ним сразу нормальные экстендеры прилагаются и описалово как писать проги под них... Т.е. пишете Сишный код. В настройках среды/компилера/линкера указываете - под защищенный режим, юзать экстендер и все автоматом делается. Никаких извращений и написаний своих асмовых модулей.
Другое дело, что таким образом Вы ограничиваетесь возможностями и недостатками юзаемый там экстендеров, но ASM там тоже поддерживается ;)

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Ray Adams
Так и придется делать. Спасибо за совет.

Root
Цитата:
у меня работает. Но у меня версия MASM32 8.2. Да и какой-то ML был в самом пакете VCPP...

Я же написал. MASM должен код под дос генерить. А MASM32 этого уже делать не умеет. Так бы я не парился, так как и ml и link есть в VC. Про Watcom я тоже думал, но пока руки не доходили. Но вот экстендеров я точно не желаю юзать! Мне нужно свое ядро. Но всеравно за совет спасибо.


 

Member
Статус: Не в сети
Регистрация: 29.10.2003
Откуда: 埼玉、日本
Фото: 9
newgeneral
Зачем вообще на Ассмблере пишете? У нас вот софт для микроконтроллеров иногда даже на Бейсике пишут :). Я предпочитаю С либо C++. Думаю, что при желании можно написать на С не менее эффективный код чем на ассемблере. Всё зависит от компилятора. А в ассемблере неужели вы уверены что напишете лучше код, чем генерится Сшным оптимизирующим компилятором? А что под ДОСом, то почему бы не использовать MSC 5.0 или какая там версия под ДОС последняя?


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan