OSをつくろうpart2
■ このスレッドは過去ログ倉庫に格納されています
0516ひげぽん
NGNG;load kernel from bootdrive
load:
;reset the diskdrives
push ds ;store DS ■データセグメントの値をスタックへpush
mov ax,0 ;select function ■ディスクを
mov dl,[bootdrv] ;drive to reset ■リセット
int 13h ;reset ■する 成功した場合キャリフラグが1になる
pop ds ;restore DS ■スタックからpop
jc load ;failed try again■キャリーフラグが1のときにラベルへジャンプ
load1:
mov ax,0x1000 ;es:bx=1000 ■エキストラセグメントに
mov es,ax ; ■1000をセット
mov bx,0 ; ■bxに0をセット
;read disksectors
mov ah,2 ;select function ■セクタを読んでメモリにセット
mov al,10 ;read 10 sectors ■10セクタ読む 格納先はes:bx
mov cx,5 ;cylinder=0,sector=5 ■シリンダ0,セクタ5
mov dx,0 ;head=0,drive=0 ■ヘッド0,ドライブ0
int 13h ; ■実際にセクタを読み込む 成功した場合キャリフラグが1になる
jc load1 ; ■キャリーフラグ?が1のときにラベルへジャンプ
retn ; ■呼び出し元に戻る
times 512-($-$$)-2 db 0
dw 0AA55h
■ このスレッドは過去ログ倉庫に格納されています