Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузчик ОС, Разработка загрузчика ОС 
:(
    Опции темы
Yui
Дата 17.5.2003, 17:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











sad.gif ПОМОГИТЕ НАПИСАТЬ ЗАГРУЗЧИК ОС
  Вверх
Guest_Yuri
Дата 17.5.2003, 17:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужно написать прогу загрузчика ОС!
  Вверх
oleg1973
Дата 18.7.2003, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



а вчем собственно проблема то?
ос та какая ?
реал моде,пмоде?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 16.10.2003, 20:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











лови:
копирует файл boot.com (который кстати должет быть естесно откомпилин как !!com!! и org 0h !!!!) в нём пиши чё хош всё это ляжет по адресу 0х7c00 и получит управление незабудь файл пиши в пределах 509 килобайтов !! максимум!!!

.Model tiny
.Code
Org 100h
Begin:
mov ah,9
mov dx,offset Hello1
int 21h
xor ah,ah
int 16h ;Выводим приветствие и ждем нажатия
;на любую клавишу
mov ah,3Dh
xor al,al
xor cx,cx
mov dx,Offset FileName
int 21h ;открываем файл для чтения
jb Error2 ;Если файл не найден

mov File1,ax
mov bx,File1
mov dx,offset Buffer
ReadNext:
mov bx,File1
mov ah,3Fh
mov cx,1h
int 21h ;Считываем байт
inc dx
dec ax
js ReadNext1 ;Выход если ошибка
jmp ReadNext
ReadNext1:
mov ah,3Eh
mov bx,File1
int 21h ;Закрыть файл

mov si,dx
dec si
mov di,offset Buffer
add di,512 ;В di конец буффера
Loop1:
mov byte ptr [si],00h
inc si
cmp si,di
jne Loop1 ;Забить конец буффера 00h
mov word ptr [di-2],0AA55h ;Отправить в конец буффера сигнатуру

xor ah,ah
xor dl,dl
int 13h ;Подготовить дисковод к вводу-выводу
jb Error1 ;Если ошибка
Loop2:
mov ah,03h
mov al,1h
xor ch,ch
mov cl,0000001b
xor dh,dh
xor dl,dl
mov bx,offset Buffer
int 13h ;Записать BOOT сектор
jae ReadNext2 ;Если нет ошибки
ReadNext3:
inc NWrite ;10 попыток
cmp NWrite,10 ;записи
jb Loop2 ;на дискету
Error1:
mov ah,9
mov dx,offset ErrorStr
int 21h ;Сообщение об ошибке записи на дискету
ret
ReadNext2:
mov ah,9
mov dx,offset OK
int 21h ;Сообщение об успешном копировании
ret ;Выход
Error2:
mov ah,9
mov dx,offset ErrorStr1
int 21h ;Сообщение о невозможности найти файл
;boot.com
ret
FileName db 'boot.com',0
ErrorStr db 0Ah,0Dh,'Ошибка записи на дискету $'
ErrorStr1 db 0Ah,0Dh,'Файл boot.com не найден или поврежден$'
Hello1 db 0Ah,0Dh,'Вставьте в дисковод a: чистую дискету и нажмите любую клавишу$'
OK db 0Ah,0Dh,'BOOT сектор успешно скопирован$'
File1 dw 0000h ;Описатель файла
NWrite db 00h ;Число попыток записи
Buffer:
end Begin

  Вверх
oleg1973
Дата 16.10.2003, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



какойже это загрузчик?
это записвалка для бут сектора
и тем более не на org0h нада комилить а на 7c00h
и при чем тут 509 кб?
биос загрузит 1 сектор (а сектор может быть и 128 и 256 и 512 и 1024 но никак не 509 кб)
а 509кб это ты видимо доступную память посчитал?
а почему тогда не 640?smile.gif
да ваще кто мешает мне flat сделать? будет вся память доступна smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 17.10.2003, 11:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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

а 509 т.к у дискеты сектор 512 килов вычти таблицу параметров дискеты(дос формат канечно) (прога то считывает файл досовской функцией... и если запортить таблицу параметров то несможем записать на неё kernel.com см дальше) ну кстати разницы на счёт org0 и org 7с00 я проверял работало и так ... и так ) может я неправ)

