Передача управления
DOS Функция 4Bh - выполнить или загрузить программу - EXEC
И файловой системы тожа не наблюдается...пока, по крайней мере...
С *.exe все гораздо сложнее. Почитай формат файла, и поймешь, что это дохлое дело.
Про виндовые exe'шники я даже не заикаюсь.
Благодарю, очень полезно было...ещё спрошу- не знаете ли вы компиляторов С, которые компилят в 2-чный код и ассемблеров, которые делают тоже, кроме nasm'a(имеется в виду, которые более схожим синтаксисом с tasm'ом)?
Все компиляторы это делают. Но код всех не будет работать без ОС для которой преднозначен.
Можно на любых C'ях выбрать можель памяти TINY, потом сконвертить с помощью EXE2COM
А как запускать COM'ы я уже рассказал.
exe2com, или exe2bin у меня нету, но надо поискать...
Что ж, спасибо за внимание.
Например по принципу MCB блоков в ДОСе...
Потом обеспечить загрузку туда программ...
С exe не такие уж и большие проблеммы,
Надо просто корректно обработать таблицу перемещения сегментов...
И размещения либо в один блок либо в несколько, в зависимости от модели памяти...
Если будут вопросы со структурой MCB обращайся...
Один из вариантов, это позаимствовать command.com из доса...
А загрузчик например взять свой...
Holly (hollyblood@tut.by)
Я так понял - ты хочешь загрузчик написать
чтобы он загружал ядро ОС. Так вот
без ДОСа подразумевается что после твоего
куска кода все адресное пространство свободно
Так вот читаешь через int 13h n-ое кол-во
секторов (самому придумать можно как это сделать- например в досе делается так, ядро
системы файл io.sys находится в корневом каталоге и стоит самый первый в этой цепочке
ну и в загрузчике просто запрограмено с какого сектора начинать читать), потом просто
командой jmp esdx например передает управление и все (в es-сегмент, в dx - смещение (чаще всего нулевое)) вот и все
Если хочешь исходников или подробное объяснение пиши
С Уважением ко всем программерам Acid JAM
mailto [EMAIL]jamk@mail.ru[/EMAIL]
[ Это Сообщение было отредактировано AcidJAM в 2001-11-05 0856 ]
Может быть тебе набо просто в твоем IDE поправить размеры памяти, по автомату выделяемые твоей программе?
А можно эту феню проворнуть на Паскале с использованием ассемблера?
На Прологе никто еще не додумался написать осю
Цитата:
On 2001-12-12 1818, SaultDog wrote
а вот интересно ...
На Прологе никто еще не додумался написать осю
Я додумался, на Пасе, с использованием асма. На не знаю как!!!!!!!!!!!!!!!!!!!
[ Это Сообщение было отредактировано Fopfop в 2001-12-15 0043 ]
далее грузит его по некоторому адресу и передает управление на seg0000.Обрабатывает ошибки ввода вывода от дисковода.
Требования к ядру
1) Размер <= 64kb.
2) Ядро может быть любым по счету элементом каталога.
3) Ядро может быть фрагментировано.
Продам исходник,плюс утилиту для закатывания в BOOT sector.
email [EMAIL]htmme@yandex.ru[/EMAIL]
Muromrc ..
Все очень просто - читай мое сообщение "Разрабатываю ОС"
Цитата:
On 2001-08-24 1612, Therion wrote
Господа, хочу помощи мне недавно потребовалось написать маленькую программку, которая просто загружала бы в память и передавала управление любой другой программе...И всё бы ничего но меня сильно ограничивает размер, а как следствие- нужно использовать ассемблер...подскажите, как это сделать в асме, а?
Лучше всего скачать techhelp (tech.zip) с какого-нибудь http//www.filesearch.ru.
Там три способазалезть в память выше 1 M под DOS
использовать int66 -для himem.sys
int29 для emm386
и int29 c параметрами - для работы в Protected mode средствами DOSa
А можно и напрямую в PM- но это сложнее.