generated at
機械語
CPUが実行するプログラムの形式そのもののこと
0,1の並びの命令
バイナリコード
16ビットなら0か1が16個並ぶ
機械語によって、ソフトとハードが交わる
使用によって決められた形式に従い、CPUレジスタを用いてメモリを操作する
低水準なプログラムを一連の機械語命令としてコード化できるように設計されている
算術演算
論理演算
メモリからのフェッチ
メモリへのデータ保存
レジスタ間のデータ移動
ブーリアン値の条件テスト
etc.
機械語の命令コードに記号を用いたものがアセンブリ言語


メモリアクセス
メモリアクセスを行うコマンドは以下の2つのどちらかに該当する
算術演算、論理演算
読み込み、格納
アドレッシングモード
メモリアクセスを行うコマンドはいくつかの種類のアドレッシングモードを用いている #??
要求されたメモリのワードに対して、そのアドレスを指定する方法
以下、アセンブリ言語の構文を使っているが、機械語の説明。
種類
直接アドレッシング
direct addressing
直接アドレスを指定する
s
LOAD R1, 67 // R1 ← Memory[67]
イミディエイトアドレッシング
immediate addressing
命令コードの値をそのまま読み込む
s
LOADI R1, 67 // R1 ← 67
間接アドレッシング
indirect addressing
必要なアドレスを保持しているメモリが命令で指定される
ポインタを扱うのに使う
C言語の配列とか
s
// x=foo[j]もしくはx=*(foo+j)の変換 ADD R1, foo, j // R1 ← foo+j LOAD R2, R1 // R2 ← Memory[R1] STR R2, x // x ← R2

分岐命令
反復
条件分岐
サブルーチン呼び出し
あるコードセグメントの最初のコマンドに移動する

未読

参考