вот а файл этот boot.com пусть к примеру ищет на диске kernel.com и грузит его в память куда там удобнее... а файл kernel.com просто можно кинуть на дискету прога (boot.com)сама найдёт где он... вот по это му то нужно сохранять таблицу параметров а то винды думают что дискета неотформаченна)
  Вверх
oleg1973
Дата 17.10.2003, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



Unregistered шутник ты однако smile.gif
Цитата
а 509 т.к у дискеты сектор 512 килов вычти таблицу параметров дискеты

не кб а байт наверно
да и системная инфа там ну ни как не 3 байта

OemName: db 'Shit OS ' ; OEM name and version
BytesPerSec dw 512 ; bytes per sector
SecPerClust db 1 ; sectors per cluster
ResSectors dw 1 ; number of reserved sectors
FATs db 2 ; number of FATs
RootDirEnts dw 224 ; number of root directory entries
Sectors dw 2880 ; total number of sectors (see HugeSectors)
Media db 0f0h ; media descriptor byte (0f0h for floppies)
FATsecs dw 9 ; number of sectors per FAT
SecPerTrack dw 18 ; sectors per track
Heads dw 2 ; number of heads
HiddenSecs dd 0 ; number of hidden sectors
HugeSectors dd 0 ; number of sectors if Sectors equals 0
DriveNumber db 0 ;
Reserved1 db 0 ;
BootSignature db 29h ;
VolumeID dd 0 ;
VolumeLabel: times 11 db 0
FileSysType: db 'Shit FS '
extra dw 0

и в конце сектора не забыть 55h,aah поставить а то некоторые биосы его грузить не будут


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 17.10.2003, 20:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











блин чувак реал виноват обшибся %) я просто поглядел на откомпилиный файл boot.com и вспомнил что там 509 байт это всё и параметры и ещё один байт 00 а два других как раз сигнатура... бывает

  Вверх
Unregistered=noFX
Дата 17.10.2003, 22:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
и ещё один байт 00 а два других как раз сигнатура... бывает


все эти оставшиеся байты как раз пишет тот код инсталятора который я писал выше...

p.s
а ты давно на асме кодиш?
  Вверх
noFX
Дата 17.10.2003, 22:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











nop ;для jmp т.к переход короткий………
OEMName DB 'K SYS V0' ;Имя и версия
SectSize DW 512 ;Байт на сектор
ClustSize DB 1 ;Секторов на кластер
ResSecs DW 0001 ;Колличество резервных секторов
FatCnt DB 2 ;Число таблиц FAT
RootSiz DW 224 ;Макс. колл. элементов в корневом каталоге
TotSecs DW 2880 ;Общее колл. секторов
Media DB 0F0h ;Тип носителя
FatSize DW 0009 ;Колличество секторов в одной FAT
TrkSecs DW 0018 ;Колличество секторов в дорожке
HeadCnt DW 0002 ;Колличество головок
HidnSec DD 00000000 ;Колличество скрытых секторов
SectDisk DD 00000000 ;Общее колл. секторов на лог. диске
PhizNum DB 00 ;Физический номер диска
Rezerv DB 00 ;Зарезервированно
Sig DB 29h ;Сигнатура 29h
NumDisk DD 00000000 ;Двоичный номер диска
LblDisk DB 'K SYSTEM OS'
IdntFS DB 'FAT12 ' ;Идентифекатор файловой сиcтемы

как я оформил табличку...
  Вверх
oleg1973
Дата 18.10.2003, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



Unregistered=noFX
со спектрума smile.gif))))


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
noFX
Дата 18.10.2003, 10:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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

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

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


 




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


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

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