第22章 LC86K命令概要

ここでは、個々の命令を説明する前に、フラグの動作、アドレッシングについてを説明します。


22-1 命令概要


22-1-1 算術演算命令

算術演算命令は、アキュムレータを中心とした四則演算、インクリメント、またはデクリメントを行う命令です。四則演算の結果により、次のようにCY,AC,OVが設定されます。

CY(キャリーフラグ)

AC(補助キャリーフラグ)

OV(オーバーフローフラグ)

22-1-2 論理演算命令

論理演算命令は、論理演算やローテートを行う命令です。RORC、ROLC命令実行時にはCYも影響を受けます。

22-1-3 データ転送命令

データ転送命令は、RAM、特殊機能レジスタ(SFR)へのデータの書き込み、読み込み、データの退避または交換を行います。

22-1-4 ジャンプ命令

ジャンプ命令は、無条件に目的の命令に制御を移す命令です。

22-1-5 条件分岐命令

条件分岐命令は、命令が指定する条件が満たされている(真)か、いない(偽)かを判定し、真ならば目的の番地へ分岐します。偽ならば分岐は行われず、次の命令の実行に移ります。

BE,BNE命令は、8ビットデータどうしの比較によって分岐する命令で、比較結果により次のようにCYをセットまたはリセットします。

00300.gif

22-1-6 サブルーチン命令

サブルーチン命令は、目的の命令に制御を移すための無条件分岐を行います。分岐後、復帰命令(RET、RETI)によってCALL命令に続く命令に制御を戻すために、スタックにアドレスを格納します。スタックはRAMにあり、スタックポインタ(SP)によって指定します。サブルーチンのネスティングレベルに応じてスタックに使用するRAM領域を確保しておく必要があります。

ノート

ビジュアルメモリのスタックは、RAMのバンク0に確保されます。また、アプリケーション起動時にシステムBIOSが、7FHに設定します。POP命令を実行すると、SPが+1された後データがストアされますので、実データは80H以降に格納されます。また、スタックは、7FHから0FFHへと上位へ向って消費されます。

内蔵時計機能もスタックを20バイト消費します。

22-1-7 ビット操作命令

ビット操作命令は、指定したRAMまたは特殊機能レジスタ(SFR)の内容をビット単位で操作する命令です。

22-1-8 その他の命令

何もせず1サイクルクロック消費するNOP命令があります。

22-1-9 マクロ命令

専用の標準マクロ命令です。ROM内システムBIOSとフラッシュメモリのアプリケーションプログラムの実行を切り換えます。

22-1-10 アドレッシング

フラッシュメモリやRAM、特殊機能レジスタ(SFR)のアドレッシングには、いくつかの方法があります。

22-1-11 プログラムメモリのアドレッシング

ジャンプ命令や分岐命令、サブルーチン命令では、ジャンプ(分岐)先のプログラムROMのアドレスを命令コードで指定します。この場合、次のアドレッシングによってアドレスが指定されます。

r8(8ビット相対アドレッシング)

r16(16ビット相対アドレッシング)

a12(12ビット絶対アドレッシング)

a16(16ビット絶対アドレッシング)

テーブルジャンプについて

例1

例2

例3

22-1-12 RAMと特殊機能レジスタ(SFR)のアドレッシング

d9(直接アドレッシング)

b3(ビットアドレッシング)

@Rj(間接アドレッシング)

間接アドレッシングの使用例

例1

例2

例3