Форум программистов, компьютерный форум, киберфорум
Наши страницы
ОС на Assembler
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
FrideakisAB
11 / 2 / 0
Регистрация: 17.04.2018
Сообщений: 20
#1

Загрузочный сектор. Не загружается InsydeH20

14.08.2018, 20:38. Просмотров 903. Ответов 8
Метки нет (Все метки)

Написал на FASM небольшой загрузочный сектор решил проверить, и он не загрузился, в BIOS видит флешку, на 1. USB в параметрах загрузки, вот код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
org 7C00h
use16
 
cli
mov ax, 0              
mov es, ax
mov ds, ax
mov ss, ax
mov sp, 7C00h
sti
 
mov ax, 0003h
int 10h
 
mov ax, 1301h
mov bp, stroka
mov dx, 0000h
mov cx, 15
mov bx, 000eh
int 10h
 
jmp $
 
stroka db 'Work!'
times 510 - ($ - $$) db 0
db 0x55,0xAA
Модель Toshiba NB510
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2018, 20:38
Ответы с готовыми решениями:

Загрузочный сектор
Здравствуйте! Компилирую (fasm) из данного кода бинарник и загружаю с него...

Пишем загрузочный сектор
Статья Пишем свой загрузочный сектор без указания автора найдена в разделе...

[NASM] Загрузочный сектор
Здравствуйте! Столкнулся с такой проблемой: самый простой бутлоадер работает не...

Загрузочный сектор на DVD-RW. Не происходит загрузки.
При отключении жесткого диска DVD-RW в биосе определяется как мастер. Или как...

Загрузочный сектор, редактирование через Debug
Снял с флешки 0 сектор, и загружаю его в debug n c:\1.bin L 7c00 ;загружаю u...

8
ОС
177 / 64 / 1
Регистрация: 21.07.2018
Сообщений: 74
Записей в блоге: 1
14.08.2018, 20:55 #2
UEFI?
Какая там основная система?
1
FrideakisAB
11 / 2 / 0
Регистрация: 17.04.2018
Сообщений: 20
14.08.2018, 21:11  [ТС] #3
ОС, по моему нет, её нету загрузка с флешки. Флешка полностью пуста, только загрузчик

Добавлено через 8 минут
ОС, нет не UEFI

Добавлено через 5 минут
До этого с флешки запускал Linux в руфусе с исправлением для старых Bios и он работал (без него нет), пытался найти по этому информацию но ничего не нашел
0
ОС
177 / 64 / 1
Регистрация: 21.07.2018
Сообщений: 74
Записей в блоге: 1
14.08.2018, 21:26 #4
Пусть тогда старейшины ответят.
Пока можно попробовать загрузить Ваш сектор из проверенного работающего загрузчика.
Чтобы успокоения, что с Вашим кодом проблем у BIOSа нет, а всё дело в непонимании старинным BIOSом формата флешки
1
shmkv
903 / 405 / 59
Регистрация: 21.07.2015
Сообщений: 1,090
14.08.2018, 23:07 #5
Я правильно понимаю, что сия поделка перетирает 0й сектор на флешке?
Чтобы BIOS вообще что-либо грузил:
1. На флешке должен быть валидный MBR.
2. В MBR должен быть как минимум 1 активный раздел (лучше с FAT32) в котором может быть прописан твой загрузчик - это два.
3. Нарушать структуру служебный полей FAT нельзя (перетирать загрузчиком).
Если флешка не удовлетворяет этим пунктам, то BIOS может ее вообще игнорировать. И 0x55,0xAA тебе не помогут.
Тебе нужен свой мини-инталлятор, который вычитает текущий boot-сектор активного раздела с флешки, сохранит служебные FAT-поля, пропишет твою поделку и восстановит служебные поля.

Добавлено через 12 минут
А вообще я советую сразу писать под uef и сразу под x64. Там все проще: можно создать на gcc исполняемый файл, скопировать на флешку и UEFI BIOS сможет передать ему управление. Все идет к тому, что разработчики BIOS'ов в скором времени откажутся от классической модели загрузки, а потом, возможно, и поддержки 16-ти битного режима адресации в процессорах не будет. Т. е. не сможешь ты похвастаться свой крутой ОС перед дружками с новыми компами: она у них просто не загрузится.
1
Black Fregat
2460 / 1254 / 339
Регистрация: 31.05.2009
Сообщений: 4,921
14.08.2018, 23:29 #6
С дискеты этот boot вполне успешно грузится.
1
Ethereal
Заблокирован
15.08.2018, 00:27 #7
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Цитата Сообщение от shmkv Посмотреть сообщение
2. В MBR должен быть как минимум 1 активный раздел (лучше с FAT32) в котором может быть прописан твой загрузчик - это два.
По идее вообще не дело BIOS-а смотетреть есть ли в MBR активный раздел и какая у него файловая система и есть ли загрузчик в активном разделе. А ну как я хочу загрузить операционку у которой вообще разделов нет и файловая система создателям BIOS неведомая. При варианте загрузки USB-HDD он должен просто подгрузить сектор, если у него на конце 55 AA и передать ему управление.

Закинул на флешку такое :
Код
	org	7C00h
	use16

	xor	ax, ax
	mov	ss, ax
	mov	sp, 7C00h
	mov	ds, ax

	mov	si, string
	cld
print:	lodsb
	test	al, al
	jz	$
	mov	ah, 0Eh
	int	10h
	jmp	print

string:	db	'I am booted', 0

	db	1FEh-$+$$ dup (0)

	db	55h, 0AAh
При варианте загрузки Hard Disk грузится, что и ожидалось.
При варианте загрузки CDROM зависает, что тоже ожидалось.
При варианте загрузки Auto грузится.
При варианте загрузки Floppy тоже строчку I am booted выдает.
При варианте загрузки Forced FDD выдает только I am и зависает, видимо тут играет роль то, что в начале сектора хлам вместо ожидаемых структур загрузочного сектора.
2
FrideakisAB
11 / 2 / 0
Регистрация: 17.04.2018
Сообщений: 20
15.08.2018, 08:55  [ТС] #8
Ethereal, да ты маг, оно заработало
1
shmkv
903 / 405 / 59
Регистрация: 21.07.2015
Сообщений: 1,090
15.08.2018, 10:56 #9
Цитата Сообщение от Black Fregat Посмотреть сообщение
С дискеты этот boot вполне успешно грузится.
Осталось только пройтись по ближайшим помойкам и найти USB FDD вместе с дискетам.

Добавлено через 2 минуты
Цитата Сообщение от Ethereal Посмотреть сообщение
о идее вообще не дело BIOS-а смотетреть есть ли в MBR активный раздел и какая у него файловая система и есть ли загрузчик в активном разделе.
По идее да, но я видел много BIOS'ов, для которых этого недостаточно. Более того, BIOS на одном из моих ноутов так и делает. Флешка с пустным MBR (даже при наличии загрузочной сигнатуры) в списке загрузки не отобразится.
1
15.08.2018, 10:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2018, 10:56

Как записать данные в загрузочный сектор без использования int 13h
Подскажите, пожалуйста, как записать данные в загрузочный сектор без помощи 13h...

Переписать загрузочный сектор флешки
Доброго времени суток! Задали лабу, переписать загрузочный сектор флешки и...

Не получается читать загрузочный сектор.
Пишу код: mov ax,0201h mov dl,2 mov dh, 0 mov ch,0 mov cl,1 push cs...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru