Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 14.04.2014
Сообщений: 10

Первичный загрузчик - Ошибка boot о невозможности чтения загрузочного диска

25.07.2014, 01:13. Показов 1893. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Вобщем дело такое написал на fasm - е "загрузчик" ( copy/paste и немного изменил ), он ничего особенного не делает, лишь выводит сообщение и виснет в цикле.
Вот код:
Кликните здесь для просмотра всего текста

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
27
28
29
30
org 0x7C00
    jmp word boot
    msg_start db "OS loading...", 0x0A, 0x0D, 0
boot:
    mov ax, cs
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov sp, 0x7C00
    sti
    mov si, msg_start
    call    ps
    .wait:
    jmp .wait
;Вывод строк
ps: 
    pusha
    .loop:
    lodsb
    test    al,al
    jz  .quit
    mov ah, 0x0E
    int     0x0E
    jmp     short .loop
    .quit:
    popa
    ret
 
TIMES 510-($-$$) db 0
db  0xAA, 0x55


Затем получаю бинарник:
Bash
1
fasm loader_old.s loader.bin
Создаю образ дискеты:
Bash
1
dd if=/dev/zero of=disk.img bs=1024 count=1440
Записываю в дискету бинарник:
Bash
1
dd if=loader.bin of=disk.img conv=notrunc
И пытаюсь пустить его в qemu:
Bash
1
qemu -fda disk.img -boot a
В результате получаю ошибку boot о невозможности чтения загрузочного диска.
Не могли бы подсказать, в чём проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2014, 01:13
Ответы с готовыми решениями:

Пытаюсь установить windows с флешки и сд - везде ошибка чтения boot/cd
Приветствую, достался такой же комп. Пытаюсь установить windows с флешки и сд - везде ошибка чтения boot/cd, windows Error: 0xc0000001....

При выборе в качестве загрузочного диска Windows внешнего жесткого диска, файлы на нем удаляются?
Здравствуйте, помогите пожалуйста. Я по ошибке выбрал в качестве загрузочного диска внешний HDD на котором важные мне файлы, после...

Ошибка чтения с диска
Я читаю с диска флоппи следующим кодом, а комп возвращает мне переноса флаг и код ошибки AH=02h. Привожу код: mov ah,020F mov bx,offset...

12
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
25.07.2014, 12:55
Лучший ответ Сообщение было отмечено goust12 как решение

Решение

Значения байтиков загрузочной сигнатуры поменяйте местами ("db 0xAA, 0x55" != "dw 0xAA55").

Добавлено через 6 минут
xor ax,ax вместо mov ax,cs будет надежнее. Не увидел cld. Video BIOS – это int 10h. У видеофункции 0Eh еще есть параметр, передаваемый в bx.

Добавлено через 2 минуты
Обычно пишут наоборот: "13,10".
1
0 / 0 / 1
Регистрация: 14.04.2014
Сообщений: 10
25.07.2014, 20:09  [ТС]
Спасибо большое.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
27.07.2014, 19:06
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

ИМХО не пишите загрузчик. воспользуйтесь готовым, так будет лучше и вы быстрее забросите писать ОСь если будете сразу писать ядерный сервис
1
3 / 3 / 1
Регистрация: 30.05.2014
Сообщений: 34
28.07.2014, 15:35
Цитата Сообщение от Мотороллер Посмотреть сообщение
воспользуйтесь готовым, так будет лучше и вы быстрее забросите писать ОСь
ИМХО, под "воспользуйтесь готовым" разумно подразумевать "скопируйте чужой код".

Цитата Сообщение от Мотороллер Посмотреть сообщение
если будете сразу писать ядерный сервис
Не пойму, чего конкретно сложного и необычного в ядерном сервисе? Всего-то менеджер процессов и инты, если на примере KolibriOS, где это умещается в 8000-10000 строк.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
28.07.2014, 15:47
Цитата Сообщение от Nova_ Посмотреть сообщение
Всего-то менеджер процессов и инты
не буду убеждать в обратном
0
3 / 3 / 1
Регистрация: 30.05.2014
Сообщений: 34
28.07.2014, 16:31
Цитата Сообщение от Мотороллер Посмотреть сообщение
не буду убеждать в обратном
И не надо. Любезный, ваши понятия слишком шаблонные.
0
29.07.2014, 07:39

Не по теме:

