Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Диспетчер загрузки ОС 
:(
    Опции темы
Logree
Дата 30.10.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: 1
Всего: 2



эта программа работает? вы наверное пытались запустить ее из под винды?

чтаем внимательно Главная_загрузочная_запись особенно алгоритм загрузки у M$/

Цитата

2) Как сделать выбор загрузки ОС, а именно:
 можно ли,чтобы BIOS нашел все ОС на дисках и потом как-то это вывести или как-то управлять вызовом ОС, а именно выбором диска поиска загрузочного сектора. Еще преподаватель сказал, что можно грузить адреса загрузчиков из файла, ток вот как это сделать и где взять эти адреса я не пойму.


Биос не ищет ос, он перебирает устройства в порядке приоритета указанного в его настройках, и ищет в конце первого сектора сигнатуру  55AA,  если он её находит то  он этот загрузочный сектор записывает в память по адресу 0000h:7c00h, и передаёт туда управление( грубо jmp 0000h:7c00h) на этом роль биоса заканчиваетя теперь выполняется программа записанная в загрузочном секторе.

погугли "Enhanced Disk Drive"+ советую почитать это.

Цитата

Еще преподаватель сказал, что можно грузить адреса загрузчиков из файла, ток вот как это сделать и где взять эти адреса я не пойму.

преподаватель бредит.

Это сообщение отредактировал(а) Logree - 30.10.2010, 16:09


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
iff
Дата 30.10.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 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
Цитата(Fant87 @  29.10.2010,  22:57 Найти цитируемый пост)
Как сделать, чтобы загрузчик запустил еще один загрузчик с флешки, так как мне кажется, что если делать интерфейс, то не поместится в 512 байт

Загрузчик по средством BIOS (см. int 13h) читает код основной программы, записанной на дискете, и загружает его в память, затем передает ему управление.


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Napalmx
Дата 2.11.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.9.2009

Репутация: нет
Всего: нет



вот блин интересную темку ты поднял, я как то занимался этим вопросом. Для для получения машинного кода использовал FASM, потом прописывал в загрузочный сектор флешки при помощи Winhex. Образец кода был примерно такой
Код

use16
    jmp   start
    nop
    
    db 'bootsect'           ;;  OEM name and version
    dw 512               ;;  Bytes per sector
    db 1               ;;  Sectors per allocation unit
    dw 1               ;;  Reserved sectors, starting at 0
    db 2               ;;  Number of FATs
    dw 224               ;;  Number of root-directory entries
    dw 2880               ;;  Total sectors in logical volume
    db 240               ;;  Media descriptor byte
    dw 9               ;;  Number of sectors per FAT
    dw 18               ;;  Sectors per track
    dw 2               ;;  Number of heads
    dd 0               ;;  Number of hidden sectors
    dd 0               ;;  Total sectors in logical volume
    db 0               ;;  Physical drive number
    db 0               ;;  Reserved
    db 41               ;;  Extended boot signature record
    dd 0               ;;  32-bit binary volume ID
    db '           '           ;;  Volume label
    db 'FAT12   '           ;;  Reserved
start:
       mov AX,cs
       mov DS,AX
       mov ah,00h
       mov al,03h
       int 10h
       mov ah,02h
       mov al,1
       mov ch,0
       mov cl,1
       mov dh,0
       mov dl,80h
       mov bx,6c00h
       int 13h
       mov cx,70
       mov di,6c00h
       xor dx,dx
fill: push cx
      mov cx,1
      mov ah,0ah
      mov al,[di]
      int 10h
      inc di
      mov ah,02h
      inc dl
      int 10h
      pop cx
      loop fill

 
    repeat (510 - $) 
    db 0 
    end repeat
    
    db 0x55, 0xAA
    
;;    repeat (1474560 - $) 
;;        db 0 
;;    end repeat


что то тут рисуется вроде наверное прямоугольник какой то, вот но суть то в том что я так и не придумал как передать управление управление загрузчику, который находится в MBR жесткого диска. То есть я пробовал его от туда тупо переслать в оперативку и передать по этому адресу управление - ничего не получалось. 
PM MAIL   Вверх
iff
Дата 10.11.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



У меня получилось создать дискету, на которой записан код, который загружает ОС с диска С.
См. пример.

Папку disk переместить в директорию TASM и запустить makeit.

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  disk.zip 1,78 Kb


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Fant87
Дата 3.12.2010, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.2.2010

Репутация: нет
Всего: нет



Огромное спасибо за помощь. Я пытался переделать это на работу с флешки, но так ничего не вышло к сожалению(((
PM MAIL   Вверх
iff
Дата 3.12.2010, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



Fant87, а у вас BIOS умеет грузиться с флешки? у меня например - нет


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Fant87
Дата 3.12.2010, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.2.2010

Репутация: нет
Всего: нет



Может я что-то не понимаю, но по идее умеет, ведь винду я с флешки устанавливал и получается загрузчик там был.
PM MAIL   Вверх
bugmenot1
Дата 4.12.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 8.5.2008

Репутация: нет
Всего: 0



Для загрузки с флешки на ПК где нет такой поддержки можно воспользоватся EasyBCD
PM MAIL   Вверх
Fant87
Дата 7.12.2010, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.2.2010

Репутация: нет
Всего: нет



По идее же, код OS.asm не надо менять, надо просто записать его в загрузочный сектор флешки? Просто я пробую, но не работает, может я заря пробую, так как код не подходит?
PM MAIL   Вверх
iff
Дата 8.12.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



надо немного поменять, во первых если посмотреть на этот код, то видно что второй сектор подгружается в память именно с диска A.



--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Fant87
Дата 9.12.2010, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.2.2010

Репутация: нет
Всего: нет



А вы не могли бы хотя бы примерно поменять код, просто у меня никак не получается переделать. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0863 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.