アセンブラ命令表

データ転送命令
命令 ニーモニック オペレーション I H N Z V C
MOV MOV.B #xx:8,Rd#xx:8→Rd8 0
MOV.B Rs,RdRs8→Rd8 0
MOV.B @ERs,Rd@ERs→Rd8 0
MOV.B @(d:16,ERs),Rd@(d:16,ERs)→Rd8 0
MOV.B @(d:24,ERs),Rd@(d:24,ERs)→Rd8 0
MOV.B @ERs +,Rd@ERs→Rd8,ERs32+1→ERs32 0
MOV.B @aa:8,Rd@aa:8→Rd8 0
MOV.B @aa:16,Rd@aa:16→Rd8 0
MOV.B @aa:24,Rd@aa:24→Rd8 0
MOV.B Rs,@ERdRs8→@ERd 0
MOV.B Rs,@(d:16,ERd)Rs8→@(d:16,ERd) 0
MOV.B Rs,@(d:24,ERd)Rs8→@(d:24,ERd) 0
MOV.B Rs,@-ERdERd32-1→ERd32,Rs8→@ERd 0
MOV.B Rs,@aa:8Rs8→@aa:8 0
MOV.B Rs,@aa:16Rs8→@aa:16 0
MOV.B Rs,@aa:24Rs8→@aa:24 0
MOV.W #xx:16,Rd#xx:16→Rd16 0
MOV.W Rs,RdRs16→Rd16 0
MOV.W @ERs,Rd@ERs→Rd16 0
MOV.W @(d:16,ERs),Rd@(d:16,ERs)→Rd16 0
MOV.W @(d:24,ERs),Rd@(d:24,ERs)→Rd16 0
MOV.W @ERs +,Rd@ERs→Rd16,ERs32+2→@ERd32 0
MOV.W @aa:16,Rd@aa:16→Rd16 0
MOV.W @aa:24,Rd@aa:24→Rd16 0
MOV.W Rs,@ERdRs16→@ERd 0
MOV.W Rs,@(d:16,ERd)Rs16→@(d:16,ERd) 0
MOV.W Rs,@(d:24,ERd)Rs16→@(d:24,ERd) 0
MOV.W Rs,@-ERdERd32-2→ERd32,Rs16→@ERd 0
MOV.W Rs,@aa:16Rs16→@aa:16 0
MOV.W Rs,@aa:24Rs16→@aa:24 0
MOV.L #xx:32,ERd#xx:32→Rd32 0
MOV.L ERs,ERdERs32→ERd32 0
MOV.L @ERs,ERd@ERs→ERd32 0
MOV.L @(d:16,ERs),ERd@(d:16,ERs)→ERd32 0
MOV.L @(d:24,ERs),ERd@(d:24,ERs)→ERd32 0
MOV.L @ERs +,ERd@ERs→ERd32,ERs32+4→ERs32 0
MOV.L @aa:16,ERd@aa:16→ERd32 0
MOV.L @aa:24,ERd@aa:24→ERd32 0
MOV.L ERs,@ERdERs32→@ERd 0
MOV.L ERs,@(d:16,ERd)ERs32→@(d:16,ERd) 0
MOV.L ERs,@(d:24,ERd)ERs32→@(d:24,ERd) 0
MOV.L ERs,@-ERdERd32-4→ERd32,ERs32→@ERd 0
MOV.L ERs,@aa:16ERs32→@aa:16 0
MOV.L ERs,@aa:24ERs32→@aa:24 0
POP POP.W Rn@SP→Rn16,SP+2→SP 0
POP.L ERn@SP→ERn32,SP+4→SP 0
PUSH PUSH.W RnSP-2→SP,Rn16→@SP 0
PUSH.L ERnSP-4→SP,ERn32→@SP 0
MOVFPE MOVFPE @:aa:16.Rd@aa:16→Rd(E同盟) 0
MOVTPE MOVTPE Rs,@:aa:16Rs→@aa:16(E同盟) 0
算術演算命令
命令 ニーモニック オペレーション I H N Z V C
ADD ADD.B #xx:8,RdRd8+#xx:8→Rd8
ADD.B Rs,RdRd8+Rs8→Rd8
ADD.W #xx:16,RdRd16+#xx:16→Rd16 *1
ADD.W Rs,RdRd16+Rs16→Rd16 *1
ADD.L #xx:32,ERdERd32+#xx:32→ERd32 *2
ADD.L ERs,ERdERd32+ERs32→ERd32 *2
ADDX ADDX #xx:8,RdRd8+#xx:8+C→Rd8 *3
ADDX Rs,RdRd8+Rs8+C→Rd8 *3
ADDS ADDS #1,ERdERd32+1→ERd32
ADDS #2,ERdERd32+2→ERd32
ADDS #4,ERdERd32+4→ERd32
INC INC.B RdRd8+1→Rd8
INV.W #1,RdRd16+1→Rd16
INV.W #2,RdRd16+2→Rd16
INC.L #1,ERdERd32+1→ERd32
INC.L #2,ERdERd32+2→ERd32
DAA DAA RdRd8 10進補正→Rd8
SUB SUB.B Rs,RdRd8-Rs8→Rd8
SUB.W #xx:16,RdRd16-#xx:16→Rd16 *1
SUB.W Rs,RdRd16-Rs16→Rd16 *1
SUB.L #xx:32,ERdERd32-#xx:32→ERd32 *2
SUB.L ERs,ERdERd32-ERs32→ERd32 *2
SUBX SUBX #xx:8,RdRd8-#xx:8-C→Rd8 *3
SUBX Rs,RdRd8-Rs8-C→Rd8 *3
SUBS SUBS #1,ERdERd32-1→ERd32
SUBS #2,ERdERd32-2→ERd32
SUBS #4,ERdERd32-4→ERd32
DEC DEC.B RdRd8-1→Rd8
DEC.W #1,RdRd16-1→Rd16
DEC.W #2,RdRd16-2→Rd16
DEC.L #1,ERdERd32-1→ERd32
DEC.L #2,ERdERd32-2→ERd32
DAS DAS RdRd8 10進補正→Rd8
MULXU MULXU.B Rs,RdRd8×Rs8→Rd16
(符号なし乗算)
MULXU.W Rs,ERdRd16×Rs16→ERd32
(符号なし乗算)
MULXS MULXS.B Rs,RdRd8×Rs8→Rd16
(符号付乗算)
MULXS.W Rs,ERdRd16×Rs16→ERd32
(符号付乗算)
DIVXS DIVXS.B Rs,RdRd16÷Rs8→Rd16(RdH:余り,RdL:商)
(符号付除算)
*6 *5
DIVXS.W Rs,ERdERd32÷Rs16→ERd32(Ed:余り,Rd:商)
(符号付除算)
*6 *5
DIVXU DIVXU.B Rs,RdRd16÷Rs8→Rd16(RdH:余り,RdL:商)
(符号なし除算)
*4 *5
DIVXU.W Rs,ERdERd32÷Rs16→ERd32(Ed:余り,Rd:商)
(符号なし除算)
*4 *5
CMP CMP.B #xx:8,RdRd8-#xx:8
CMP.B Rs,RdRd8-Rs8
CMP.W #xx:16,RdRd16-#xx:16 *1
CMP.W Rs,RdRd16-Rs16 *1
CMP.L #xx:32,ERdERd32-#xx:32 *2
CMP.L ERs,ERdERd32-ERs32 *2
NEG NEG.B Rd0-Rd8→Rd8
NEG.W Rd0-Rd16→Rd16
NEG.L ERd0-ERd32→ERd32
EXTU EXTU.W Rd0 拡張 0 0
EXTU.L ERd 0 0
EXTS EXTS.W Rd符号拡張 0
EXTS.L ERd 0
*1 ビット11から桁上がりまたはビット11へ桁下がりが発生したとき1にセットされ、それ以外のとき0にクリアされます。
*2 ビット27から桁上がりまたはビット27へ桁下がりが発生したとき1にセットされ、それ以外のとき0にクリアされます。
*3 演算結果がゼロのとき、演算前の値を保持し、それ以外のとき0にクリアされます。
*4 除数が負のとき1にセットされ、それ以外のとき0にクリアされます。
*5 除数がゼロのとき1にセットされ、それ以外のとき0にクリアされます。
*6 商が負のとき1にセットされ、それ以外のとき0にクリアされます。
論理演算命令
命令 ニーモニック オペレーション I H N Z V C
AND AND.B #xx:8,RdRd8 & #xx:8→Rd8 0
AND.B Rs,RdRd8 & Rs8→Rd8 0
AND.W #xx:16,RdRd16 & #xx:16→Rd16 0
AND.W Rs,RdRd16 & Rs16→Rd16 0
AND.L #xx:32,ERdERd32 & #xx:32→ERd32 0
AND.L ERs,ERdERd32 & ERs32→ERd32 0
OR OR.B #xx:8,RdRd8 | #xx:8→Rd8 0
OR.B Rs,RdRd8 | Rs8→Rd8 0
OR.W #xx:16,RdRd16 | #xx:16→Rd16 0
OR.W Rs,RdRd16 | Rs16→Rd16 0
OR.L #xx:32,ERdERd32 | #xx:32→ERd32 0
OR.L ERs,ERdERd32 | ERs32→ERd32 0
XOR XOR.B #xx:8,RdRd8 ^ #xx:8→Rd8 0
XOR.B Rs,RdRd8 ^ Rs8→Rd8 0
XOR.W #xx:16,RdRd16 ^ #xx:16→Rd16 0
XOR.W Rs,RdRd16 ^ Rs16→Rd16 0
XOR.L 3xx:32,ERdERd32 ^ #xx:32→ERd32 0
XOR.L ERs,ERdERd32 ^ ERs32→ERd32 0
NOT NOT.B Rd~Rd8→Rd8 0
NOT.W Rd~Rd16→Rd16 0
NOT.L ERd~Rd32→Rd32 0
シフト命令
命令 ニーモニック オペレーション I H N Z V C
SHAL SHAL.B Rd
SHAL.W Rd
SHAL.L ERd
SHAR SHAR.B Rd 0
SHAR.W Rd 0
SHAR.L ERd 0
SHLL SHLL.B Rd 0
SHLL.W Rd 0
SHLL.L ERd 0
SHLR SHLR.B Rd 0
SHLR.W Rd 0
SHLR.L ERd 0
ROTXL ROTXL.B Rd 0
ROTXL.W Rd 0
ROTXL.L ERd 0
ROTXR ROTXR.B Rd 0
ROTXR.W Rd 0
ROTXR.L ERd 0
ROTL ROTL.B Rd 0
ROTL.W Rd 0
ROTL.L ERd 0
ROTR ROTR.B Rd 0
ROTR.W Rd 0
ROTR.L ERd 0
ビット操作命令
命令 ニーモニック オペレーション I H N Z V C
BSET BSET #xx:3,Rd
BSET #xx:3,@ERd
BSET #xx:3,@aa:8
BSET Rn,Rd
BSET Rn,@ERd
BSET Rn,@aa:8
BCLR BCLR #xx:3,Rd
BCLR #xx:3,@ERd
BCLR #xx:3,@aa:8
BCLR Rn,Rd
BCLR Rn,@ERd
BCLR Rn,@aa:8
BNOT BNOT #xx:3,Rd
BNOT #xx:3,@ERd
BNOT #xx:3,@aa:8
BNOT Rn,Rd
BNOT Rn,@ERd
BNOT Rn,@aa:8
BTST BTST #xx:3,Rd
BTST #xx:3,@ERd
BTST #xx:3,@aa:8
BTST Rn,Rd
BTST Rn,@ERd
BTST Rn,@aa:8
BLD BLD #xx:3,Rd
BLD #xx:3,@ERd
BLD #xx:3,@aa:8
BILD BILD #xx:3,Rd
BILD #xx:3,@ERd
BILD #xx:3,@aa:8
BST BST #xx:3,Rd
BST #xx:3,@ERd
BST #xx:3,@aa:8
BIST BIST #xx:3,Rd
BIST #xx:3,@ERd
BIST #xx:3,@aa:8
BAND BAND #xx:3,Rd
BAND #xx:3,@ERd
BAND #xx:3,@aa:8
BIAND BIAND #xx:3,Rd
BIAND #xx:3,@ERd
BIAND #xx:3,@aa:8
BOR BOR #xx:3,Rd
BOR #xx:3,@ERd
BOR #xx:3,@aa:8
BIOR BIOR #xx:8,Rd
BIOR #xx:8,@ERd
BIOR #xx:8,@aa:8
BXOR BXOR #xx:3,Rd
BXOR #xx:3,@ERd
BXOR #xx:3,@aa:8
BIXOR BIXOR #xx:3,Rd
BIXOR #xx:3,@ERd
BIXOR #xx:3,@aa:8
分岐命令
命令 ニーモニック オペレーション I H N Z V C
Bcc BRA d:8(BT d:8)無条件分岐
BRA d:16(BT d:16)
BRN d:8(BF d:8)常に分岐しない
BRN d:16(BF d:16)
BHI d:8C & Z = 0
X>Y 符号なし
BHI d:16
BLS d:8C & Z = 1
X≦Y 符号なし
BLS d:16
BCC d:8(BHS d:8)C = 0
X≧Y 符号なし
BCC d:16(BHS d:16)
BCS d:8(BLO d:8)C = 1
X<Y 符号なし
BCS d:16(BLO d:16)
BNE d:8Z = 0
X≠Y 符号なし/あり
BNE d:16
BEQ d:8Z = 1
X=Y 符号なし/あり
BEQ d:16
BVC d:8V = 0
BVC d:16
BVS d:8V = 1
BVS d:16
BPL d:8N = 0
BPL d:16
BMI d:8N = 1
BMI d:16
BGE d:8N ^ V = 0
X≧Y 符号あり
BGE d:16
BLT d:8N ^ V = 1
X<Y 符号あり
BLT d:16
BGT d:8Z | (N ^ V) = 0
X>Y 符号あり
BGT d:16
BLE d:8Z | (N ^ V) = 1
X≦Y 符号あり
BLE d:16
JMP JMP @ERnPC←ERn
JMP @aa:24PC←aa:24
JMP @@aa:8PC←@aa:8
BSR BSR d:8PC→@-SP,PC←PC+d:8
BSR d:16PC→@-SP,PC←PC+d:16
JSR JSR @ERnPC→@-SP,PC←ERn
JSR @aa:24PC→@-SP,PC←aa:24
JSR @@aa:8PC→@-SP,PC←@aa:8
RTS RTSPC←@SP +
システム制御命令
命令 ニーモニック オペレーション I H N Z V C
TRAPA TRAPA #x:2PC→@-SP
CCR→@-SP
ベクタ→PC
1
RTE RTECCR←@SP +,PC←@SP +
SLEEP SLEEP低消費電力状態に遷移
LDC LDC #xx:8,CCR#xx:8→CCR
LDC Rs,CCRRs8→CCR
LDC @ERs,CCR@ERs→CCR
LDC @(d:16,ERs),CCR@(d:16,ERs)→CCR
LDC @(d:24,ERs),CCR@(d:24,ERs)→CCR
LDC @ERs +,CCR@ERs→CCR,ERs32+2→ERs32
LDC @aa:16,CCR@aa:16→CCR
LDC @aa:24,CCR@aa:24→CCR
STC STC CCR,RdCCR→Rd8
STC CCR,@ERdCCR→@ERd
STC CCR,@(d:16,ERd)CCR→@(d:16,ERd)
STC CCR,@(d:24,ERd)CCR→@(d:24,ERd)
STC CCR,@-ERdERd32-2→ERd32,CCR→@ERd
STC CCR,@aa:16CCR→@aa:16
STC CCR,@aa:24CCR→@aa:24
ANDC ANDC #xx:8,CCRCCR & #xx:8→CCR
ORC ORC #xx:8,CCRCCR | #xx:8→CCR
XORC XORC #xx:8,CCRCCR ^ #xx:8→CCR
NOP NOPPC←PC+2
h8/アセンブラ命令表.txt · 最終更新: 2018/03/18 09:56 (外部編集)
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki