eZ8CPU命令(1)(2017/01/04掲載)今回から数回、マイコン(eZ8CPUコア)の命令を説明していくことにします。(*1)命令は、一般に次の形式で表せます。<オペランド1>,<オペランド2>,<オペランド3>ここで、<ラベル>は必要無ければ省略可能です。<命令ニーモニック>の後にオペランドがいくつ続くかは、命令によって異なります。次に、eZ8CPUの命令を便宜的に分類してみました。アセンブラのプログラミング経験のある人は、おおよそ2/3の命令はニーモニックだけでどんな命令か予測がつくと思います。JP,JR,CALL,BTJZ,BTJNZ,DJZN,BIT0,BIT1次にレジスタについて説明します。こないのですが、eZ8CPUでは4KバイトのRAMはメモリではなくレジスタと呼んでいます。したがって、4Kバイトのメモリはレジスタの感覚で直接操作可能です。プログラマがメモリを直接操作するのに慣れていないと、非常に違和感があります。(*2)次に、オペランドについて簡単に説明します。種々のオペランド表現がありますが、基本は、定数、4ビットレジスタ、8ビットレジスタ、12ビットレジスタの4種類です。先頭に記号(#)を付けることで10進数定数を意味します。記号(%)を付けると16進定数を意味します。'定数123をRAMのFEh番地に転送(2)4ビットレジスタ(ワーキングレジスタ)r0~r15と表現されていた場合、ワーキングレジスタを意味します。ワーキングレジスタは、メモリ(RAM)上の任意の場所(レジスタポインタRPで指定)に設けられた連続した16個の8ビットレジスタです。4ビットでレジスタが指定できるため、短い命令サイズが可能です。'ワーキングレジスタ15を+1加算(3)8ビットレジスタ4KバイトのRAMの先頭256バイト(00h~FFh番地)を意味します。レジスタを示す記号(Rなど)は付けません。'23h番地の内容と24h番地の内容を加算して23番地に保存(4)12ビットレジスタ4KバイトのRAM全体(000h~FFFh番地)を意味します。レジスタを示す記号(Rなど)は付けません。定数や、4ビットレジスタは記号(#やr)で明示されていますが、8ビットレジスタと12ビットレジスタは記号がありません。この2つは、ニーモニックで区別しています。(*3)今回は、ここまで。--------------------(*1)以下の説明は、キット付属のアセンブラによる説明でメーカー純正ツール純正と異なる部分があることをご了承ください。(*2)ワーキングレジスタの番地を固定し、汎用レジスタのように使う方法も可能です。(*3)すべて当てはまるかどうかはわかりませんが、ニーモニック末尾にXが付くと12ビットレジスタみたいです。[トップページに戻る]。