а вы уже написали аналог BolgenOS с нескучными обоями?:jokingly:

0
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
24.09.2014, 18:11
Загрузчик писать надо, так как это вводит программиста в курс дела - на практике, а не в теории. И сделать это не так уж и сложно.
0
26.09.2014, 09:25

Не по теме:

panotnap, повторюсь: а Вы уже написали аналог BolgenOS с нескучными обоями?:jokingly:

0
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
27.09.2014, 13:56

Не по теме:


Цитата Сообщение от Мотороллер Посмотреть сообщение
panotnap, повторюсь: а Вы уже написали аналог BolgenOS с нескучными обоями?
Ну как же ещё пошутить в категории "ос на ассемблер", если не так. :bravo: Надо было хотя бы сказать "PanotnapOS".


А по теме это сравнимо с композиторами. Один пишет на синтезаторе, пользуясь готовыми шаблонами (или даже аранжировками), а другой "оттачивает" каждую ноту для каждого инструмента. В итоге по качеству результата второй будет в выигрыше, хотя по скорости написания он, конечно, проиграет. И, если музыка действительно ему нравится, то никакие сложности в виде медленного течения процесса и отсутствия "сею-же-секундного" результата не остановят настоящего музыканта.
...или программиста.
0
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
27.09.2014, 19:19
panotnap, я выше уже писал
ИМХО не пишите загрузчик. воспользуйтесь готовым, так будет лучше и вы быстрее забросите писать ОСь если будете сразу писать ядерный сервис
неужели у вас у всех такое примитивное мышление, что вы думаете что сможете написать ось? чтобы написать хотя бы пародию на дось нужно нехило проектировать все, думать, на это уйдет много времени. и да. писать ось на чистом асме это удел упоротых, коим я являюсьертых. я Вам говорю это не как человек начавший писать ос и забивший на это делопосле первых неудач, у меня есть манагер памяти, экран+жестак. и честно говоря я уже заипался все переписывать сто раз, ибо, как я писал выше, нужно очень нефигиво все спроектировать. но я тоже я забил. но, надеюсь, когда-нибудь я достану с полки ось и продолжу ее писать
0
27.09.2014, 21:24

Не по теме:

А кто, кстати, виноват в том, что люди, имеющие абсолютно все возможности и шансы написать ОС, не могут это сделать? Вы знаете ответ на этот вопрос?
Да, это очень сложно, но не потому, что это вправду сложно. А потому, что каждая "железная" и "софторная" конторочка гребёт под себя. И скооперироваться с кем-нибудь она может в исключительных случаях, и только с себе подобными, и взяв с них "сребра" по максимуму.
Ведь самое адекватное, что можно придумать - сделать унифицированный интерфейс для широкого спектра разработчиков - оно не сделается НИКОГДА. Хотя это наиболее оптимальное решение. Нет. Древняя веза с 5-ю убогими режимами и 300 недокументированных деталек на плате. Потому что, если ИНАЧЕ - то крупные монополии просто треснут по швам.
Бедные программеры с прекрасными, надо сказать, мечтами должны пыхтеть над адским кодингом, который подсилу только КРУПНОМУ ШТАТУ разработчиков, но ведь такой код абсолютно НЕ оправдан. Да, можно не выдержать такой нагрузки. Но ни 1 программист-мечтатель в этом НЕ ВИНОВАТ.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2014, 21:24
Помогаю со студенческими работами здесь

Загрузка (Boot) c загрузочного сектора виндовса
Вместо загрузки с жесткого диска ( такая опция пропала в boot), операционная система грузится с загрузочного сектора windows. Проблема в...

First Boot Device - CDROM, но с загрузочного не запускается.
При выставленном значении не запускает с загрузочного диска установку виндовс 7. Ранее на компьютере переустанавливал хр неоднократно,...

Удаление загрузочного диска со съемного диска
Доброго времени суток. Установил на съемный HDD загрузочный диск, заблаговременно не сохранив данные с него, ибо не знал, что после...

ошибка чтения жесткого диска
всем доброго времени суток.проблема следующая.недавно у меня появилась проблема.при включении компьютера не грузится жесткий диск.пишет A...

Ошибка 100: Ошибка чтения с диска
Здравствуйте. Подскажите, в чем причина? При запуске программы выдает ошибку чтения с диска. Сразу скажу, код не мой, поэтому строго не...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru