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

DMA命令



一覧表| ▲戻る| 次へ▼ |アセンブラ

DMA D0,[RAM],SImm

DMA転送(D0[31-0]→RAM)

動作内容
D0[31-0]データをRAMに転送します。外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に従い更新(加算)されます。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMA D0,[Destination],Counter
   Source=M0〜M3*

インストラクションコード

31  28          1716 15           
Immデータ

ビットデータ 加算モード選択肢 
bit17bit16bit15
000アドレス加算0
001アドレス加算1
010アドレス加算2
011アドレス加算4
100アドレス加算8
101アドレス加算16
110アドレス加算32
111アドレス加算64
ビットデータ 選 択 肢 
bit9bit8
00DATA RAM0
01DATA RAM1
10DATA RAM2
11DATA RAM3

フラグ
T0;1になります。**

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA64となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMA [RAM],D0,SImm

DMA転送(RAM→D0[31-0])

動作内容
RAMデータをD0[31-0]に転送します。外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に従い更新(加算)されます。 ただし、A-Busに対しては加算数0と1のみが有効であり、書き出し単位は32bitです。B-Busに対しては、すべて(加算数0-64)につて有効です。 書き出し単位が16bitになり、32bitのデータを2分割して16bit×(0-64)の間隔で書き出されます。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMA [Source],D0,Counter
   Source=M0〜M3*

インストラクションコード

31  28          1716 15           
Immデータ

ビットデータ 加算モード選択肢 
bit17bit16bit15
000アドレス加算0
001アドレス加算1
010アドレス加算2
011アドレス加算4
100アドレス加算8
101アドレス加算16
110アドレス加算32
111アドレス加算64
ビットデータ 選 択 肢 
bit9bit8
00DATA RAM0
01DATA RAM1
10DATA RAM2
11DATA RAM3

フラグ
T0;1になります。**

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA64となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMA D0,[RAM],[s]

DMA転送(D0[31-0]→RAM)

動作内容
bit0〜2で指定された[s]のデータを転送カウンタとし、示された数だけD0[31-0]データをRAMに転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に従い更新(加算)されます。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMA D0,[Destination],[Counter]
   Counter = M0〜M3*,MC0〜MC3*,
   Destination = M0〜M3*,PR*

インストラクションコード
bit15加算モード選択肢
アドレス加算0
アドレス加算1

31  28             15    10     

ビットデータ 選 択 肢 
bit10bit9bit8
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100PROGARM RAM
ビットデータ [s] 選 択 肢 
bit2bit1bit0
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100DATA RAM0,CT0++
101DATA RAM1,CT1++
110DATA RAM2,CT2++
111DATA RAM3,CT3++

フラグ
T0;1になります。**
CTx(x=0〜3);b2=1のときに限りインクリメントされます。b2=0のときは変わりません。

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。MCx(x=0〜3)は、DATA RAMx(x=0〜3)を選択し、転送後、CTx(x=0〜3)をインクリメントします。
PRは、PROGRAM RAMを選択します。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA1となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMA [RAM],D0,[s]

DMA転送(RAM→D0[31-0])

動作内容
bit0〜2で指定された[s]のデータを転送カウンタとし、示された数だけRAMのデータをD0[31-0]データに転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に従い更新(加算)されます。 ただし、A-Busに対しては加算数0と1のみが有効であり、書き出し単位は32bitです。B-Busに対しては、すべて(加算数0-64)につて有効です。 書き出し単位が16bitになり、32bitのデータを2分割して16bit×(0-64)の間隔で書き出されます。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMA [Source],D0,[Counter]
   Counter = M0〜M3*,MC0〜MC3*,
   Source = M0〜M3*

インストラクションコード

ビットデータ 加算モード選択肢 
bit17bit16bit15
000アドレス加算0
001アドレス加算1
010アドレス加算2
011アドレス加算4
100アドレス加算8
101アドレス加算16
110アドレス加算32
111アドレス加算64
 
ビットデータ [s] 選 択 肢 
bit2bit1bit0
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100DATA RAM0,CT0++
101DATA RAM1,CT1++
110DATA RAM2,CT2++
111DATA RAM3,CT3++

31  28          1716 15          

ビットデータ [RAM]選択肢 
bit9bit8
00DATA RAM0
01DATA RAM1
10DATA RAM2
11DATA RAM3

フラグ
T0;1になります。**
CTx(x=0〜3);b2=1のときに限りインクリメントされます。b2=0のときは変わりません。

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。MCx(x=0〜3)は、DATA RAMx(x=0〜3)を選択し、転送後、CTx(x=0〜3)をインクリメントします。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA1となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMAH D0,[RAM],SImm

HOLD状態でのDMA転送(D0[31-0]→RAM)

動作内容
D0[31-0]データをRAMに転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に転送開始時の値を保持します。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。 このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMAH DO,[Destination],Counter
   Distination = M0〜M3*,PR*

インストラクションコード

31  28          17  15    10      
SImmデータ

bit15加算モード選択肢
アドレス加算0
アドレス加算1
 
ビットデータ 選 択 肢 
bit10bit9bit8
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100PROGRAM RAM

フラグ
T0;1になります。**

備 考
*Mx(x=0〜3)は、DATA RAMx(x=0〜3)を選択します。
PRは、PROGRAM RAMを選択します。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMAH0〜DMAH1となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMAH [RAM],D0,SImm

HOLD状態でのDMA転送(RAM→D0[31-0])

動作内容
RAMデータをD0[31-0]に転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に転送開始時の値を保持します。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。 このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMAH [Source],DO,Counter
   Source = M0〜M3*

インストラクションコード

31  28          1716 15           
SImmデータ

ビットデータ 加算モード選択肢 
bit17bit16bit15
000アドレス加算0
001アドレス加算1
010アドレス加算2
011アドレス加算4
100アドレス加算8
101アドレス加算16
110アドレス加算32
111アドレス加算64
 
ビットデータ 選 択 肢 
bit9bit8
00DATA RAM0
01DATA RAM1
10DATA RAM2
11DATA RAM3

フラグ
T0;1になります。**

備 考
*Mx(x=0〜3)は、DATA RAMx(x=0〜3)を選択します。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMAH0〜DMAH64となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMAH D0,[RAM],[s]

HOLD状態でのDMA転送(D0[31-0]→RAM)

動作内容
bit0〜2で指定された[s]のデータを転送カウンタとし、示された数だけD0[31-0]データをRAMに転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に転送開始時の値を保持します。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。 このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMAH D0,[Destination],[Counter]
   Counter = M0〜M3*,MC0〜MC3*
   Destination = M0〜M3*,PR*

インストラクションコード
bit15加算モード選択肢
アドレス加算0
アドレス加算1

31  28             15    10    

ビットデータ [RAM]選択肢 
bit10bit9bit8
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100PROGRAM RAM
 
ビットデータ [s] 選 択 肢 
bit2bit1bit0
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100DATA RAM0,CT0++
101DATA RAM1,CT1++
110DATA RAM2,CT2++
111DATA RAM3,CT3++

フラグ
T0;1になります。**
CTx(x=0〜3);b2=1のときに限りインクリメントされます。b2=0のときは変わりません。

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。MCx(x=0〜3)は、DATA RAMx(x=0〜3)を選択し、転送後、CTx(x=0〜3)をインクリメントします。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA1となります。
アドレス加算数指定省略時は、加算数が1となります。


一覧表| ▲戻る| 次へ▼ |アセンブラ

DMAH [RAM],d0,[s]

HOLD状態でのDMA転送(RAM→D0[31-0])

動作内容
bit0〜2で指定された[s]のデータを転送カウンタとし、示された数だけRAMのデータをD0[31-0]データに転送します。 外部アドレスレジスタと転送ワード数レジスタはアドレス加算数に転送開始時の値を保持します。 転送ワード数レジスタは、ロングワード単位で転送ワード数を格納するレジスタです。 このワード数が0になるか、強制終了されたときに転送終了となります。

記述式
label: DMAH [Source],D0,[Counter]
   Counter = M0〜M3*,MC0〜MC3*
   Source = M0〜M3*

インストラクションコード

ビットデータ 加算モード選択肢 
bit17bit16bit15
000アドレス加算0
001アドレス加算1
010アドレス加算2
011アドレス加算4
100アドレス加算8
101アドレス加算16
110アドレス加算32
111アドレス加算64
 
ビットデータ [s] 選 択 肢 
bit2bit1bit0
000DATA RAM0
001DATA RAM1
010DATA RAM2
011DATA RAM3
100DATA RAM0,CT0++
101DATA RAM1,CT1++
110DATA RAM2,CT2++
111DATA RAM3,CT3++

31  28          1716 15          

ビットデータ [RAM]選択肢 
bit9bit8
00DATA RAM0
01DATA RAM1
10DATA RAM2
11DATA RAM3

フラグ
T0;1になります。**
CTx(x=0〜3);b2=1のときに限りインクリメントされます。b2=0のときは変わりません。

備 考
*[Mx(x=0〜3)]は、DATA RAMx(x=0〜3)を選択します。MCx(x=0〜3)は、DATA RAMx(x=0〜3)を選択し、転送後、CTx(x=0〜3)をインクリメントします。
**外部からの転送終了を知らせるEND信号が入ったとき、T0;0となります。
アドレス加算の指定は、命令の後に加算数を付加し、DMA0〜DMA1となります。
アドレス加算数指定省略時は、加算数が1となります。


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