KATUBLO
2018年12月16日

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

なんでこの記事を書いたか?

大学のアセンブリ言語の中間テストをやらかしてしまい、課題をだされ、どうせなら記事で整理しようと思ったから。

 

CPUの構成

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

 

 

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

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

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

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

 

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

 

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

 

メモリとレジスタの関係

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

 

 

CASILL コマンド一覧

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

 

ロード命令

 

GR0にDATA1をロードする。

 

算術減算命令

 

GR0−GR1をGR0に保存する。

 

論理左シフト

 

GR0を1bitシフトする。

 

負分岐命令

 

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

 

ゼロ分岐命令

 

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

 

入力命令

 

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

 

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

 

FUNC+GR1番地に飛ぶ処理。

 

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

 

 

感想・気づき

完全にメモ書き程度になってしまいました。

 

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

プロフィール

@KATUO

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

過去の投稿