Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2016, 17:27   #1
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию Вопрос по разработке ОС

У меня такой вопрос по разработке ОС, я сделал вот такой мини-загрузчик
Код:
	org 7C00h	    ; загружаемся по адресу 7C00h
	mov ah,2	    ;\
	mov dl,0	    ; \
	mov ch,0	    ;  \
	mov cl,2	    ;   >Загружаем с 2-8 секторы дискеты по адресу 100h
	mov al,7	    ;  /
	mov bx,100h  ; /
	int 13h          ;/
	jmp 100h	    ;прыгаем на них
	rb 492           ;резервируем байты
	dw 55AAh	    ;Сигнатура загрузочного сектора
И к этому коду я хочу приделать Сишное ядро (понимаю что на никакие stdio.h sdtlib.h math.h можно не рассчитывать) размером 7 секторов, а как это сделать я не знаю, пожалуйста, помогите мне (компилятор gcc (SUSE Linux) 4.8.5)
timcryt вне форума Ответить с цитированием
Старый 29.02.2016, 18:16   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthread.php?t=25012
посмотрите тут.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.02.2016, 18:31   #3
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

В статье код на NASM и режим защищённый, у меня же код на FASM и режим реальный, поэтому эта статья не подходит.
timcryt вне форума Ответить с цитированием
Старый 29.02.2016, 18:36   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Вам просто усидчивости нехватает. Для загрузки ядра вам надо написать 50 функций. Будем считать что 1 вы сделали, осталось дописать 49 функций.

Загрузка BR
Чтение бинарного файла из корня.
Разбоо Fat.
Определение памяти.
Переход в защищённый режии.
Чтение образа ядра.
Поиск магической отметки.
Итп.

Или есть более лёгкий путь. Использовать grub и спецификацию multyboot как тут: http://wiki.osdev.org/C%2B%2B_Bare_Bones
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 29.02.2016, 18:41   #5
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

С GRUB только тяжелее (по крайней мере для моей ОС(если что моя ОС это просто Форт консоль)) и тем более мне большая часть из этих 50 функций не нужна и, если что она работает в реальном режиме
timcryt вне форума Ответить с цитированием
Старый 29.02.2016, 18:49   #6
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Мне нужна простенькая прогрграмма на Си, никагого защищённого режима, доступа к файловым системам и жёстким дискам и прочих благ цивилизации мне не нужно
timcryt вне форума Ответить с цитированием
Старый 29.02.2016, 18:50   #7
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от timcryt Посмотреть сообщение
..а как это сделать я не знаю
Что именно сделать: написать ядро или передать ему управление?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 29.02.2016, 18:52   #8
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Нужно сделать ядро так чтобы оно приняло управление, передал управление мини-загрузчик оп адресу 100h, куда загрузились со 2-го по 8-ой сектора дискеты (на них должна быть программа на Си), но как сделать так чтобы она начала работать я не знаю

Последний раз редактировалось timcryt; 29.02.2016 в 18:59.
timcryt вне форума Ответить с цитированием
Старый 29.02.2016, 19:11   #9
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от timcryt Посмотреть сообщение
Мне нужна простенькая прогрграмма на Си, никагого защищённого режима, доступа к файловым системам и жёстким дискам и прочих благ цивилизации мне не нужно
GCC не генерирует 16 битный код. Меняйте компилятор на Mircosoft Visual Си 1.0
или Borland C++ 5.0 (или 3.0)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 29.02.2016, 19:16   #10
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Хорошо, а что нужно чтобы всё-таки приделать эту программу к ассемблерному файлу и что в ней надо писать, чтобы соединение прошло успешно?

Последний раз редактировалось timcryt; 29.02.2016 в 19:32.
timcryt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в разработке! Шибанов Антон Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 20.05.2015 12:11
Предложение по разработке российской ОС VAST Свободное общение 39 12.05.2010 08:41
Проблемы при разработке Ivan_32 Свободное общение 8 13.04.2010 12:45
помогите в разработке shkipper Общие вопросы по Java, Java SE, Kotlin 5 08.04.2009 02:32