自作OS3日目
とりあえずまとめ
アセンブラの命令
- ORG 機械語の実行時にPCのメモリのどこに呼ばれるか
- JMP goto分的な
- hoge: ラベル宣言
- MOV 代入。MOV AX, 0 でAX = 0
- MOV BYTE [678], 123 メモリ指定で代入(8ビット)
- MOV WORD [678], 123 メモリ指定で代入(16ビット)
- MOV AL, BYTE [SI] ALレジスタにSIレジスタを代入(8ビット)
- MOV AL, WORD [SI], 123 ALレジスタにSIレジスタを代入(16ビット)
- CMP AL, 0 ALと0の比較
- JE fin jump if equal 上記のCMPが同じならfinラベルへジャンプ
レジスタの名前
16ビットレジスタ
- AX アキュムレータ(accumulator :累積演算器)
- CX カウンタ(counter : 数を数える)
- DX データ(data : データ)
- BX ベース(base : 土台)
- SP スタックポインタ(stack pointer : スタック用ポインタ)
- BP ベースポインタ(base pointer : ベース用ポインタ)
- SI ソースインデックス(source index : 読み込みインデックス)
- DI デスティネーションインデックス(destination index : 書込インデックス)
8ビットレジスタ
- AL アキュムレータロウ
- CL カウンタロウ
- DL データロウ
- BL ベースロウ
- AH アキュムレータハイ
- CH カウンターハイ
- DL データハイ
- BH ベースハイ ハイ、ロウは◯Xの0~7ビットと8~15ビットの事
32ビットレジスタ
- EAX
- ECX
- EDX
- EBX
- ESP
- EBP
- ESI
- EDI
セグメントレジスタ(16ビット)
- ES エクストラセグメント(extra segment :おまけセグメント??)
- CS コードセグメント
- SS スタックセグメント
- DS データセグメント
- FS 名前なしおまけ
- GS 名前なしおまけ