ブックマーク / hp.vector.co.jp (6)

  • fnami: AMD64

    2^20+HMA #4 #1 物理アドレスと仮想アドレスのビット数はCPUID命令のEAX=80000008hで得られる。 #2 ES,CS,SS,DSは0。FS,GSはセグメントディスクリプタまたはモデル固有レジスタで指定。 #3 x86では、ページサイズ拡張または物理アドレス拡張を有効にすると2^36になるが、AMD64のlegacyモードではそれぞれ2^40、2^52になる。 #4 リアルモードの特殊な状態を使うと、2^32になる。 各モードの区別は次のビットで行う。 legacyモードとlongモード: EFER(モデル固有レジスタC0000080h)のLMEビット compatibilityモードと64ビットモード: コードセグメントディスクリプタのLビット compatibilityモード中の16/32ビット: コードセグメントディスクリプタのDビット(legacyモードと同様

    yupo5656
    yupo5656 2006/06/06
    EM64T, レジスタの名前, 32bitは %r8d とか
  • fnami: PC-A801 Emulator

    PC-A801エミュレータ(開発予告) PC-A801とは PC-A801エミュレータは、仮想ハードウェアPC-A801、A8-BIOS、DOS/256Tを含んだシステムです。通常のエミュレータと異なり、エミュレート対象となる物のハードウェアは存在しません。PC-A800シリーズは、NECPC-9800シリーズの後継機を今作るとしたらどうなるかを空想して、fnamiが策定した仕様に基づく、仮想的なハードウェアのシリーズ名です。PC-A801はその最初の仕様の名前であり、エミュレータによって実現された仮想ハードウェアの名前でもあります。 (仮想ハードウェアの)技術的詳細 熱く語る プロセッサはAMD64アーキテクチャ PC-A801エミュレータは、AMD64およびその互換アーキテクチャで動作し、その上で動くソフトウェアからもAMD64のほとんどの機能が利用可能になる予定です。 VRAMは

    yupo5656
    yupo5656 2006/06/06
    「通常のエミュレータと異なり、エミュレート対象となる本物のハードウェアは存在しません」
  • 通り抜けループ

    Under construction

    yupo5656
    yupo5656 2005/12/12
    Windows95時代に使っていた 「通り抜けループ」
  • 正規表現

    正規表現 前のドキュメント ViViの正規表現処理について説明する。 ■ 有限オートマトン チョムスキーの言語理論によれば、形式文法はクラス0~3に分類できる。正規表現は生成規則の制約が最も強いクラス3に属し、入力文字列が与えられた正規表現として受理されるかどうかを有限オートマトンにより決定することが出来る。 有限オートマトンとは下図の様に(有限の)状態と、入力文字によりどの状態に遷移するかの規則により構成されるものである。 'a'     'b' ○────→○────→◎ q0     q1     q2 上図では3つの状態、q0, q1, q2 があり、'a' が入力されると状態 q0 から q1 に遷移し、'b' が入力されると q1 から q2 に遷移することを表す。q2 は受理状態なので、"ab" が入力文字列であれば、めでたく受理されることになる。 正規表現を有限オートマト

    yupo5656
    yupo5656 2005/09/19
    NFAをバックトラックなしで実行して、部分参照(capture)を実現する方法の説明。すばらしい。regex
  • fnami: Assembler

    アセンブラでの高速化 はじめに 共通/80286以前 80386以降 80486以降 Pentium PentiumPro以降 Pentium4 高速化の例 主な命令一覧 参考文献 はじめに アセンブリ言語でプログラムを書くということは、プログラムに最高の自由度と性能を与えるということである。アセンブリ言語ではコンピュータの持つ機能をすべて使えるので、高級言語では不可能だった処理が可能になるし、高級言語からは見えないCPUの機能を利用してプログラムを高速にしたり、プログラムを小さくしたりすることができる。特にインテルの8086とその後継プロセッサ(86系プロセッサ)の場合、アセンブリ言語で書き直すだけでプログラムが大幅に小さく、そして速くなることは多い。しかし、ただ単純にアセンブリ言語で書いただけでは、コンピュータはその来の力を発揮しているとは言い難い。コンピュータには、もっと速く実行す

    yupo5656
    yupo5656 2005/08/10
    アセンブラでの高速化
  • IA-64のお勉強ノート

    IA-64に関するお勉強メモ。間違ってても責任は持てん。でも何か気がついたらメールで教えてください。 Goal このお勉強ノートのGoalは、一般的な、純粋に論理を扱うプログラムのディスアセンブリが読めること。 入出力やメモリマネージメント(ヒープじゃなくて、メモリマッピングなどのこと、念のため)・コンテクストスイッチングなどCPUべったりのOS的オペレーション、マルティメディア系のパラレル演算や、 浮動小数点演算な どは積極的には扱わない。 また、ia64系プロセッサの概論や特徴などは、ニュースサイトをはじめとして解説系まで他にいくらでもWebサイトがあるので、ここでは省略する。 また、コンパイラライタが知っているべき事項で、デバッガでディスアセンブリを追っかけるためにはあまり必要のない、あるいは無視しても大差ないと思われるものについても、詳細な記述は省略する方針。 いずれにせよ、コンパ

    yupo5656
    yupo5656 2005/06/25
  • 1