osdev

    2

    1答えて

    ecxレジスタを読み取ってCPUとNUMAノードのIDを検出するために命令を使用しています(私はosを開発中です)。 コードは、この機能を使用するには、以下の inline static long get(unsigned char *node_id = 0, unsigned char *cpu_id = 0) { unsigned int p; __asm__ __vol

    -1

    1答えて

    私は現在、オペレーティングシステムを開発中です。 ページングのプロセスで、私はページフォルトハンドラを作成しています。ページフォルトハンドラで write_cr0 : push ebp mov ebp, esp mov eax, dword[ebp+8] mov cr0, eax pop ebp retn は、オフページングまたはオンにする上記write_cr0機能を使用するために

    1

    1答えて

    modprobeをインストールするにはどうすればいいですか?私はすでにapt-getを使ってkmodをインストールしています。私はDebian 8を使用しています。ありがとう。

    1

    1答えて

    私はRustにOSを書いており、私が計算している仮想アドレス(直接のタイプu32)を呼び出す必要があります。私はこれが比較的単純であると予想していました:しかし、これはキャストが非プリミティブであると訴えています。それは私がFrom形質を使用することを示唆していますが、これがどのように役立つかはわかりません(私はRustに比較的新しいですが、何かが欠けている可能性があります)。 error[E06

    -3

    1答えて

    まあ、命令全体を特定のアドレス(命令のサイズに依存しない)に移動するアセンブリ命令を見つけようとしています。そのような命令がない場合、システムコールや他のソフトウェアなしでマルチスレッド化が達成される方法について、誰かに私にいくつかのアイデアを教えてもらえますか?言い換えれば、私自身のオペレーティングシステムを作っているとしましょう。アセンブリで効率的なコードを使ってマルチスレッドを有効にするには

    2

    1答えて

    私はアセンブリを学んでいる間にカーネルの仕組みを学び、ブート可能なx86_64カーネルをうまく作成する方法を学ぶために、私は問題がありました: I 0xB8000のVGAバッファを使用して、 "main.c"(以下のすべてのファイル)にある関数を含むテキストを正常に出力しようとしました。これは、カーネルプロトタイプの32ビットバージョンと同じ方法ですが、開始ファイルが異なります。 ここで問題となる

    2

    2答えて

    私は自分自身でNASMアセンブラを使ってブートローダを書こうとしています。私は2行のテキストを印刷し、キー押下を待ち、押したキーが 'r'であればリブートし、押されたキーが 'b'であれば起動を続けようとしています。しかし、それは私の質問の対象ではありません(私はそれらの機能を後で実装します。したがって、現時点でコードのnop命令)。むしろ、なぜ私の改行文字0xAがこのような変わった形で印刷される

    1

    1答えて

    GCCを使用して簡単なオペレーティングシステムを作成しようとしています。これにより、入力したディスプレイにテキストを表示できます。私はロードする必要があり、外部アセンブリ言語モジュールではなくインラインアセンブリを使用してできるようにするために、割り込みテーブルCを持っています。 私が探しているのは、Cポインタをインラインアセンブリに渡す方法です。 メモリオペランドを必要と私はインラインしようとし

    0

    1答えて

    次のx86アセンブリコードで: dd 0x1BADB002 dd 0x00 dd - (0x1BADB002+0x00) 値は、任意の変数に代入していないようです。では、このコードスニペットは何をしていますか?私はそれがメモリに保存されていることを聞いたことがありますが、正確にどこに?

    -1

    1答えて

    アセンブリ(ブートローダとカーネル)にOSを書いていて、QEMUを使ってデバッグしています。 私はいくつかのデバッグブレークポイントを設定して、実行を一時停止し、その時に1つの命令だけを実行したい(シングルステップ)。また、実行時にレジスタとメモリの内容を読み込んで設定したい。私はこれを行う方法はGDBを使うことだと読んでいます。問題は私がGDBを検索した前後でGDBを使用していないことです。GD