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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2020, 11:25   #11
TheReactiveMouse
Пользователь
 
Регистрация: 02.10.2020
Сообщений: 17
По умолчанию

Pavia, А что именно, тип можете обьяснить ? Если нужно то могу предоставить код.
TheReactiveMouse вне форума Ответить с цитированием
Старый 02.11.2020, 11:51   #12
TheReactiveMouse
Пользователь
 
Регистрация: 02.10.2020
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
А что не так? Код могу приложить
TheReactiveMouse вне форума Ответить с цитированием
Старый 02.11.2020, 11:55   #13
Argogo
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 22
По умолчанию

Pavia, по ссылке местами описки, например
Цитата:
Разные комбинации CS:IP могут указывают на один физический адрес 7C000h
Надо присвоить CS=0 IP=7C000h, выставить org 7C000h
Ясно, что адрес должен быть не 7C000h, а 7C00h.
Argogo вне форума Ответить с цитированием
Старый 02.11.2020, 11:56   #14
Argogo
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
А что не так?
Как минимум пункты 1 и 2.


Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
Код могу приложить
Обычно это ускоряет нахождение проблемы.

PS: хотел перенести содержимое этого сообщения в предыдущее, но не нашел как удалить это.

Последний раз редактировалось Argogo; 02.11.2020 в 12:04.
Argogo вне форума Ответить с цитированием
Старый 02.11.2020, 12:00   #15
TheReactiveMouse
Пользователь
 
Регистрация: 02.10.2020
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Argogo Посмотреть сообщение
Как минимум пункты 1 и 2.




Обычно это ускоряет нахождение проблемы.
1 - Нет, есть
2 - Наверн
Код :
Вложения
Тип файла: rar MYOS.rar (2.7 Кб, 4 просмотров)
TheReactiveMouse вне форума Ответить с цитированием
Старый 02.11.2020, 12:21   #16
Argogo
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
1 - Нет, есть
Ага, есть. Но не там где надо. Должна быть по смещению 0x1FE от начала бинарника.

Я бы начал код загрузчика со строк
Код:
cli
mov  ax, cs
mov  ss, ax
mov  sp, 0x7c00
sti
mov  ds, ax
; и только после этого вызывать прерывания BIOS

Последний раз редактировалось Argogo; 02.11.2020 в 12:26.
Argogo вне форума Ответить с цитированием
Старый 02.11.2020, 12:25   #17
TheReactiveMouse
Пользователь
 
Регистрация: 02.10.2020
Сообщений: 17
По умолчанию

Argogo, Попробую, спасибо.Тоесть нужно указать db 55h, 0AAh в начале файла? Не помогло, но запись в загрузчике изменилась.В редакторе HEX заметил.

Последний раз редактировалось TheReactiveMouse; 02.11.2020 в 12:27.
TheReactiveMouse вне форума Ответить с цитированием
Старый 02.11.2020, 12:31   #18
Argogo
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
Тоесть нужно указать db 55h, 0AAh в начале файла?
Не в начале файла, а по смещению 0x1FE от начала бинарного файла (получаемого в результате ассемблирования исходного файла).

Если взглянуть на это с другой стороны, то
смещения от 0 до 0x1FD включительно доступны для размещения кода (и данных)
по смещению 0x1FE должна начинаться сигнатура из двух байт 0x55 и 0xAA
со смещения 0x200 всё доступно для размещения кода (и данных)

Необходимо помнить, что BIOS грузит в память только один первый сектор, код этого сектора должен загрузить остальной твой код самостоятельно (тот, который не влез в первые 0x200 байт бинарного файла).

Последний раз редактировалось Argogo; 02.11.2020 в 12:44.
Argogo вне форума Ответить с цитированием
Старый 02.11.2020, 12:33   #19
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
Argogo, Попробую, спасибо.Тоесть нужно указать db 55h, 0AAh в начале файла?
Не в начале а в конце, так чтобы они попали на смещения 510 и 511. На скриншоте хекс файла их не вижу.

Цитата:
Сообщение от TheReactiveMouse Посмотреть сообщение
А что не так? Код могу приложить
Для этого надо знать для какого диска Вы пишете загрузчик мягкий диск Floppy жеский диск HDD, оптический диск(сидиром) CD.
Каждый диск имеет свои требования к загрузочному сектору.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 02.11.2020, 12:34   #20
TheReactiveMouse
Пользователь
 
Регистрация: 02.10.2020
Сообщений: 17
По умолчанию

Pavia, Под жесткие диски.
TheReactiveMouse вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение\Запись в загрузочный сектор AntonCH Помощь студентам 3 29.11.2017 14:39
записать свой загрузочный сектор на флешку MetR Помощь студентам 0 10.12.2011 18:15
Загрузочный диск ХР avare65 Windows 4 03.12.2009 15:36
загрузочный диск Maxxx 83 Операционные системы общие вопросы 6 10.07.2009 13:31
ЗАПИСЬ В ЗАГРУЗОЧНЫЙ СЕКТОР ERASERROR Общие вопросы Delphi 6 15.01.2008 23:27