OS Menuet
 Новости
 Описание
 Текущая версия
 История
 Скриншоты

Скачать
 OS Menuet
 Дистрибутивы
 Загрузчики
 Русификация
 Программы
 Разное

Документация
 Статьи
 FAQ
 Hardware List
 Рассылки

О нашем сайте
 Публикация
 Конкурс
 Форум
 Старый форум
 Тестовые форумы

Ссылки
 О Menuet
 Другие OS
 Программисту

Официальный сайт/Official site MenuetOS>>



Rambler's Top100
Каталог "ПИНГВИН" - чуткий и душевный каталог!
П Р И Л О Ж Е Н И Я    В    П А М Я Т И

0x90000 - Сюда загружается файл

Заголовок файла

+0 -24 db 'MENUET00' ; 8 byte id
+8 -20 dd 38 ; required os (место загрузки в память)
+12 -16 dd START ; program start (смещение START)
+16 -12 dd I_END ; program image end (смещение I_END)
+20 -8 dd 0x100000 ; reguired amount of memory
+24 -4 dd 0x00000000 ; reserved=no extended header

+28 -0 START:

     Стартовая область програм начинается с 0x800000 С адреса 0xfb00 область в 256 байт ответственная каждым байтом за запущеный процесс, вход в область начинается с 8 (Почему так не знаю)
     Если имеем два процесса запущенных в системе один за другим, то:

0xfb08 01 (Указывает что процесс уже занимает область памяти c 0x800000)
0xfb09 01 (Указывает что процесс уже занимает область памяти c 0x800000+0x100000)
0xfb0a 00 Область памяти 0x800000+0x200000 свободна

     Нетрудно догадаться что на каждый процесс отводится по 1 Мб памяти начиная с области 0x800000, т.е. 8Мб, при достижении 27Мб новые процессы в системе запускаться не будут ;-(
     Таким образом всего (27-8)= 19 процессов максимум
     Задача грузится в область памяти вместе с заголовком поэтому простой способ получить доступ к абсолютному адресу загрузки - mov eax, START-20
Наверх / Up mailto:Webmaster
Хостинг от uCoz