2012-07-10 9 views
5

アセンブリにオペレーティングシステムを書きたいと思っています。さあ、ちょうど "ばかだと言うだけではなく、%s、%s、%s、%sなどでもっと良くする必要があります。私はそれが普通に学ぶことではなく、数カ月かかることもあると知っていますが、私は試してみたいと思います。私がここで答えを得なければ、私はちょうど別の場所に尋ねます。あなたは、nasmの入門チュートリアルにリンクするか、アセンブリでC関数を使わずに画面に書き込む方法を教えてください。私はかなりのすべての主要なアセンブリの命令を知っており、私は長い間コード化してきました。 編集:nasmとwin32を使用したい純粋なアセンブリ - リンクされたC関数なし

+0

私は一度覚えて、私はブートローダーを書くことについて良い記事を読んだwww.codeproject.comを検索してください。 – valdo

+0

http://wiki.osdev.org/Printing_to_Screen – cnicutar

+0

またはBIOSを使用http://wiki.osdev.org/BIOS#BIOS_functions –

答えて

1

C関数やシステムコールを使用せずに実行する唯一の方法は、アセンブリコードを他のオペレーティングシステムなしで実行するか、BochsやQEMUのようなエミュレータで実行させることです。

Hereは、スクリーンに書き込み、C関数を使用せず、そのレベルでWin32に依存しない簡単なチュートリアルです。ウィンドウで実行している間にこのようなことをするようなことを書いておきたいのであれば、私はC関数が唯一の方法であることを恐れています。

osdev.orgには、オペレーティングシステム開発のさまざまな側面について、アセンブリでコードを記述する方法の多くを含む多くの優れた記事とチュートリアルが含まれています。上記の他の優れた提案に加えて

2

は、NASMフォーラムは(あなたはNASMとフレンドリーマニュアルの最新バージョンを取得することができます)にあります:

http://www.nasm.us

それは「Netwide」アセンブラのは奇妙に思えるかもしれませんホームページには国コードがあります。それを "米国"とは考えてはいけません。それを "Like、Nasm us、おい!"と考えてください。 :)

一度pmodeに切り替えるとBIOS割り込みは使用できなくなるため、ハードウェアに直接アクセスする方法を学ぶことは理にかなっています。画面への書き込みは簡単に始めることができます。 「画面」は通常0xB800000(セグメント:オフセット形式のB800:0000 - おそらく必要です)であることを知る必要があります。レイアウトは、キャラクタのための1バイト(偶数バイト)と「アトリビュート」(カラー、ほとんど)のための1バイト(奇数バイト)であることを知る必要があります。割り込みを使用していなくても、RBILには役立つかもしれない "ports.lst"も含まれています。上記のように、osdev.orgはあなたの新しい親友です!

ハッピーBootin'、

フランク

0

私は同意誰とNick Morganを、引用する:

まあ、私は学習のx86が有用であるとは思いません。私はあなたの日の仕事でアセンブリ言語を書かなければならないとは思わない - この[ラーニングアセンブラ]は純粋に学問的なエクササイズであり、あなたの心とあなたの思考を拡大するものです。 6502 [アセンブリ言語]は、異なる時代に書かれました。これは、開発者の大多数が、新しく抱かれた高水準プログラミング言語ではなく、直接アセンブリを書く時です。それで、それは人間によって書かれるように設計されました。より現代的なアセンブリ言語は、コンパイラによって書かれたものであるため、それらに任せましょう。さらに、6502は楽しいです。誰もx86の楽しさと呼ばれることはありません。

私は現在、楽しみのための "オペレーティングシステム"も書いています(聞いたことがあるかもしれません)。DCPU-16 assembly languagethis oneのような多くの利用可能なブラウザ内の「IDE」のうちの1つを使用することができ、x86アセンブリについて理解するのに必要なのと同じ原理が適用されるので、楽しいです。

+0

しかし、x86は、人々が手作業でアセンブリを書いた時に、わずか3年後で、6502。 – harold

+0

うん、私は彼が何年もの間、それはもう手で書かれることを意図していないものに進化したと言っていると思います:) – fresskoma

+0

それはより有効な点です、私はPProで始まりましたが、SSEがP3で導入されたときに真実を止めたIMO - 10年以上も経っても、偶然にしばらくはなく定期的に適切に使用するコンパイラをまだ見ていません。 – harold

関連する問題