東京で勝手に消耗してる

東京で勝手に消耗してる地方人の日々、思う事。あんまりいい話は無い。

自作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 名前なしおまけ