2006-08-09 (Wednesday) [長年日記]
■
OS自作入門 4日目
32ビットモードに加え,C言語の導入などの話でした. アセンブリストではないボクにとってはだんだん話が楽になってきた.
コードにもボクの流儀とは違う箇所も出てきて面白い. たとえば,
#define COL8_840000 9
という記述があったりするのだけど,ボクだったら
#define COL8_RED 9
のように書くかなぁ.とかそんな部分でも楽しんでいます.
ふむ.3日目と4日目のコードは面倒で目を通していません. 6日目で分割コンパイルをするようなので,それが終わったら全体に目を通してみようと思います.
■ .NETの実装が激しい件について
とても次世代の言語のVMとは思えない.
以下,Mono Projectのソースコードより引用.
guint32 mono_metadata_token_from_dor (guint32 dor_index) { guint32 table, idx; table = dor_index & 0x03; idx = dor_index >> 2; switch (table){ case 0: /* TypeDef */ return MONO_TOKEN_TYPE_DEF | idx; case 1: /* TypeRef */ return MONO_TOKEN_TYPE_REF | idx; case 2: /* TypeSpec */ return MONO_TOKEN_TYPE_SPEC | idx; default: g_assert_not_reached (); } return 0; }
ビット演算しまくりんぐwww ボクの貧弱な頭ではそろそろ限界かなーwww
とはいえ,他のVMの実装は真面目に見たことがないんですが, みんなこんなもんですかね?
[ツッコミを入れる]
[]
本日のPingbacks(全0件)








