-
MC9S12XD
指令集(
字母检索表
)
助记符
ABA
ABX
ABY
ADCA
ADCB
ADDA
ADDB
ADDD
ANDA
ANDB
ANDCC
ASL
ASLA
ASLB
ASLD
ASR
ASRA
ASRB
BCC
BCLR
BCS
BEQ
BEST
BGE
BGND
BGT
BHI
BHS
BITA
BITB
BLE
BLO
BLS
BLT
BMI
BNE
BPL
BRA
BRCLR
若
C=0,
转跳,简单转跳
< br>
位清零
若
< br>C=1,
转跳,简单转跳
若相等,转跳,简单转跳
置
1
若大于或等于,跳转(
R>=M
)
,
有符号跳
转
背景调试
功
能
把寄存器
B
的值加到寄存器
A
把寄存器
B
的值加到寄存器
B
把寄存器
B
的值加到寄存器
Y
带进位加法,结果存放在寄存器
A
带进位加法,结果存放在寄存器
B
不带进位加法,结果存放在寄存器
A
不带进位加法,结果存放在寄存器
B
不带进位加法,结果存放在寄存器
D
寄存器
A
与内存相“与”
寄存器
B
与内存相“与”
寄存器
CCR
与内存相“与”
(
CCR
寄存器设置
)
算术左移
操
作
(
A
p>
)
+
(
B
)
--->B
(
B<
/p>
)
+
(
X
)
--->X
(
B
)
+
(
Y
p>
)
---->Y
(
A
)
+
(
M
)
+ C ---->A
(
B
)
+
(
M
)
+C------>B
(
B
)
+
(
M
)
----->A
(
B
)
+
(
M
)
---->B
(
A
:
B
)
+
(
M
:
M+1
)
--->A
:
B
(
A
)
&
(
M
< br>)
----->A
(
B
)
&
(
M
)
----->B
(
C
CR
)
&
(
M
)
----->CCR
C<---########<---0
C<---########<----########<---0
a7
a0
b7
b0
算术右移
########--->C
b0
b7
C=0
(
M
)
&
(
mm
)
----->M
C=1
Z=1
(M)|(mm)----->M
Z^V=0
若
BDM
使能允许,进入
B
DM
模式
Z|(N^V)=0
C|Z=0
C=0
(
A
)
&
(
< br>M
)
(
B
)
&
(
M
)
Z|(N^V)=1
C=1
C+Z=1
N|V=1
N=1
Z=0
N=0
-------------------------------------------- ---------
(
M
)
&mm
若大于,跳转(
R>M
)
,
有符号跳转
若大于,跳
转(
R>M
)
,
无符号跳转
若大于或等于,跳转(
R>=M
)
,
无符号跳转
寄存器
A
与内存按位相<
/p>
”
与
”
寄存器
A
与内存按位相
”
与
”
若
小于,跳转(
R>M
)
,
有符号跳转
若小于,跳转(
<
br>) $$FF <
br>----->M
R
)
,
无符号跳转
若小于或等于,跳转(
R<=M
,
无符号跳转
若小于,跳转,
(
R<=M
)
,
有符号跳转
若为负,转跳,简单转跳
若不相等,转跳,简单转跳
若大于<
/p>
0
,跳转,简单跳转
无条件转跳
若选择位为
0
,跳转
BRN
BRSET
BSR
不转跳,相当于空操作
若选择位为<
/p>
1
,跳转
调用子程序
-----------
------------------------------------------
(
M
)
&mm
SP-2---->SP
RTNH:RTNL---->M(SP):M(SP+1)
Subroute address--->PC
V=0
V=1
SP-2--->SP
RTNH:RTNL---->M(SP):M(SP+1)
SP-1--->SP
(PAGE)--->M(SP)
PAGE--->PAGE
subroute address--->PC
(
A
)—
(B)
C=0
I=0
$$00----->M
$$00----->A
$$00----->B
V=0
(A)
—
(M)
(B)
—
(M)
—(
M
)
$$FF
—(
A
)
----->A
$$FF
—(
B
)
----->B
(A:B)
—
(M:M+1)
(
SP
)
-----
>(M:M+1)
(X)
—
(M:M+1)
(Y)
—
(M:M+1)
若(
A,B,D,X,SP
)
-1=0
,跳转,否则继续
若(
A,B,D,X,SP
)
-1
不等于
0
,跳转,否则继续
BVC
BVS
CALL
若无溢出,跳转,简单跳转
若溢出,跳转,简单跳转
调用子程序
(
64K
以外的子程序)
CBA
CLC
CLI
CLR
CLRA
CLRB
CLV
CMPA
CMPB
COM
COMA
COMB
CPD
CPS
CPX
CPY
DBEQ
DBNE
DEC
DECA
DECB
DES
DEX
DEY
EDIV
EDVIS
EMUL
EMLTLS
EORA
EORB
EUL
EXG
寄存器
A
与
B
比较
CCR
寄存器设置
CCR
寄存器设置
内存快速清零
寄存器
A
清零
寄存器
B
清零
CCR
寄存器设置
< br>寄存器
A
与内存比较
寄存器
B
与内存比较
(
16
位
)
内存取反
寄存器
A
取反
寄存器
B
取反
寄存器
D
与内存比较
< br>(16
位
)
(SP)
与内存数据比较
(16) <
/p>
寄存器
X
与内存比较(
< br>16
位)
寄存器
Y
与内存比较(
16
位)<
/p>
减
1
等于
p>
0
,跳转
减
p>
1
不等于
0
,跳转
内存地址减
1
寄存器
A
减
1
寄存器
B
减
1
栈指针自减
1
寄存器
X
减
1
寄存器
Y
减
1
32
位除以
16
位无符号除法
32
位除以
16
位有符号除法
16
位无符号乘法
16
位有符号乘法
< br>寄存器
A
与内存相“异或”
<
/p>
寄存器
B
与内存相“异或”
8
位无符号乘法
寄存器之间的数据交换
(M)-$$01
—
>M
(A) -$$01
—
>A
(B) -$$01
—
>B
(
SP
)
--->1--
--->SP|(SP)-$$0001--->SP
(X) -$$0001--->X
(Y )- $$0001--->Y
()/()
—
>
余数
D
()/()
—
>
余数
D
(X)*(Y)
—
>Y:D
(X)*(Y)
—
>Y:D
(
A
)
^
(
M
)
--->A
(
B
)
^
(
M
)
--->B
(A)*(B)
—
>A:B
(
A
,
B
,
CCR
,
D
,
X
,
X
< br>,
SP
)
---A
,
B
,
CCR
,
D
,
X
< br>,
X
,
SP
FDIV
IBEQ
IBNE
IDIV
IDIVS
INC
INCA
INCB
INS
INX
INY
JMP
JSR
LBCC
LBCS
LBEQ
LBGE
LBGT
LBHI
LBHS
LBLE
LBLO
LBLS
LBLT
LBMI
LBNE
LBRA
LBRN
LBPL
LBVC
LBVS
LDAA
LDAB
LDD
LDS
LDX
LDY
LEAS
LEAX
LEAY
LSL
LSLA
16
位除以
16
位小
数除法
加
1
等于
0
,跳转
加
1
不等于
0
,跳转
16
位无符号整数除法
16
位有符号整数除法
内存地址内容减
1
寄存器
A
加
1
寄存器
B
加
1
栈指针自加
1
寄存器
X
加
1
寄存器
Y
加
1
跳转
跳转到子程序
若
C=0
,跳转,简单跳转
若
p>
C=1
,跳转,简单跳转
若相等,跳转,简单跳转
若大于或等
于,跳转(
>=M
)
,无符号
若大于,跳转(
R>M
)
,
有符号跳转
< br>若大于
,
跳转(
R>M
)
,
无符号跳转
p>
若大于或等于
,
跳转(
R>=M
)
,
无符号跳转
若小于或等于,跳转(
R<=M
)
,
有符号
若小于,跳转(
若小于,跳转(
R
)
,
无符号跳转
若小于,跳转(
R<=M
)
,无符号跳转
R
)
若为负,跳转,简单跳转
若不相等,跳转,简单跳转
无条件跳转
不跳转,空操作
若大于
0
,跳转,简单跳转
若无溢出,跳转,简单跳转
若溢出,跳转,简单跳转
将数据载入寄存器
A
将数据载入寄存器
B
将数据载入寄存器
D
将数据载入寄存器
SP
将数据载入寄存器
X
将数据载入寄存器
Y
有效地址装入堆栈
有效地址装入寄存器
X
有效地址装入寄存器
Y
逻辑左移
逻辑左移
(D)/(X)
—
>X
余数
D
若
(
A,B,D,X,SP
)
+1=0<
/p>
,跳转,否则继续
若(
A,B,D,X,SP
)
+1
不等于
0
,跳转,否则继续
(D)/(X)---->X
余数
D
(D)/(X)----->X
余数
D
(
M
)
+$$01----->M
(
A
)
+$$01--
--->M
(B) +$$01----->B
(
SP
)
+1------>SP
(X) +$$0001--->X
(Y )+
$$0001--->Y
Address--->PC
SP-2--->SP
RTNH:RTNL---->M(SP):M(SP+1)
Subroute address--->PC
C=0
C=1
Z=1
N|V=0
Z|(N^V)=0
C|Z=0
C=0
Z|(N^V)=1
C=1
C|Z=1
N^V=1
N=1
Z=0
N=0
V=0
V=1
(
M
)
--->A
p>
(
M
)
--->B
(
M
:
M+1
)
--->
(
A
:
B
)
<
/p>
(
M
:
M+1<
/p>
)
--->XH
:
XL
(
M
:
M+1
)
--->XH
:
XL
(
M
:
M+1
)
--->YH
:
YL
有效地址
--->SP
有效地址
--->X
有效地址
--->Y
C<---########<---0
C<---########<---0