Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 11.12.2009, 07:26   #1
Заблокирован
 Разведчик
Аватар для Ivan_64
 
Ivan_64 на правильном путиIvan_64 на правильном пути
Регистрация: 23.11.2009
Сообщений: 10
Популярность: 146
Сказал(а) спасибо: 6
Поблагодарили 41 раз(а) в 20 сообщениях
 
По умолчанию Простейший boot-loader

Продолжаем флуд)

PHP код:
use16
org 0x7C00
bios_start
:
  
cli
  mov ax
,0x0
  mov es
,ax
  mov ds
,ax
  mov es
,ax
  sti
  
  
;Устанавливаем видеорежим
  mov ax
,3
  int 0x10
  
  
;Отключаем курсор
  mov ah
,1
  mov ch
,0x20
  int 0x10    
  
  
;Инициализируем все что нужно для запуска цикла
  mov ax
,0xB800
  mov es
,ax
  mov si
,message
  
xor di,di
  
;Цикл переноса данных
 @@:
  
lodsb
  mov ah
,0xF
  stosw
  cmp al
,0x0
  jnz 
@b
  
;Бесконечный цикл.
  
jmp $  

message db "Hello, World!",0
TIMES 510
-($-$$) db 0
dw 0xAA55 
Как видите код более чем тривиален - может быть кого ни будь это подтолкнет к написанию собственной ОС. Из опыта могу сказать что лучше всего писать на ассемблере - понятней, удобней, но разработка идет дольше и приходится переносить сложные алгоритмы на асм самому.

Добавлено через 5 минут
Кстати чуть не забыл, вот пример перехода в защищенный режим полученный мной на одном форуме в качестве ответа. Этот исходник мне очень помог.
PHP код:
;************************************
By Dex
Assemble with fasm
c:\fasm Pmode.asm Pmode.bin
;
;************************************
org 0x7C00
use16
;****************************
Realmode startup code.
;****************************
start:
        xor   
ax,ax
        mov   ds
,ax
        mov   es
,ax
        mov   ss
,ax
        mov   sp
,0x7C00
;*****************************
Setting upto enter pmode.
;*****************************
        
cli
        lgdt  
[gdtr]
        
mov   eaxcr0
        
or    al,0x1
        mov   cr0
,eax
        jmp   0x10
: protected
;*****************************
Pmode. ;-)
;*****************************
use32
protected:
        
mov   ax,0x8
        mov   ds
,ax
        mov   es
,ax
        mov   ss
,ax
        mov   esp
,0x7C00
;*****************************
Turn floppy off (if space).
;*****************************
        
mov   dx,3F2h
        mov   al
,0
        out   dx
,al
;*********************************
; Print 
T in the right hand corner
;*********************************
        
mov   byte [es:0xB809E], "T"
;*********************************
Just loop for now
;*********************************
        
jmp   $
;*************************************
GDT.
;*************************************
gdt:        dw    0x00000x00000x00000x0000
sys_data
:   dw    0xFFFF0x00000x92000x00CF
sys_code
:   dw    0xFFFF0x00000x98000x00CF
gdt_end
:

gdtr:       dw gdt_end gdt 1
            dd gdt
;*************************************
Make program 510 byte's + 0xaa55
;*************************************
times 510- ($-start)  db 0
dw 0xaa55 
PS: Очень важная информация
После прыжка к защищенному коду(ну тоесть к 32-битному) обязательно проинициализируйте DS его селектором. В данном случае селектор DS - 0x8
Соответственно ваш защищенный код должен начинаться так:
mov ax,0x8
mov ds,ax
По другому никак - иначе будете смотреть как ваша ОС перезагружается без конца и края, я на этом баге просидел почти 3 месяца - постоянно совал левый селектор.

Последний раз редактировалось Ivan_64; 11.12.2009 в 07:32. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
HellFire (11.12.2009)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] RF Loader [s]X@m[s] Rising Force Online 5 05.02.2011 10:27
rf-loader polifoniya19210 Архив уязвимостей 15 24.06.2009 18:30
[Help]RF Loader 1.8.5 ТумТум Rising Force Online 16 25.02.2009 22:02
НЕ РУБИТ LOADER ! Chiter X Rising Force Online 1 05.02.2009 22:10

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 13:21.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net