リアルモード用アセンブラ

以前,ブート部分がどうなっているのか気になったので,ソースコードを眺めてみたら,アセンブリが全部プリプロセッサのマクロで書かれていて驚いた.というのも,Plan9アセンブラ(8a)はリアルモード,16ビットのコードを吐けないからだ.

/sys/src/boot/pc/x16.hに定義がある.例えば,簡単なところだと,NOPは

#define NOP             BYTE $0x90

という具合に.

何だかなぁと思っていたら,今日,リアルモード用のアセンブラを公開したという投稿があった.

  • /n/sources/contrib/quanstro/realmode.tbz

(追記: 2007-03-23) あろはさんが「本当にプリプロセッサでアセンブラ書いてるとは」でmbr.sの実例を挙げて書かれているので,興味のある人はそちらへ〜