2016-03-21 18 views
-1

Ben basit bir bootloader (nasil çalışır) yaptım .. benim ikinci program da bootm ile başlatılmalı, bootloader'dan başlatılmalı ... ama bunu nasıl yapacağımı bilmiyorum .. .herhangi bir fikir.. ?Çekirdeğe atlamak için dvd'ye tıklayın

Burada web sitem here .. Eğer iki textarea's görüyorsunuz, üst textarea bootloader olduğunu, ikincisi bootloader'dan başlatılan ikinci program olmalıdır (ama bunu işe alamıyorum). Sonra 'make iso' düğmesine basmalısınız. Sonra php'de şu komutu kullanıyorum: $ op = system ("genisoimage -b prog". $ Getal. ". Img -no-emul-boot -boot-load-size 4 -o prog". $ Getal. " .iso/var/www/html/boot/>> ". $ getal." 2.txt 2> & 1 ", $ geri);

Bu, ISO programında (512) dvd'de ilk program/önyükleyiciyi yakan bir iso dosyası yapar. Bu iş, şimdi ikinci programın nasıl çalıştırılacağını .. Herhangi bir fikir nedir? o da sp ne de ss kayıtlarını ayarlamadan yığının (push 0a000h) kullanır beri senin bootloader şaşırdım

Thx,

+0

Birinci aşama ve ikinci aşama oluşturabilir, bir disk görüntüsü oluşturmak için bunları birleştirebilirsiniz. Bunun, [Stackoverflow yanıtı] 'nda nasıl yapılabileceğini gösteren bir cevabım var (http://stackoverflow.com/a/34095896/3857942). Bu kod, ikinci sektörü nasıl yükleyebileceğinizi ve buna nasıl atlayacağınızı gösterir. Eğer disk görüntüyü yaptıktan sonra genisoimg (veya mkisofs) –

+0

kullanabilmeniz gerekir. Ayrıca bazı [genel bootloader ipuçları] (http://stackoverflow.com/questions/32701854/boot-loader-doesnt-jump-to -kernel-code/32705076 # 32705076) Bu Stackoverflow içinde zaman/hızlı yanıt için –

+0

Thx, cevap verin ... ama söylemek zorundayım: bu şekilde tutmak ... benim için çok zor. – Frederik

cevap

0

İlk

Frederik Pot, hiç çalışır. Yani, numaralı bir kümeyi kurmak için BIOS'a güveniyorsunuz, bu da yapmaya çalıştığınız şeylerle uğraşmıyor. Yığın çok düşük bir adreste bile oturuyor olabilir ve IVT'nin veya kendi kodunuzun üzerine yazabilir - sadece bilmeniz mümkün değildir.

Özgün sorunuz için: int 0x13'a bakmayı deneyin. ISO oluşturma komut dosyanız iki ikili sunucunuzu bir araya getirebilir (yalnızca uygun şekilde doldurulduklarından emin olun), daha sonra önyükleme kodunuzdan yeni ikili belleğinizi belirli bir konumdaki belleğe yüklemek için adlandırılmış kesme özelliğini kullanabilirsiniz ve daha sonra jmp buradan ulaşabilirsiniz .

İlgili konular