Взял курсовую по работе с виртуальной памятью с помощью ассемблера. Хочу изучить архитектуру памяти углублённо. Особенно интересует доступ в адресное пространство BIOS. Не нашёл подходящей литературы. Более-менее пространство BIOS описано в книге Абеля, но он описывает работу в DOS, а мне необходимо 32-х, а лучше 64-х разрядные системы. Можете посоветовать какую-нибудь литературу на эту тему? Английская тоже подойдёт.
Русский выучи сначала. Скачай даташит на любой интеловский северной мост. Только вам рано читать такую литературу. Вам надо что-то вроде книги x86 для чайников. Думаю Кип Р. Ирвин - Язык Ассемблера для процессоров Intel (последнее издание) Зубков ассемблер для DOS, Windows и Unix. А также книги по реверсу биоса. А да система памяти ещё у Криса описана.
Pavia У меня заедает клавиатуру, так что пару символов, случается, пропускаю. Проглядел, исправил, каюсь. За литературу спасибо. Ирвин и Зубков описывают, по большей части, то, чего и в других книгах навалом, а вот остальные советы помогли.
за полдня успели прочитать Ирвина, зубкова, и "книги по реверсу биоса", и определить что помогло? что-то в этом супе не так...
БИОС не работает ни с виртуальной памятью, ни с 32-мя и 64-мя разрядами - ему это не нужно. Ну правда для поиска устройств на PCI-шине и тестировании памяти наверно использует flat-модель, но не больше. Работа с 32 битами начинается в загрузчике, а виртуальная память нужна только в ОС. Вы для начала все-таки наведите порядок в базовых знаниях и только потом ройте вглубь...
valterg А разве я говорил, что биос работает с виртуальной памятью? Я говорил, что адрес биос отображается на адресное пространство. В 32-х разрядной, как выяснятся, он отображается сразу на два диапазона.
valterg Больше-больше. Изрядная часть кода BIOS работает именно в 32-разрядном режиме (в 64-разрядном -- вряд ли, но не исключено), иначе он просто не сможет "дотянуться" до регистров различных внешних устройств, им же отображённых на память. Кроме того, 32-разрядным является код режима SMM. В общем, хватает в БИОСе 32-разрядного кода. Другое дело, что для пользователя этого кода как бы не существует, за небольшим исключением: основная масса интерфейсов-то 16-разрядные. А вот это абсолютно точно сказано. Грубо говоря, не выучив хорошо правила четырёх арифметических операций, бесполезно пытаться вникнуть в интегральное и дифференциальное исчисление, но, к сожалению, такое сплошь и рядом...
Zlyden Последнее вы не говорили. А сказали, когда вас не поняли. Содержимое БИОС отображается для совместимости по-моему. А возможно вообще в Винде не реальный БИОС, а БИОС для ntvdm. Поэтому архитектура памяти и доступ в адресное пространство БИОС - это две БОЛЬШИЕ разницы А вы запутали всех. Начните излагать сначала и на понятном языке.