Neo | Дата: Вторник, 08.05.2012, 06:30 | Сообщение # 1 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Захотел как-то я написать свой манаджер загрузки ОС с дискеты. Не долго думая,я написал тестовый пример,суть вот в чём: при загрузки bios считывает 1 сектор диска(или дискеты,смотря как выбрать) в память по адресу 0000:7c00h,а потом запускает всё это,так же ведь? У меня на дискете первый сектор вот какой: Code org 07C00h main: cli mov ax,cs mov ds,ax mov sp,0FFFFh sti
mov ah,0Ah mov al,'1' mov bh,0 mov cx,10 int 10h ;выожу на экран очень смысловое сообщение(10 единичек) mov ah,2 mov bh,0 mov dh,2 mov dl,0 int 10h ;переношу курсор на другую строку
xor ax,ax int 16h ;жду нажатие с клавиатуры
mov ax,8600h mov es,ax ; Cегмент куда загружать буду настоящийй загрузчик
xor bx,bx mov ah,2 mov al,1 ;читаем всего 1 сектор xor ch,ch ;номер цилиндра mov cl,1 ;читаем нулевой 0 сектор (1-1) mov dl,80h ;С:\ xor dh,dh ;номер головки int 13h
jmp far 0:8600h ; прыгаю на виндовый загрузчик times 510-($-main) db 0 ;выравнивание dw 0AA55h ;любимые байты biosa По идее должно быть так: Биос читает этот код с дистеты,потом выполняется прочитанный код(вижу единички,жму кнопку на клаве),а этот код читает первый "виндовый" сектор и джампает на него.Должна грузиться винда.Но вместо этого,после сообщения и нажатия кнопки,длинный горизонтальный куроср и всё. Вопрос: п о ч е м у? -------------------------------------------------------------------------------------------------------------------------------------------- ----------------- P.S Нашёл статью на Хакере,там на диске к статье,есть исходники,которые мне бы очень помогли.(ge2000.asm,mbr.asm,boot.asm)Но где бы найти этот диск?Может у кого есть такие сорсы?
|
|
| |