タグ

ブックマーク / wocota.hatenadiary.org (2)

  • メモリ情報の習得 - OSのようなもの

    ここらで,僕らの興味の対象はメモリ管理へと移る。マシンに搭載されているメモリの量を知らなければ,僕らのメモリ管理の物語は始まらないので,搭載メモリ容量を習得する方法について模索しよう。 起動されたプロテクトモードの OS から,搭載メモリ容量を知るにはどうすればいいだろうか? これは一般に次のような方法で確認できる。まず,メモリ0x0に或る値を書き込み,そのメモリから値を読み出しこの値を書き込んだ値と比較する。次に,メモリアドレスをインクリメントして先ほどと同様の操作を行い,これを繰り返す。もし比較した値が一致しなければ,有効なメモリ外へ書き込み・読み込みを行ったと推測できるので,ここまでに,繰り返したカウントが搭載メモリ容量となる。―― 実際には,この処理を行うプログラムは複雑である。なぜならば,メモリキャッシュを無効にしなければならないし,プログラム自身が読み込まれているメモリ領域まで

    メモリ情報の習得 - OSのようなもの
    khiker
    khiker 2010/02/24
  • GNUアセンブラ(GAS)でインテル記法を使う - OSのようなもの

    GCCではインラインアセンブリでGASを使うことが出来る。 インラインアセンブラでは,Cとアセンブラ間でのスタックのやり取りをまったく気にすることなく,シームレスにコードを記述できる。 それに拡張子を.SにしておけばGCCはgasをcppで前処理してくれるので,Cのプリプロセッサが使用できる。 つまりCとGASは愛称抜群だ! ただ一つ残念なことは,美しくないAT&T記法を採用していることなのだが, バージョン2.10からインテル記法もサポートされたようで,もうGASを使わない理由が無い。 早速インテル記法を使ってみるよう。 gasでインテル記法を使うには.intel_syntaxディレクティブを書いてやればいい。 例えば次のコードは: movl %eax, %ebx こう書ける: .intel_syntax noprefix mov ebx, eax うん。美しい! 参考に.intel_s

    GNUアセンブラ(GAS)でインテル記法を使う - OSのようなもの
    khiker
    khiker 2009/05/07
    インテル表記
  • 1