|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2017, 18:20 | #1 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Выделение памяти под приложение.
Здравствуйте, форумчане.
Начну с пояснения: Загружаюсь на чистом железе. Со старта загружается MBR, потом bootmgr (самописный), т.к. использую загрузочную NTFS. Далее в bootmgr идёт поиск elf файла на диске, найдя файл Program.com типа elf надо загрузить код в память. Вопрос как правильно всё организовать(код не прошу)? У меня была идея: Загрузить файл по адресу 0600h:0000h Считать описатель файла. В описателе найти с какого адреса начинается код, к примеру "CS:0100h" И загрузить его по адресу 0800h:0000h Также найти где данные(CS:0700h)и загрузить по адресу 0800h:0700h Стэк задавать стандартный SS=0500h;IP=0000h И затем передавать управление на 0800h:0000h. Но тут проблема, как быть с программами которые будут к примеру 100КБ или в диапазоне адресов 0100h:0000h - 7000h:FF00h? Можете подсказать в чём я ошибаюсь или как действовать примерно. Спасибо. |
08.12.2017, 19:53 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Сделать маленькую прогу, которая впишется в ограничения.
Эта прога в свою очередь загрузит и запустит все что нужно, хоть 100КБ, хоть 100МБ. По сути, загрузчики современных ОС так и работают. |
08.12.2017, 20:34 | #3 | |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Цитата:
Использовать call? Или класть в стэк адрес куда возвращаться и с помощью jmp far прыгать на адрес в стэке? |
|
10.12.2017, 21:42 | #4 | |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Цитата:
Почему в 0600h:0000h? Там нолик не лишний после 60 ? Стандартную программу ты не запустишь из boot-сектора, т.к. почти все проги используют DOS-функции (как минимум для выхода). Так что делай свою прогу, использующую только возможности BIOS и грузи её по фиксированному адресу и всё. Как загрузчик DOS грузит IO.SYS.
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
Последний раз редактировалось 7in; 10.12.2017 в 21:45. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выделение памяти под матрицу | yakimechik | Общие вопросы C/C++ | 1 | 22.01.2016 08:33 |
Выделение памяти под структуру. Си | Vitany | Помощь студентам | 0 | 05.12.2012 17:50 |
выделение памяти под объект | VIK_aka_TOR | Общие вопросы Delphi | 4 | 15.02.2012 19:20 |
Выделение памяти под массив указателей | Анка291 | Общие вопросы C/C++ | 9 | 25.02.2011 00:03 |
выделение памяти под массив на C | Kingdom_Reborn | Помощь студентам | 12 | 12.01.2011 04:40 |