質問

BochsエミュレータでBIOS int 0x15を使用していますが、設定した内容に関係なく、常に同じメモリサイズ(34440)が返されます:

mov ax, 0x88
int 0x15

より良いメモリ検出方法があることは知っていますが、なぜこれが期待どおりに機能しなかったのかを理解したかったです(念のため、何かしらの処理を行った場合)

これはなぜですか? bochs biosはこの値を返すようにハードコードされているだけですか?

役に立ちましたか?

解決

表示される戻り値(AX = 34440)は、 AH = 86HおよびAL = 88H です。メモリサイズではありません。また、エラーを示すキャリーフラグが戻ってくるのを目にすることでしょう。エラーコード86H(AH内)は、機能がサポートされていないことを意味します。意図的または意図せずにBochsをセットアップして、AT以前のPCをエミュレートした可能性があります。

他のヒント

確認することができます INT 15h、AX = E820h-システムアドレスマップのクエリ INT15 / E820 BIOSが提供する物理RAMマップをどのように調整するか

拡張メモリサイズの取得

mov ah,88h
int 15h
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top