![]() |
|
![]() ![]() ![]() |
|
Logree |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: 1 Всего: 2 |
эта программа работает? вы наверное пытались запустить ее из под винды?
чтаем внимательно Главная_загрузочная_запись особенно алгоритм загрузки у M$/
Биос не ищет ос, он перебирает устройства в порядке приоритета указанного в его настройках, и ищет в конце первого сектора сигнатуру 55AA, если он её находит то он этот загрузочный сектор записывает в память по адресу 0000h:7c00h, и передаёт туда управление( грубо jmp 0000h:7c00h) на этом роль биоса заканчиваетя теперь выполняется программа записанная в загрузочном секторе. погугли "Enhanced Disk Drive"+ советую почитать это.
преподаватель бредит. Это сообщение отредактировал(а) Logree - 30.10.2010, 16:09 -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
||||
|
|||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
1. int 18h - вызывает интерпретатор BASICA (если он есть, а есть, точнее был, он толька на фирменных компьютерах IBM)
2.Вы начинаете писать загрузчик сразу со смещения 0, а следовало бы писать со смещения 3Eh, а смещение 0 имеет инструкция перехода к загрузчику (jmp), а сам загрузчик должен быть по адресу 3Eh. http://ru.wikipedia.org/wiki/FAT http://www.piclist.ru/S-FAT-MMC-RUS/S-FAT-MMC-RUS.html
Загрузчик по средством BIOS (см. int 13h) читает код основной программы, записанной на дискете, и загружает его в память, затем передает ему управление. -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Napalmx |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 15.9.2009 Репутация: нет Всего: нет |
вот блин интересную темку ты поднял, я как то занимался этим вопросом. Для для получения машинного кода использовал FASM, потом прописывал в загрузочный сектор флешки при помощи Winhex. Образец кода был примерно такой
что то тут рисуется вроде наверное прямоугольник какой то, вот но суть то в том что я так и не придумал как передать управление управление загрузчику, который находится в MBR жесткого диска. То есть я пробовал его от туда тупо переслать в оперативку и передать по этому адресу управление - ничего не получалось. |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
У меня получилось создать дискету, на которой записан код, который загружает ОС с диска С.
См. пример. Папку disk переместить в директорию TASM и запустить makeit. Присоединённый файл ( Кол-во скачиваний: 17 ) ![]() -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Fant87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.2.2010 Репутация: нет Всего: нет |
Огромное спасибо за помощь. Я пытался переделать это на работу с флешки, но так ничего не вышло к сожалению(((
|
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Fant87, а у вас BIOS умеет грузиться с флешки? у меня например - нет
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Fant87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.2.2010 Репутация: нет Всего: нет |
Может я что-то не понимаю, но по идее умеет, ведь винду я с флешки устанавливал и получается загрузчик там был.
|
|||
|
||||
bugmenot1 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 8.5.2008 Репутация: нет Всего: 0 |
Для загрузки с флешки на ПК где нет такой поддержки можно воспользоватся EasyBCD
|
|||
|
||||
Fant87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.2.2010 Репутация: нет Всего: нет |
По идее же, код OS.asm не надо менять, надо просто записать его в загрузочный сектор флешки? Просто я пробую, но не работает, может я заря пробую, так как код не подходит?
|
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
надо немного поменять, во первых если посмотреть на этот код, то видно что второй сектор подгружается в память именно с диска A.
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Fant87 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 9.2.2010 Репутация: нет Всего: нет |
А вы не могли бы хотя бы примерно поменять код, просто у меня никак не получается переделать.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |