タグ

ブックマーク / tociyuki.hatenablog.jp (2)

  • FAT12 形式フロッピーディスクから BOOT.SYS を読んで実行する IPL 作り - Tociyuki::Diary

    GNU アセンブラで 16 ビット・リアル・モード用のバイナリを作る方法がわかったので、腕試しと趣味を兼ねて、FAT12 のルート・ディレクトリから boot.sys なる名称のファイルを探し、メモリにロードし、実行するイニシャル・プログラム・ローダ(IPL)を作ってみました。この IPL は 12 ビット形式のファイル・アロケーション・テーブル (FAT) を辿ってファイルをロードするのが特徴です。つまり、boot.sys を連続したセクタに格納していなくても、ロード実行できるというわけです。ただし、FAT とルート・ディレクトリを富豪的に扱っているため、ロード可能な boot.sys の大きさに制限があり、400k バイトぐらいが上限になっています。とはいえど、これだけあれば、boot.sys の中で 32ビット・モードや 64 ビット・モードにプロセッサを切り替えて、C言語で記述した

    FAT12 形式フロッピーディスクから BOOT.SYS を読んで実行する IPL 作り - Tociyuki::Diary
  • テスト駆動で 0 から 255 の数字にマッチする正規表現へ変形してみる - Tociyuki::Diary

    ぶくま経由で、RFC 3986 URI の日語訳にたどり着き、読んでいました。スムーズな日語ですんなりと読めて、良い訳だと思いました。私は誤訳を見つけられませんでした。 それはともかく、読んでいる最中に、RFC3986 だけではないのですが、IPv4 アドレスの数字にマッチする構文が、正規表現向けでないのに改めて気になりました。RFC の記述をそのまま正規表現にすると、バックトラックをおこす書き方になっています。 バックトラックがおきないようにするには、先頭から1文字ずつ見ていくだけで残りの選択肢のどれに進めばいいか決定できるようにすればよろしい。ということで、これをテスト駆動で正規表現に向いた記述に変更してみました。 ⇒ http://www.studyinghttp.net/cgi-bin/rfc.cgi?3986#Sec3.2.2 IPv4address = dec-octet

    テスト駆動で 0 から 255 の数字にマッチする正規表現へ変形してみる - Tociyuki::Diary
  • 1