Писанина своей ос
З.Ы.Сиснтаксис FASM
ОС не псевдомногозадачна?
Нет.Просто для обучения простейшая ОСЬ
Еще есть вопрос:Прочитал в литеретуре что можно объявить в исходном тексте на ассемблере процедуру на си,и вызвать её с параметрами в стеке.А как ету процедуру объявлять,как её компилировать (она же на си???),про это не нашёл...Может кто подскажет как её объявлять,вызывать и как (чем) её компилить?
Цитата: ASMCoder
Пишу свою ос RealMode,из за желания получше изучить ассемблер.Пока есть BOOTloader ,своя простейшая ФС,Как-бы командная строка.Вопрос:Как осуществить выполнение процесса и возврат в ОС (*.exe,*.com) и как работают резидентные программы в реальном режиме?
З.Ы.Сиснтаксис FASM
З.Ы.Сиснтаксис FASM
Тут все прочитано?
http://www.codenet.ru/progr/os/
про взаимодействие СИ и ассемблера можно, например, тут посмотреть:
http://www.opennet.ru/base/dev/from_c_to_asm.txt.html
не проще ли было бы скомпилировать Си код в библиотеку и потом прилинковать, как все остальные библиотеки? или не линковать, а использовать GetProcAddres.
Цитата: Alm3n
P*t*
не проще ли было бы скомпилировать Си код в библиотеку и потом прилинковать, как все остальные библиотеки? или не линковать, а использовать GetProcAddres.
не проще ли было бы скомпилировать Си код в библиотеку и потом прилинковать, как все остальные библиотеки? или не линковать, а использовать GetProcAddres.
Ммм... Не знаю. Я написал, как сам делал в аналогичном случае. Про свой способ точно знаю, что он работает. И могу код привести.
Разве что у меня в 32-битном режиме работает, а 16-битный для real mode GCC вроде как не умеет компилить (года 4 назад я тут задавал глупые вопросы на эту тему ;) ). Можно попробовать использовать bcc.
свою процедуру или из стандартной библиотеки?
так
Выясняем чем отличается компиляция от линковки.
А для 16 бит есть и DJGPP ко всему прочему.
PS: И не забудьте, чтобы объектники которые вы пытаетесь линковать имели одинаковый формат.
Не пугайте
Выясняем чем отличается компиляция от линковки.
А для 16 бит есть и DJGPP ко всему прочему.
PS: И не забудьте, чтобы объектники которые вы пытаетесь линковать имели одинаковый формат.