countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2023 年 7 月 10 日
X68000 LIBRARY > ソフトウェアライブラリ > プログラミング > アセンブラ > HAS060.X > ColdFire 命令一覧 (旧)

ColdFire 命令一覧 (旧)

説明

HAS060.X の添付資料です。

COLDFIRE.DOC
────────────────────────────────────
                  High-speed Assembler ─ 68060 対応版
                        HAS060.X version 3.09+87

                         < ColdFire 命令一覧 >

                               1999/11/17
                                M.Kamada
────────────────────────────────────

 ColdFire(ColdFire V2〜V4 コア)で使える全命令と、そのオペレーションサ
イズおよびアドレッシングモードをまとめてみました。68000 ファミリの命令表
と比較することで、削除された命令やオペレーションサイズ、アドレッシングな
どを知ることができます。

 このドキュメントの内容は保証できません。まだ手元の資料が不十分で実物も
見ていないので、間違いがあると思われます。また、この記事の内容について質
問されても答えられない場合があります。



(99-02-10版)

━< アドレッシングモード >━━━━━━━━━━━━━━━━━━━━━━

 ColdFire(ColdFire V2〜V4 コア)で使用できるアドレッシングモードは、以
下の通り。

        ┌───┬─────────────────────┐
        │  D   │Dn                                        │
        ├───┼─────────────────────┤
        │  A   │An                                        │
        ├───┼─────────────────────┤
        │  M   │(An)                                      │
        ├───┼─────────────────────┤
        │  +   │(An)+                                     │
        ├───┼─────────────────────┤
        │  -   │-(An)                                     │
        ├───┼─────────────────────┤
        │  W   │(d16,An)                                  │
        ├───┼─────────────────────┤
        │  X   │(d8,An,Xi.L)                              │
        │      │(d8,An,Xi.L*2)                            │
        │      │(d8,An,Xi.L*4)                            │
        ├───┼─────────────────────┤
        │  Z   │(xxx).W                                   │
        │      │(xxx).L                                   │
        ├───┼─────────────────────┤
        │  P   │(d16,PC)                                  │
        │      │(d8,PC,Xi.L)                              │
        │      │(d8,PC,Xi.L*2)                            │
        │      │(d8,PC,Xi.L*4)                            │
        ├───┼─────────────────────┤
        │  I   │#<data>                                   │
        └───┴─────────────────────┘

メモ:
         インデックスレジスタはロングワードサイズに限る。
         スケールファクタは 4 倍までで、8 倍は不可。
         フルフォーマットのアドレッシングは不可。
        SP(A7)は常にロングワード境界にアラインメントされる。



━< 制御レジスタ >━━━━━━━━━━━━━━━━━━━━━━━━━━

 ColdFire(ColdFire V2〜V4 コア)で使用できる制御レジスタは、以下の通り。

        ┌──┬────┬──┬─────────────────┐
        │コード│表記    │バー │               内容               │
        │    │        │ション │                                  │
        ├──┼────┼──┼─────────────────┤
        │$002│CACR    │234 │Cache Control Register            │
        │$003│TCR     │2-- │Transration Control Register      │
        │$004│ACR0    │234 │Access Control Register 0         │
        │$005│ACR1    │234 │Access Control Register 1         │
        │$006│ACR2    │2-- │Access Control Register 2         │
        │$007│ACR3    │2-- │Access Control Register 3         │
        │$08n│Rn      │234 │* MOVE to Rn                      │
        │$18n│Rn      │234 │* MOVE from Rn                    │
        │$801│VBR     │234 │Vector Base Register              │
        │$80E│SR      │2-- │* Status Register                 │
        │$80F│PC      │-34 │Program Counter                   │
        │$C00│ROMBAR  │234 │ROM Base Address Register         │
        │$C04│RAMBAR  │-34 │SRAM Base Address Register        │
        │$C04│RAMBAR0 │2-- │RAM Base Address Register 0       │
        │$C05│RAMBAR1 │2-- │RAM Base Address Register 1       │
        │$C0F│MBAR    │234 │Module Base Address Register      │
        └──┴────┴──┴─────────────────┘

