KATUBLO
2018年12月16日

【アセンブリ言語】CASILLの代表的な命令コード一覧を解説

こんにちは。KATUOです。今回はCASILLの代表的なコードについての解説記事を書いていこうと思います。

CPUの構成

簡単に計算を司るメモリの紹介をする。

 

 

汎用レジスタ:データを保持する

プログラムレジスタ:次に実行する命令アドレスを示す

フラグレジスタ:実行結果を示す

スタックポインタ:積立型の一時保存領域

 

アドレスってそもそもなんやっけ?

 

アドレスは1byte毎に割り当てられる識別番号のようなもの。また8bit = 1byteの部分に命令や保持する値を書き込み、計算を行う。言い換えると、このアドレス部分に「命令」と「データ変数」を格納する。

 

メモリとレジスタの関係

メモリにはそれぞれ番地が与えられ、データを各番地に保存できる。一方レジスタに関しては、数に限りがある為、一時的に値を保持するのに使われる。

 

 

CASILL コマンド一覧

アセンブリ言語を用いるにあたってCASILLを使用する。

 

ロード命令

 

GR0にDATA1をロードする。

 

算術減算命令

 

GR0−GR1をGR0に保存する。

 

論理左シフト

 

GR0を1bitシフトする。

 

負分岐命令

 

CPA[算術比較]で比較、条件がFALUSEだった場合、LABEL1に飛ぶという処理。

 

ゼロ分岐命令

 

CPL[論理比較]で比較、条件がTUREだった場合、LABEL1に飛ぶという処理。

 

入力命令

 

LABEL1に入力装置からデータを格納。LABEL2にて入力文字数を指定。

 

サブルーチン呼び出し命令

 

FUNC+GR1番地に飛ぶ処理。

 

*サブルーチン:機能単位で実装をモジュール化したものを指す(関数)

 

 

アセンブラ言語を学ぶ上でおすすめの参考書

64ビットアセンブラ入門―64ビットCPUの基本構造もやさしく解説
↑良さげな参考書。実際、大学の授業やネットで調べるよりも参考書でじっくり勉強した方が身につくと思います。将来有望な情報工学を学ぶ学生は基礎力を学生のうちに身に付けるのが大切であると思うので、リンク先の参考書を一目通して置くと良いかもしれません。

最後まで読んで頂き、ありがとうございました。
SNS等でのシェアが頂ければ幸いです!

プロフィール

@KATUO

現在都内私立大学に通う大学4年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習をスタート。この時期からプログラミングにどハマりし、現在までに「AIスタートアップ」「Webマーケティング会社」でエンジニアとしての業務に没頭してきた。

大学生必見就活イベント