機械語
CPUが実行するプログラムの形式そのもののこと
0,1の並びの命令
バイナリコード
16ビットなら0か1が16個並ぶ
機械語によって、ソフトとハードが交わる
低水準なプログラムを一連の機械語命令としてコード化できるように設計されている
算術演算
論理演算
メモリからのフェッチ
メモリへのデータ保存
レジスタ間のデータ移動
ブーリアン値の条件テスト
etc.
メモリアクセス
メモリアクセスを行うコマンドは以下の2つのどちらかに該当する
算術演算、論理演算
読み込み、格納
アドレッシングモード
メモリアクセスを行うコマンドはいくつかの種類のアドレッシングモードを用いている #?? 要求されたメモリのワードに対して、そのアドレスを指定する方法 種類
直接アドレッシング
direct addressing
直接アドレスを指定する
code:s
LOAD R1, 67 // R1 ← Memory67 イミディエイトアドレッシング
immediate addressing
命令コードの値をそのまま読み込む
code:s
LOADI R1, 67 // R1 ← 67
間接アドレッシング
indirect addressing
必要なアドレスを保持しているメモリが命令で指定される
ポインタを扱うのに使う
C言語の配列とか
code:s
// x=foojもしくはx=*(foo+j)の変換 ADD R1, foo, j // R1 ← foo+j
LOAD R2, R1 // R2 ← MemoryR1 STR R2, x // x ← R2
分岐命令
反復
条件分岐
サブルーチン呼び出し
あるコードセグメントの最初のコマンドに移動する
未読
参考