メモ:
         * が付いているものは DEBUG インタフェイスからのアクセ
        スに限る(MOVEC ではアクセスできない)。
         TCR、ACR2、ACR3 は V2 でも使えないようだ。



━< ColdFire の全命令 >━━━━━━━━━━━━━━━━━━━━━━━

 ColdFire(ColdFire V2〜V4 コア)の全命令の一覧。

        ┌───────────────────┬──┬─────┐
        │                 命令                 │バー │アドレッシ│
        │                                      │ション │ングモード│
        ├───────────────────┼──┼─────┤
        │ADD.L <ea>,Dx                         │234 │DAM+-WXZPI│
        │ADD.L Dy,<ea>                         │234 │  M+-WXZ  │
        │ADDA.L <ea>,Ax                        │234 │DAM+-WXZPI│
        │ADDI.L #<data>,Dx                     │234 │D         │
        │ADDQ.L #<data>,<ea>                   │234 │DAM+-WXZ  │
        │ADDX.L Dy,Dx                          │234 │          │
        │AND.L <ea>,Dx                         │234 │D M+-WXZPI│
        │AND.L Dy,<ea>                         │234 │  M+-WXZ  │
        │ANDI.L #<data>,Dx                     │234 │D         │
        │ASL.L #<data>,Dx                      │234 │          │
        │ASL.L Dy,Dx                           │234 │          │
        │ASR.L #<data>,Dn                      │234 │          │
        │ASR.L Dy,Dx                           │234 │          │
        │Bcc.L <label>                         │--4 │          │
        │Bcc.S <label>                         │234 │          │
        │Bcc.W <label>                         │234 │          │
        │BCHG.B #<data>,<ea>                   │234 │  M+-W    │
        │BCHG.B Dy,<ea>                        │234 │  M+-WXZ  │
        │BCHG.L #<data>,Dx                     │234 │D         │
        │BCHG.L Dy,Dx                          │234 │D         │
        │BCLR.B #<data>,<ea>                   │234 │  M+-W    │
        │BCLR.B Dy,(d8,Ax,Xi)                  │-34 │      X   │
        │BCLR.B Dy,<ea>                        │234 │  M+-W Z  │
        │BCLR.L #<data>,Dx                     │234 │D         │
        │BCLR.L Dy,Dx                          │234 │D         │
        │BRA.L <label>                         │--4 │          │
        │BRA.S <label>                         │234 │          │
        │BRA.W <label>                         │234 │          │
        │BSET.B #<data>,<ea>                   │234 │  M+-W    │
        │BSET.B Dy,(d8,Ax,Xi)                  │-34 │      X   │
        │BSET.B Dy,<ea>                        │234 │  M+-W Z  │
        │BSET.L #<data>,Dx                     │234 │D         │
        │BSET.L Dy,Dx                          │234 │D         │
        │BSR.L <label>                         │--4 │          │
        │BSR.S <label>                         │234 │          │
        │BSR.W <label>                         │234 │          │
        │BTST.B #<data>,<ea>                   │234 │  M+-W    │
        │BTST.B Dy,<ea>                        │234 │  M+-WXZPI│
        │BTST.L #<data>,Dx                     │234 │D         │
        │BTST.L Dy,Dx                          │234 │D         │
        │CLR.B <ea>                            │234 │D M+-WXZ  │
        │CLR.L <ea>                            │234 │D M+-WXZ  │
        │CLR.W <ea>                            │234 │D M+-WXZ  │
        │CMP.B <ea>,Dx                         │--4 │DAM+-WXZPI│
        │CMP.L <ea>,Dx                         │234 │DAM+-WXZPI│
        │CMP.W <ea>,Dx                         │--4 │DAM+-WXZPI│
        │CMPA.L <ea>,Ax                        │234 │DAM+-WXZPI│
        │CMPA.W <ea>,Ax                        │--4 │DAM+-WXZPI│
        │CMPI.B #<data>,Dx                     │--4 │D         │
        │CMPI.L #<data>,Dx                     │234 │D         │
        │CMPI.W #<data>,Dx                     │--4 │D         │
        │CPUSH (Ax)                            │-34 │          │
        │DIVS.L <ea>,Dx                        │-34 │D M+-W    │
        │DIVS.W <ea>,Dx                        │-34 │D M+-WXZPI│
        │DIVU.L <ea>,Dx                        │-34 │D M+-W    │
        │DIVU.W <ea>,Dx                        │-34 │D M+-WXZPI│
        │EOR.L Dy,<ea>                         │234 │D M+-WXZ  │
        │EORI.L #<data>,Dx                     │234 │D         │
        │EXT.L Dx                              │234 │          │
        │EXT.W Dx                              │234 │          │
        │EXTB.L Dx                             │234 │          │
        │HALT                                  │234 │          │
        │ILLEGAL                               │234 │          │
        │JMP <ea>                              │234 │  M  WXZP │
        │JSR <ea>                              │234 │  M  WXZP │
        │LEA.L <ea>,Ax                         │234 │  M  WXZP │
        │LINK.W Ax,#<data>                     │234 │          │
        │LSL.L #<data>,Dx                      │234 │          │
        │LSL.L Dy,Dx                           │234 │          │
        │LSR.L #<data>,Dx                      │234 │          │
        │LSR.L Dy,Dx                           │234 │          │
        │MAC.wl Ry.ul,Rx.ul                    │-34 │          │
        │MAC.wl Ry.ul,Rx.ul,<shift>            │-34 │          │
        │MACL.wl Ry.ul,Rx.ul,<ea>,Rw           │-34 │  M+-W    │
        │MACL.wl Ry.ul,Rx.ul,<shift>,<ea>&,Rw  │-34 │  M+-W    │
        │MACL.wl Ry.ul,Rx.ul,<shift>,<ea>,Rw   │-34 │  M+-W    │
        │MOV3Q.L #<data>,<ea>                  │--4 │DAM+-WXZ  │
        │MOVE.bw #<data>,(d16,Ax)              │--4 │     W    │
        │MOVE.bwl #<data>,<ea>                 │234 │D M+-     │
        │MOVE.bwl (Ay)+,<ea>                   │234 │D M+-WXZ  │
        │MOVE.bwl (Ay),<ea>                    │234 │D M+-WXZ  │
        │MOVE.bwl (d16,Ay),<ea>                │234 │D M+-W    │
        │MOVE.bwl (d16,PC),<ea>                │234 │D M+-W    │
        │MOVE.bwl (d8,Ay,Xi),(d16,Ax)          │--4 │     W    │
        │MOVE.bwl (d8,Ay,Xi),<ea>              │234 │D M+-     │
        │MOVE.bwl (d8,PC,Xi),(d16,Ax)          │--4 │     W    │
        │MOVE.bwl (d8,PC,Xi),<ea>              │234 │D M+-     │
        │MOVE.bwl (xxx).wl,(d16,Ax)            │--4 │     W    │
        │MOVE.bwl (xxx).wl,<ea>                │234 │D M+-     │
        │MOVE.bwl -(Ay),<ea>                   │234 │D M+-WXZ  │
        │MOVE.bwl Dy,<ea>                      │234 │D M+-WXZ  │
        │MOVE.L <ea>,ACC                       │-34 │DA       I│
        │MOVE.L <ea>,MACSR                     │-34 │DA       I│
        │MOVE.L <ea>,MASK                      │-34 │DA       I│
        │MOVE.L ACC,Rx                         │-34 │          │
        │MOVE.L MACSR,CCR                      │-34 │          │
        │MOVE.L MACSR,Rx                       │-34 │          │
        │MOVE.L MASK,Rx                        │-34 │          │
        │MOVE.W <ea>,CCR                       │234 │D        I│
        │MOVE.W <ea>,SR                        │234 │D        I│
        │MOVE.W CCR,Dx                         │234 │D         │
        │MOVE.W SR,Dx                          │234 │D         │
        │MOVE.wl Ay,<ea>                       │234 │D M+-WXZ  │
        │MOVEA.wl <ea>,Ax                      │234 │D M+-WXZPI│
        │MOVEC.L Ry,Rc                         │234 │          │
        │MOVEM.L <ea>,<list>                   │234 │  M  W    │
        │MOVEM.L <list>,<ea>                   │234 │  M  W    │
        │MOVEQ.L #<data>,Dx                    │234 │          │
        │MSAC.wl Ry.ul,Rx.ul                   │234 │          │
        │MSAC.wl Ry.ul,Rx.ul,<shift>           │234 │          │
        │MSACL.wl Ry.ul,Rx.ul,<ea>,Rw          │234 │  M+-W    │
        │MSACL.wl Ry.ul,Rx.ul,<shift>,<ea>&,Rw │234 │  M+-W    │
        │MSACL.wl Ry.ul,Rx.ul,<shift>,<ea>,Rw  │234 │  M+-W    │
        │MULS.L <ea>,Dx                        │234 │D M+-W    │
        │MULS.W <ea>,Dx                        │234 │D M+-WXZPI│
        │MULU.L <ea>,Dx                        │234 │D M+-W    │
        │MULU.W <ea>,Dx                        │234 │D M+-WXZPI│
        │MVS.B <ea>,Dx                         │--4 │DAM+-WXZPI│?Ay
        │MVS.W <ea>,Dx                         │--4 │DAM+-WXZPI│
        │MVU.B <ea>,Dx                         │--4 │DAM+-WXZPI│?Ay
        │MVU.W <ea>,Dx                         │--4 │DAM+-WXZPI│
        │NEG.L Dx                              │234 │D         │
        │NEGX.L Dx                             │234 │D         │
        │NOP                                   │234 │          │
        │NOT.L Dx                              │234 │D         │
        │OR.L <ea>,Dx                          │234 │D M+-WXZPI│
        │OR.L Dy,<ea>                          │234 │  M+-WXZ  │
        │ORI.L #<data>,Dx                      │234 │D         │
        │PEA.L <ea>                            │234 │  M  WXZP │
        │PULSE                                 │234 │          │
        │REMS.L <ea>,Dx                        │-34 │D M+-W    │
        │REMU.L <ea>,Dx                        │-34 │D M+-W    │
        │RTE                                   │234 │          │
        │RTS                                   │234 │          │
        │SATS.L Dx                             │--4 │D         │
        │Scc.B Dx                              │234 │D         │
        │STOP #<data>                          │234 │          │
        │SUB.L <ea>,Dx                         │234 │DAM+-WXZPI│
        │SUB.L Dy,<ea>                         │234 │  M+-WXZ  │
        │SUBA.L <ea>,Ax                        │234 │DAM+-WXZPI│
        │SUBI.L #<data>,Dx                     │234 │D         │
        │SUBQ.L #<data>,<ea>                   │234 │DAM+-WXZ  │
        │SUBX.L Dy,Dx                          │234 │          │
        │SWAP.W Dx                             │234 │          │
        │TAS.B <ea>                            │--4 │  M+-WXZ  │
        │TRAP #<vector>                        │234 │          │
        │TRAPF                                 │234 │          │
        │TRAPF.L #<data>                       │234 │          │
        │TRAPF.W #<data>                       │234 │          │
        │TST.B <ea>                            │234 │D M+-WXZPI│
        │TST.L <ea>                            │234 │DAM+-WXZPI│
        │TST.W <ea>                            │234 │DAM+-WXZPI│
        │UNLK Ax                               │234 │          │
        │WDDATA.bwl <ea>                       │234 │  M+-WXZ  │
        │WDEBUG.L <ea>                         │234 │  M  W    │
        └───────────────────┴──┴─────┘

メモ:
         整数演算命令の多くがロングワードサイズに限定された。
         DBRA やローテートなどの基本的な命令も一部削除された。
         アドレッシングモードが Dn のみに限定された命令がある。
         積和演算命令(MAC)が追加された。



━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

(EOF)