低レイヤーのメモ
アセンブラ
定義EQU
0x0A
ラインフィード(LF)、カーソルを一行下げる0x0D
キャリッジリターン(CR)、カーソルを左端に戻す
基数のPrefix
0b00
2進数0o00
4進数0d00
8進数0x00
16進数
データ定義
- DB: Define Byte, 1byte
- DW: Define Word, 2byte
- DD: Define Double word, 4byte
- DQ: Define Quad word, 8byte
セクション
.text
ROMに配置(書き換え不可).data
RAMに配置(書き換え可能)
ロケーションカウンタ
$$
: セクション開始位置$
: セクション先頭からのオフセット
マクロ
定義
%macro <マクロ名> <引数の数> ... %endmacro
%%
: マクロ内ローカルラベル
C言語呼び出し
cdecl
BIOS
- 電源投入後最初に起動される
- 関数の集まり
- ハードウェア制御が可能
- ソフトウェア割り込みで実装
- 割り込み番号で関数を区別する
- 512バイトをロードする
BPB(BIOS Parameter Block)
ディスクアクセス時にBIOSで必要とする情報
IPL(Initial Progaram Loader)
ブートプログラム。BPBのあとに配置される。 BIOSのプログラムの実行は先頭から実行されるので、ジャンプ命令でIPL飛んでから実行される。
CPU命令
ソフトウェア割り込み
INT <src>
ソフトウェア割り込み- 事前に設定された割り込みベクタテーブルを使って、指定されたベクタ番号のセグメントとオフセットをCS、IPレジスタに設定する。
IRET
復帰- 割り込み処理からの復帰