0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは
名古屋で3年ほどエンジニアをしている片田と申します
プログラムはなぜ動くのかをいまさらながらに読んだので理解したことをアウトプットしたいと思います
(高次元の理解はしていないのでご了承ください)

概要

今回はCPU編です

  • レジスタ

  • 命令の種類

レジスタ

処理対象となる命令やデータを格納する領域

レジスタの種類 役割
アキュムレーター 演算に利用するデータ or 演算後のデータを格納する
フラグレジスタ CPUの演算状態を格納する
プログラムカウンタ 次に実行する命令が格納されたメモリのアドレスを格納する
ベースレジスタ データ用のメモリ領域の先頭アドレスや基準値を格納する
インデックスレジスタ ベースレジスタの増殖値を格納する
汎用レジスタ 任意のデータを格納する
スタックレジスタ スタック領域の先頭アドレスを格納する

命令の種類

命令の種類 内容
ジャンプ命令 直前に行われた演算の結果を参照して、ジャンプするか判断する
直前の演算結果はフラグレジスタに格納されている
コール命令 関数を呼び出す命令
呼び出し元のアドレスをスタック領域に保存し、関数が定義してある先頭アドレスをプログラムカウンタに設定する
リターン命令 スタック領域に保存された呼び出し元のアドレスをプログラムカウンタに設定する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?