Ну вы, ребята, блин, даёте!!! Я в шоке с ваших постов!
scuter писал(а):
то есть память крепит BIOS, переадресацию тоже он делает
BIOS ничего не крепит и не переадресует. BIOS - это программа в ПЗУ, которая при старте компа конфигурирует чипсет так, чтобы отобразить имеющиеся модули памяти в физическое адресное пространство процессора.
scuter писал(а):
только вот как он это делает
Как он это делает, совершенно не важно. Это его внутреннее дело.
scuter писал(а):
и как определить реальную память процессора
Процессор не обладает
независимой памятью. Он обладает только несколькими уровнями кэша, цель которых - ускорить работу с внешней памятью. Этот кэш программно никак адресоваться не может.
Как определить память
системы, я уже дал ссылку. Имеющий глаза да увидит:
http://wiki.osdev.org/Detecting_Memory_(x86)scuter писал(а):
у процессора есть своя память, но когда записываю данные в адрес "12345678h"
получается записываю в оперативную память или тоже самое с VESA LFB.
Забудь про
память процессора. Когда ты пишешь по адресу 12345678h, ты пишешь в то устройство, которое отображено на этот физический адрес. Это может быть оперативная память, регистры или память внешних устройств, ПЗУ какого-нибудь BIOSа или пустое место. Наугад, конечно, писать нельзя.
scuter писал(а):
и хотелось бы переместить это дело в какое нибудь другое место, если уж эта память предназначена не для работы CPU
Перемещать ничего нельзя. Но если ты переведёшь процессор в защищённый режим, ты можешь использовать виртуальную память, тогда любую страницу
физического адресного пространства ты можешь отобразить на нужный тебе
логический адрес. То есть, в защищённом режиме ты можешь организовать логическое (виртуальное) адресное пространство, как тебе удобно.
scuter писал(а):
и присудствующий там код совершенно не предназначен для выполнения в CPU на много разумней будет переместить всё это дело в HMA или UMB
Забудь про HMA и UMB. Это понятия организации памяти внутри операционной системы DOS. Если ты пишешь ОС сам, никаких HMA и UMB не существует.
iz56 писал(а):
Как сказать, пример из жизни. У меня есть программа работающая в нереальном режиме. Это текстовый редактор , при работе загружаю текст в память начиная с первого метра. Пробовал грузить 700 метров - всё нормально.
Ни разу не встречал систем с дыркой на 16-м мегабайте? А систем с 512МБ или меньше ОЗУ? Я встречал.
scuter писал(а):
а если я заполню программами все 4гб и заставлю всё это работать процессор лопнет или оперативка с видеокартой начнёт обрабатывать код вместо процессора???
В бутылку объёмом пол-литра нельзя налить 10 литров воды.
scuter писал(а):
или когда я делаю far call [0008:12345678] это у меня оперативка код обрабатывает.
Оперативка ничего обрабатывать не умеет!!! Оперативка только хранит код и данные для процессора.
far call по этому адресу заставит процессор начать выполнять последовательность инструкций, начиная с указанного адреса.
Станислав писал(а):
спроси у биоса скока памяти и забивай её до того как.
Всё это должно быть за пределами объёма оперативки, внутри неё дыр не должно быть, хотя не факт, но пока это не важно.
Станислав,
повторяю, ты жестоко ошибаешься!