Jumat, 21 Februari 2014

Membuat sebuah Bootsector

   Sektor boot pada disk selalu ada di sektor pertama pada track pertama pada kepala pertama . Ketika komputer dinyalakan ( atau reset) , BIOS dijalankan dan melakukan POST . Ini menginisialisasi semua data itu , maka mencari boot sector yang valid . Pertama terlihat di A : drive , maka terlihat C : . Jika tidak menemukannya kemudian menginterupt pada 18h disebut ( pada PC IBM original ) BASIC ROM . Sebuah boot sector yang valid ( untuk BIOS ) adalah salah satu yang bernilai 0AA55h pada offset 510 di sektor boot .

   Ketika BIOS menemukan boot sector , ia membaca bahwa sektor ( 512 byte ) dari disk dan ke memori pada 00:07 C00h . Kemudian melompat ke 0:07 C00h dan kode boot sector mendapatkan kontrol . Pada titik ini , semua yang telah diinisialisasi adalah area data BIOS ( 40h : 0 ) dan interupsi BIOS ( 10h - 1Ah ) . Pada titik ini , memori sebagian besar tidak terpakai , tapi tidak perlu dibersihkan ke 0. ( Chris Lattner )


   Membuat sektor boot Anda sendiri mungkin sebenarnya lebih mudahdari yang Anda pikir sebelumnya. Semua hal yang Anda benar-benar perlu tahu adalah bagaimana cara kerja prosesor Intel. Sebuah boot sektor yang valid memiliki kode 0xAA55 di offset 510 , dan terletak di sektor pertama dari disk . Oleh karena itu, BIOS hanya cek berkendara 0 ( A :) untuk kode ini . Jika tidak ditemukan, maka cek perjalanan 128 ( C :) . Jika sektor boot yang valid ditemukan , itu dimuat ke memori di lokasi 0:07 C00h .

    Jadi , yang harus Anda lakukan adalah menulis sektor boot , merakit menjadi file biner biasa ( terdapat format atau header untuk sektor boot ) , dan menulis ke sektor pertama dari disk Anda . Cara terbaik untuk melakukannya adalah dengan baik menggunakan NASM ( The assembler netwide dapat menghasilkan file biner polos ) atau merakit menjadi EXE DOS . Dan menghapus 512 byte pertama . Anda juga dapat menulis program Anda sendiri untuk menulis bootsector untuk sektor 1 disk menggunakan BIOS INT 13h AH = 02h . ( Jeff Weeks and Code X software )

Tidak ada komentar:

Posting Komentar