OSDev http://osdev.su/ |
|
Определение размера памяти. http://osdev.su/viewtopic.php?f=6&t=422 |
Страница 1 из 1 |
Автор: | 418ImATeapot [ 31 май 2011, 17:23 ] |
Заголовок сообщения: | Определение размера памяти. |
Руддщ, Цщкдв! Хочу определить размер памяти через загрузчик в Unrealmode. Я знаю, что для этого есть какие-то функции BIOS, но они ведь нестандартные. Нашел на wasm.ru пример и переделал его под свои нужды: Код: memscan:;в FS Unreal-mode сегмент mov edx,10000h xor bx,bx .lop: mov byte al,[fs:edx] inc al mov byte [fs:edx],al mov byte ah,[fs:edx] cmp al,ah jne .hole dec al mov byte [fs:edx],al inc bx .hole: add edx,10000h and edx,edx jnz .lop mov word [ds:memsize],bx ret Проверяю в QEMU. Ставлю -m 16. Он мне выдает 17Ah. Полез напрямую в память, в BX - то же самое! Ставлю -m 8 - выдает 0FAh. То есть разница всегда 7Ah! Подскажите пожалуйста, это какие-то служебные участки? Спасибо. |
Автор: | SII [ 31 май 2011, 17:57 ] |
Заголовок сообщения: | Re: Определение размера памяти. |
Почитайте нашу вику, там про определение памяти написано. |
Автор: | 418ImATeapot [ 31 май 2011, 20:16 ] |
Заголовок сообщения: | Re: Определение размера памяти. |
В вике три правила и сто одно исключение :-(. Но в принципе это не важно. Скажите пожалуйста, а использовать эту лишнюю память не опасно? В смысле, не вызовет какую-нибудь гадость типа SMM после записи? (всякие ACPI пока подождут). Спасибо. |
Автор: | pavia [ 31 май 2011, 20:38 ] |
Заголовок сообщения: | Re: Определение размера памяти. |
Всё-таки совет использовать. Функцию E820h прерывания INT 15h В вике описано. Стандартов как вы заметили нет. Но есть спецификации принятые мировыми гигантами. И их можно считать стандартом. Одной из таких спецификаций является ACPI и там эта функция описана. Цитата: Скажите пожалуйста, а использовать эту лишнюю память не опасно? В смысле, не вызовет какую-нибудь гадость типа SMM после записи? На коком нибудь RD8600 если тупо тыкать можно попасть на SMM. А у нормальных разработчиков SMM лежит в теневой области под видео буфером 0A0000h-0BFFFFh По поводу кода в 1 посте. Скорее всего вы попали на память устройств PCI или на порты PCI которые отображены в память. В вике про это сказано. Поэтому такой метод не годится. |
Автор: | 418ImATeapot [ 31 май 2011, 20:52 ] |
Заголовок сообщения: | Re: Определение размера памяти. |
Спасибо, что наставили на путь истинный! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |