English
HARDWARE ManualSCUユーザーズマニュアル
戻る進む
SCUユーザーズマニュアル/第4章 DSP制御

■4.2 命令一覧

 下記に、SCU-DSPで使用される命令の一覧を示します。

◆演算命令

ALU制御

  NOP
何もしません。
  AND
[ACL]と[PL]との論理積をとります。
  OR
[ACL]と[PL]との論理和をとります。
  XOR
[ACL]と[PL]との排他的論理和をとります。
  ADD
[ACL]と[PL]を加算します。
  SUB
[ACL]から[PL]を減算します。
  AD2
[ACH][ACL]と[PH][PL]を加算します。
  SR
[ACL]を1ビット右シフトし、LSBをキャリーフラグに格納します。
  RR
[ACL]を1ビット右ローテートし、LSBをキャリーフラグに格納します。
  SL
[ACL]を1ビット左シフトし、0を[ACL]のLSBに、MSBをキャリーフラグに格納します。
  RL
[ACL]を1ビット左ローテートし、MSBをキャリーフラグに格納します。
  RL8
[ACL]を8ビット左ローテーし、b24をキャリーフラグに格納します。

X-Bus制御

  NOP
何もしません。
  MOV [s],X
データRAMから[RX]へデータを転送します。
  MOV MUL,P
[MULTIPLIER]のデータを[PH][PL]に転送します。
  MOV [s],P
データRAMから[PL]へデータを転送します。

Y-Bus制御

  NOP
何もしません。
  MOV [s],Y
データRAMから[RY]へデータを転送します。
  CLR A
[ACH]と[ACL]を0クリアします。
  MOV ALU,A
[ALU]のデータを[ACH][ACL]に転送します。
  MOV [s],A
データRAMから[ACL]へデータを転送します。

D1-Bus制御

  NOP
何もしません。
  MOV SImm,[d]
SImm(ショートイミディエート)のデータを[d]で指定されるデータRAMあるいはレジスタに格納します。
  MOV [s],[d]
[s]で指定されるデータRAMあるいはレジスタから[d]で指定されるデータRAMあるい はレジスタへデータを転送します。

◆Load immediate命令

  MVI Imm,[d]
Imm(イミディエート)のデータを[d]で指定されたデータRAMあるいはレジスタに 格納します。
  MVI Imm,[d],Z
プログラム制御ポートのZ(ゼロフラグ)が1のときに限り、Imm(イミディエート) のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],NZ
プログラム制御ポートのZ(ゼロフラグ)が0のときに限り、Imm(イミディエート) のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],S
プログラム制御ポートのS(サインフラグ)が1のときに限り、Imm(イミディエート)の データを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],NS
プログラム制御ポートのS(サインフラグ)が0のときに限り、Imm(イミディエート)の データを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],C
プログラム制御ポートのC(キャリーフラグ)が1のときに限り、Imm(イミディエート) のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],NC
プログラム制御ポートのC(キャリーフラグ)が0のときに限り、Imm(イミディエート) のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],TO
プログラム制御ポートのTO(D0バスDMA実行中フラグ)が1のときに限り、Imm(イミディ エート)のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],NTO
プログラム制御ポートのTO(D0バスDMA実行中フラグ)が0のときに限り、Imm(イミディ エート)のデータを[d]で指定されたデータRAMあるいはレジスタに格納します。
  MVI Imm,[d],ZS
プログラム制御ポートのZ(ゼロフラグ)またはS(サインフラグ)のいずれかが1のとき に限り、Imm(イミディエート)のデータを[d]で指定されたデータRAMあるいはレジスタに 格納します。
  MVI Imm,[d],NZS
プログラム制御ポートのZ(ゼロフラグ)とS(サインフラグ)がともに0のときに限り、 Imm(イミディエート)のデータを[d]で指定されたデータRAMあるいはレジスタに格納し ます。

◆DMA命令

  DMA D0,[RAM],SImm
SImm(ショートイミディエート)のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して外部から、[RAM]で指定されたRAMエリアにデー タを転送します。 転送開始アドレス([RA0])と転送ワード数カウンタ([TN0])は、転送終了したときの値に更新されます。
  DMA [RAM],D0,SImm
SImm(ショートイミディエート)のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して[RAM]で指定されたRAMエリアから、外部にデータを転送します。 転送開始アドレス([WA0])と転送ワード数カウンタ([TN0])は、転送終了したときの値に更新されます。
  DMA D0,[RAM],[s]
[s]で指定されたデータRAM内のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して外部から、[RAM]で指定されたRAMエリアにデータを転送します。 転送開始アドレス([RA0])と転送ワード数カウンタ([TN0])は、転送終了したときの値に更新されます。
  DMA [RAM],D0,[s]
[s]で指定されたデータRAM内のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して[RAM]で指定されたRAMエリアから、外部にデータを転送します。 転送開始アドレス([WA0])と転送ワード数カウンタ([TN0])は、転送終了したときの値に更新されます。
  DMAH D0,[RAM],SImm
SImm(ショートイミディエート)のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して外部から、[RAM]で指定されたRAMエリアにデータを転送します。 転送開始アドレス([RA0])と転送ワード数カウンタ([TN0])は、転送を開始したときの値を保持します。
  DMAH [RAM],D0,SImm
SImm(ショートイミディエート)のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して[RAM]で指定されたRAMエリアから、外部にデータを転送します。 転送開始アドレス([WA0])と転送ワード数カウンタ([TN0])は、転送を開始したときの値を保持します。
  DMAH D0,[RAM],[s]
[s]で指定されたデータRAM内のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して外部から、[RAM]で指定されたRAMエリアにデータを転送します。 転送開始アドレス([RA0])と転送ワード数カウンタ([TN0])は、転送を開始したときの値を保持します。
  DMAH [RAM],D0,[s]
[s]で指定されたデータRAM内のデータを転送カウンタとして転送ワード数カウンタ([TN0])にセットし、D0バスを使用して[RAM]で指定されたRAMエリアから、外部にデータを転送します。 転送開始アドレス([WA0])と転送ワード数カウンタ([TN0])は、転送を開始したときの値を保持します。

◆JUMP命令

  JMP Imm
Imm(イミディエート)で示された番地へ移動します。
  JMP Z,Imm
プログラム制御ポートのZ(ゼロフラグ)が1のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP NZ,Imm
プログラム制御ポートのZ(ゼロフラグ)が0のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP S,Imm
プログラム制御ポートのS(サインフラグ)が1のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP NS,Imm
プログラム制御ポートのS(サインフラグ)が0のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP C,Imm
プログラム制御ポートのC(キャリーフラグ)が1のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP NC,Imm
プログラム制御ポートのC(キャリーフラグ)が0のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP TO,Imm
プログラム制御ポートのTO(D0バスDMA実行中フラグ)が1のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP NTO,Imm
プログラム制御ポートのTO(D0バスDMA実行中フラグ)が0のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP ZS,Imm
プログラム制御ポートのZ(ゼロフラグ)またはS(サインフラグ)のいずれかが1のとき、Imm(イミディエート)で示された番地へ移動します。
  JMP NZS,Imm
プログラム制御ポートのZ(ゼロフラグ)とS(サインフラグ)がともに0のとき、Imm(イミディエート)で示された番地へ移動します。

◆LOOP BOTTOM命令

  BTM
ループカウンタ([LOP])が0以外のとき、トップアドレスレジスタ([TOP])をプログラムカウンタに格納し、ループカウンタ([LOP])をデクリメントします。0のときは何もしません。
  LPS
ループカウンタ([LOP])が0以外のとき、プログラムカウンタを止めて、次命令を実行しループカウンタ([LOP])をデクリメントし、ループカウンタが0になるまで繰り返します。

◆END命令

  END
プログラムを止めて、プログラム制御ポートのEX(プログラム実行制御フラグ)をリセットします。
  ENDI
プログラムを止めて、プログラム制御ポートのEX(プログラム実行制御フラグ)をリセットし、E(プログラム終了割り込みフラグ)をセットします。

●DSPプログラムの記述

 定数またはアセンブラの記述については、付録の 「SCU DSPアランブラ使用説明書」を参照してください。


戻る進む
HARDWARE ManualSCUユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997