Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 20:38   #1
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию создание ОС на FASM

Доброго времени суток!
Помогите пожалуйста с загрузчиком OС

при тестировании кода на Oracle VM выводится строка Starting OS и возникает ошибка

как мне понять что за ошибка и как ее исправить????

прошу сильно не пинать я в этом новичек...
Код:
use16
org 7C00h
;org 100h
start:
jmp 0000h:entr              ;теперь CS=0, IP=0x7c00
entr:
;---------------------------------------------------------
macro zPR {
cli  ; Запретить прерывания
; Запретить(NMI)
in  al,70h
or  al,80h
out 70h,al
}
macro rPR {; разрешить(NMI)
in  al,70h              
and al,07Fh        
out 70h,al
sti ; разрешить прерывания
}
macro A20 {; Открыть линию A20
in   al,92h
or   al,2
out 92h,al
}
macro pMode {
mov eax,cr0
or  al,1
mov cr0,eax
}
macro tex t{
mov edi,0B8000h;
mov esi,t 
int 20h 
}
;---------------------------------------------------------
mov al,12h
int 10h

push cs
pop  ds
	
A20
;Загрузить адрес и размер GDT в GDTR
lgdt  [gdtr]
;Загрузить адрес и размер IDT в IDTR
lidt  [idtr]
;-----------------------------------
zPR
; Переключиться в защищённый режим
pMode
;
jmp  00001000b:pm_entry
;32-битная адресация
use32
;Точка входа в защищенный режим
pm_entry:
mov  ax,cs
mov  ds,ax
mov  es,ax

rPR
; вывод на экран
tex msg
;                      
jmp $


ret
msg db 'Starting OS',0

exit2: ;обработчик int 
cld
loo1:                     
   lodsb                        
   test al,al                   
   stosb                         
   mov  al,7                    
   stosb
   jnz loo1
;jmp ex1
iretd


;IDT
idt:
dd 0,0 ;0
dd 0,0 ;1
dd 0,0 ;2
dd 0,0 ;3
dd 0,0 ;4
dd 0,0 ;5
dd 0,0 ;6
dd 0,0 ;8
dd 0,0 ;9
dd 0,0 ;10
dd 0,0 ;11
dd 0,0 ;12
dd 0,0 ;13
dd 0,0 ;14
dd 0,0 ;15
dd 0,0 ;16
dd 0,0 ;17
dd 0,0 ;18
dd 0,0 ;19
dd 0,0 ;20
dd 0,0 ;21
dd 0,0 ;22
dd 0,0 ;23
dd 0,0 ;24
dd 0,0 ;25
dd 0,0 ;26
dd 0,0 ;27
dd 0,0 ;28
dd 0,0 ;29
dd 0,0 ;30
dd 0,0 ;31
dw exit2, 08h, 1000111000000000b, 0;32
dw exit2, 08h, 1000111000000000b, 0 ; 33

idt_size  equ $ - gdt
idtr:
  dw idt_size - 1
  dd idt  
;GDT.
gdt:
   db  8 dup (0) 
 ; (10h) Code segment, read/execute, nonconforming 
       dw 0FFFFh 
       dw 0 
       db 0 
       db 10011010b 
       db 11001111b 
       db 0 
 
; (18h) Data segment, read/write, expand down 
       dw 0FFFFh 
       dw 0 
       db 0 
       db 10010010b 
       db 11001111b 
       db 0
gdt_size  equ $ - gdt
gdtr:
   dw  gdt_size - 1
   dd  gdt
;------------------------------------------------------------------------
times 510-($-start) db 00h
db 055h, 0AAh

Последний раз редактировалось rpy3uH; 22.09.2011 в 11:10.
vova65 вне форума Ответить с цитированием
Старый 29.09.2011, 22:57   #2
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Посмотрите kolibriOS, baremetal ..
Спеши медленно.
asmars вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учебник по FASM Roof Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 33 09.12.2013 23:16
FASM арифметика kka495 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 28.04.2011 17:06
FASM 1 курс Sobaka_ru Помощь студентам 2 29.12.2010 18:10
Вопросы по FASM Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.06.2009 12:02
tasm>>fasm better Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 09.02.2009 19:34