![]() |
|
|
![]()
|
|
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
вот нашел у себя исходник проги кот освобождает от ограничения в 1М памяти в досе,
вроде до 4Г, но вот беда не компилятся ни на одном компиляторе (да я и не умею) тот что их написал шарит в процессорах, и это было доступно еще с первого пня! вот сам архив а ниже код из 4gb.asm
это будет работать? если у кого работает скинте мне скомпилированый файл -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Chingachguk |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Эта хрень называется "нереальный режим". Достигается переходом из RealMode в Protected Mode с загрузкой во все сегментные регистры селектора на дескриптор, описывающий память от 0 до 4Гбайт. Про это можно почитать в книге Зубкова С.В.
Все, что тебе нужно - это чтобы выполнился вот этот кусок:
Да пожалуй и линию A20 открыть нужно:
Оформи его как отдельный com-файл и запусти. Только работать это будет в чистом досе (в Real Mode) - например, в загруженном в autoexec.bat-е под 98-ми Нортоне или Волкове. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Спасибо Chingachguk !!! буду пробовать
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Chingachguk |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Значит, так: код вынесен в файл far_addr.asm:
Компилляция:
После компилляции создается файло FAR_ADDR.COM размером 126 байт (может меняться в зависимости от компиллятора). У меня такие: tasm > tasm.inf, tasm.inf:
tlink > tlink.inf, tlink.inf:
Несмотря на то, что все это будет работать (вроде), памяти для навигатора не увеличиться ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||||
|
|||||||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Спасибо Chingachguk
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Толк будет только для специального кода: смотри, парень же пишет:
В обычном Real-режиме или же в V86 в настоящем PE-моде (EMM под дос или же дос-окно в win) команды адресуют данные/код в пределах сегмента, те допускается: mov al,DS:[0] mov al,DS:[1] ... mov al,DS:[0FFFFh] но не допускается более чем 0FFFFh: mov al,DS:[10000h] - нельзя. Также нельзя адресовать данные за пределом 1-го мегабайта, те: Mov EDI, 1024*1024+65536 ; 1st byte we can use freely ; Mov BL, Byte Ptr ES:[EDI] ; read byte Адрес, задаваемый ES:EDI лежит за пределами 1-го Мегабайта (чего в Real Mode невозможно делать) и команда не выполниться. Однако после такого переключения (собственно, код выше) такие команды начнут работать и можно будет, например, читать регион 4-го, 8-го... мегабайта. Однако практически все, если не все приложения типа vc, nc, dos, dn... не расчитывают на то, что процессор кто-то "передернет" таким вот образом и станет возможным доступ к верхней (>=1МБайт) памяти. Более того, нельзя будет выделить память в верхней памяти ни через дос, ни другим способом, поскольку дос ориентируется на 1Мегабайт или даже меньше (смотри UMB-блоки). Win также эмулирует выполнение дос-программ в V86-задаче таким же способом. Таким образом, единственным практическим использованием этой особенности процессора (называется "Unreal mode") может быть самопальный доступ к верхней памяти - на свой страх и риск, со своей стратегией размещения данных и проч. Скажем, в чистом досе (без HIMEM и тем более EMM) можно безболезненно юзать себе 10-20 мегабайт - например, для программ бортовых компьютеров, которым нафиг не нужны все эти обкладки типа win или dos-extender'ов. Или же вирус может смело разместить свой код в 3-м мегабайте и никто его там не найдет. Обычно же для использования верхней памяти используются так называемые дос-расширители (dos-extender) типа XMS, EMM, DPMI и проч. Многие игры типа duke, doom, descent... именно так и были сделаны и они прекрасно работают как под дос, самостоятельно используя верхнюю память, так и под windows, поскольку win поддерживает интерфейс DPMI и ничего не конфликует. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |