Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача управления

934
24 августа 2001 года
Therion
5 / / 20.04.2000
Господа, хочу помощи: мне недавно потребовалось написать маленькую программку, которая просто загружала бы в память и передавала управление любой другой программе...И всё бы ничего но меня сильно ограничивает размер, а как следствие- нужно использовать ассемблер...подскажите, как это сделать в асме, а?
4
25 августа 2001 года
mike
3.7K / / 01.10.2002
DOS Функция 4Bh - выполнить или загрузить программу - EXEC

Описание тут
http//www.codenet.ru/progr/dos/dos_0078.php
934
26 августа 2001 года
Therion
5 / / 20.04.2000
Дык в том, вся и проблема что у меня имеется тока БИОС в наличии...Хе-хе... ((
И файловой системы тожа не наблюдается...пока, по крайней мере...
4
26 августа 2001 года
mike
3.7K / / 01.10.2002
Тогда тебе придется написать свой ДОС. *.com программы грузятся просто - надо загрузить ее в любой сегмент, подготовить все регистры и передать управление на XXXX0100.

С *.exe все гораздо сложнее. Почитай формат файла, и поймешь, что это дохлое дело.

Про виндовые exe'шники я даже не заикаюсь.
934
27 августа 2001 года
Therion
5 / / 20.04.2000
Благодарю вас...Эх, буду думать...Сложно так сложно...интересна, однако... )))
Благодарю, очень полезно было...ещё спрошу- не знаете ли вы компиляторов С, которые компилят в 2-чный код и ассемблеров, которые делают тоже, кроме nasm'a(имеется в виду, которые более схожим синтаксисом с tasm'ом)?
4
27 августа 2001 года
mike
3.7K / / 01.10.2002
Что значит компилят в двоичный код ???

Все компиляторы это делают. Но код всех не будет работать без ОС для которой преднозначен.

Можно на любых C'ях выбрать можель памяти TINY, потом сконвертить с помощью EXE2COM

А как запускать COM'ы я уже рассказал.
934
28 августа 2001 года
Therion
5 / / 20.04.2000
Двоичный имелось в виду, чтобы без заголовка exe-шного...
exe2com, или exe2bin у меня нету, но надо поискать...
Что ж, спасибо за внимание.
624
27 сентября 2001 года
HollyBlood
44 / / 20.06.2000
Сначала нужно размапить память...
Например по принципу MCB блоков в ДОСе...
Потом обеспечить загрузку туда программ...
С exe не такие уж и большие проблеммы,
Надо просто корректно обработать таблицу перемещения сегментов...
И размещения либо в один блок либо в несколько, в зависимости от модели памяти...

Если будут вопросы со структурой MCB обращайся...

Один из вариантов, это позаимствовать command.com из доса...
А загрузчик например взять свой...


Holly (hollyblood@tut.by)
555
05 ноября 2001 года
AcidJAM
25 / / 20.05.2000
Насчет передачи управления
Я так понял - ты хочешь загрузчик написать
чтобы он загружал ядро ОС. Так вот
без ДОСа подразумевается что после твоего
куска кода все адресное пространство свободно
Так вот читаешь через int 13h n-ое кол-во
секторов (самому придумать можно как это сделать- например в досе делается так, ядро
системы файл io.sys находится в корневом каталоге и стоит самый первый в этой цепочке
ну и в загрузчике просто запрограмено с какого сектора начинать читать), потом просто
командой jmp esdx например передает управление и все (в es-сегмент, в dx - смещение (чаще всего нулевое)) вот и все
Если хочешь исходников или подробное объяснение пиши

С Уважением ко всем программерам Acid JAM

mailto [EMAIL]jamk@mail.ru[/EMAIL]

[ Это Сообщение было отредактировано AcidJAM в 2001-11-05 0856 ]
Аноним
Слушай, а ты не глючишь?
Может быть тебе набо просто в твоем IDE поправить размеры памяти, по автомату выделяемые твоей программе?
849
07 декабря 2001 года
Fopfop
22 / / 20.07.2000
А можно эту феню проворнуть на Паскале с использованием ассемблера?
1.0K
12 декабря 2001 года
SaultDog
2 / / 20.02.2000
а вот интересно ...
На Прологе никто еще не додумался написать осю
849
14 декабря 2001 года
Fopfop
22 / / 20.07.2000
Цитата:

On 2001-12-12 1818, SaultDog wrote
а вот интересно ...
На Прологе никто еще не додумался написать осю

Я додумался, на Пасе, с использованием асма. На не знаю как!!!!!!!!!!!!!!!!!!!

[ Это Сообщение было отредактировано Fopfop в 2001-12-15 0043 ]

Аноним
Есть неплохой загрузчик ядра.Написан на ASMe.Ищет ядро в корневом каталоге диска А\
далее грузит его по некоторому адресу и передает управление на seg0000.Обрабатывает ошибки ввода вывода от дисковода.
Требования к ядру
1) Размер <= 64kb.
2) Ядро может быть любым по счету элементом каталога.
3) Ядро может быть фрагментировано.
Продам исходник,плюс утилиту для закатывания в BOOT sector.
email [EMAIL]htmme@yandex.ru[/EMAIL]
Muromrc ..
491
10 января 2002 года
SerGo
30 / / 20.12.1999
Все очень просто - читай мое сообщение &quot;Разрабатываю ОС&quot;
Аноним
Цитата:

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- но это сложнее.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог