問題タブ [bochs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - カーネルが正しいアドレスにロードされていません
さて、私はこの問題で残っている髪を引き裂いています...
基本的に、私は非常に単純な趣味の OS を開発しようとしています。OS は、FAT12 フロッピー ディスクを使用しない X86 プラットフォームで実行されます。自分のマシンでテストする前に、ディスク イメージを作成して Bochs 2.6.2 でテストします。
いつものようにディスクイメージのブートセクタにブートローダを置き、カーネルイメージ(KERNEL.SYS)を通常のFAT12ファイルとして追加しました。
ブートローダは、KERNEL.SYS を見つけてアドレス 1000h:0000 にロードし、ジャンプすることを目的としています。
ただし、Bochs でディスク イメージをテストすると、次の結果が得られます (07C0:0000 へのジャンプから開始)。
私の知る限り、Bochs はリセットし続ける (三重障害?) か、0000:0000 に戻る (A20 が有効になっていない) ことを知っています。カーネルの開始時に (テスト上の理由から)無限 loop( JMP $) があるため、実行されていないことがわかっています。また、1000:000 が 1 MB を超えないことも知っているので、よくわかりません。
ただし、これは私が本当に気になる部分です。Bochs (32 MB) からメモリ ダンプを取得すると、KERNEL.SYS が 0980:0000 または 0000:9800 にロードされていることがわかります。私はそこに何もロードしなかったという事実を知っているので、何が起こっているのですか?
ブートローダー コード:
assembly - シンプルなブートローダーと bochs
AT&T 構文で書かれた単純なブートローダーがあります。
私はyasm -f bin -o boot.bin loader.sそれをコンパイルするために使用し、bochs を実行します。
しかし、bochsあると言ったno bootable device。
そこで、次の質問があります。
- AT&T 構文で書き直すにはどうすればよいですか (代わりにどの構造を使用する必要があります
times 510-($-$$) db 0)か? - ボクの何が悪いの?
ありがとう!
PSBochsはサポート付きでコンパイルされましたが、公式の arch リポジトリからはx86_64動作しません。bochs
macos - Mac OS X マウンテン ライオンで bochs を作成する際の問題
X11 を Mac にインストールしました。
ターミナルにいくつかのコードを入力すると:
./configure --with-x11
作る
その後、いくつかの問題が発生します。
問題を解決する方法を教えていただけますか?
kernel - レジスタが命令と一致しないのはなぜですか?
bochs のデバッグ機能を使用して、各命令の後にレジスタをチェックしました。しかし、レジスタが命令と一致しないことがわかりました.y mov sp, 0100h sp レジスタはまだ 0 でした。
ax レジスタが 0 に変更されましたが、アプリケーションは正しく実行されました。なんで?
linux - bochs を使用した printf() の呼び出し時の Pintos カーネル トリプル フォールト
Ubuntu を実行している自宅のコンピューターで作業している Pintos プロジェクトを始めたばかりです。
ディレクトリからプロジェクトをコンパイルできsrc/threads/、最初のテストpintos run alarm-multipleは問題なく動作しているようです (デフォルトで qemu が実行されることに注意してください)。
しかし、bochsエミュレーターでこのテストを実行すると、printf()から最初に呼び出されたように見える をヒットするとすぐにパニックになりread_command_line()ます。
ピント:
ピントス-gdb:
ご覧のとおり、gdb で (continue) コマンドを実行するとすぐに、 の呼び出し時にcpintos がクラッシュします。read_command_line()printf()
ベースラインの Pintos コードに大幅な変更を加えたとは思いません。この関数呼び出しで bochs をパニックに陥れている可能性があるのは何ですか? この同じテストを qemu で実行しても、この問題はないようです。
assembly - nasm - エラー: 行頭にラベルまたは命令が必要です
こんにちは、私はアセンブリに非常に慣れていません(今日始めたばかりです) 。このチュートリアルで述べられていることを正確に実行すると、この問題に遭遇しました。次のテキストで asm ファイルを作成しました。
asmファイルのあるフォルダーには、nasmとnasmpathのコピーがあり、bochsへのショートカットもあります。私がやろうとしているのは、それをbinファイルに変換することです。このコマンドを入力すると:
このエラーが発生します
これは悪いチュートリアルなのか、それとも間違って入力しているのか疑問に思っています。また、「ラベルまたは指示」の意味を知りたいです。