マウス制御と32ビット制御切り替え
新しく学んだ知識
- マウスのボタンの状態はマウスから送られてくるデータ(3バイト)の1バイト目の下位3ビットに収まっている。
- キーボードコントローラのおまけ出力ポートに、0xdfというデータを出力するとA20GATE信号線がONになる。A20GATE信号線は全メモリを使用可能にするためのもの。
命令 |
説明 |
NOP |
何もしない命令。 |
IMUL |
掛け算命令。 |
SUB |
引き算命令。 |
SHR |
右シフト命令。SHR ECX,2だと ECX /= 4(4で割るという意味)になる。1ビット右にシフトさせるのは 1/2(2で割る)のと同じことになる。 |
JZ |
jump if zero. 直前の計算結果がゼロならジャンプする |
JNZ |
jump if not zero. JZの逆。 |
ALIGNB |
切がよくなるまでDB 0 を入れなさいといウ命令。 |
関数 |
説明 |
memcpy |
memcpy(転送元番地, 転送先番地, 転送サイズ) |
はりぼてOSのメモリマップ
0x00000000 - 0x000fffff : 起動中にいろいろ使うけど、その後は空き(1MB)
0x000fffff - 0x00267fff : フロッピーディスクの内容記憶用(1440KB)
0x00268000 - 0x0026f7ff : 空き(30KB)
0x0026f800 - 0x0026ffff : IDT(2KB)
0x00270000 - 0x0027ffff : GDT(64KB)
0x00280000 - 0x002fffff : bootpack.hrb(512KB)
0x00300000 - 0x003fffff : スタックなど(1MB)
0x00400000 - : 空き
8日目の感想
8日目となると最初の3日目あたりまでにやった内容を忘れていしまっているので、復習しないと。。。