文档介绍:第三章 EM78指令系统
EM78指令概述
EM78156 & EM78P156 单片机共有的 58 条指令,其宽度为 13 位。每一个指令码可分割成两部份,第一部分为标示指令功能的运算码( OPCODE ),第二部份則指出运算时所需之參数,亦即运算码( OPERAND )。而指令的类型大致可分为下列四种:
(1)控制型指令( control operation ): 如
INT...等等。
(2)面向寄存器(字节操作)型指令( register oriented ): 如
MOV A, Reg_B
; move Reg_B to A
ADD Reg_B, A
; add Reg_B with A, and
; save in Reg_B
... 等等。
(3)位操作型指令( bit oriented ): 如
BC,JBS...等等。
(4)常数型指令( constant operation ):如
MOV A, ***@0x55 ; move 0x55 to A
XOR ***@0xFF ;Xor A with 0xFF
一般而言,EM78 系列八位微控制器除一个指令需两个周期之外,其他的指令只需一个指令周期,除了对 PC (Program Counter)做“写”的指令,需二个指令周期,如(MOV PC, A)。
EMC 汇编语言指令集
符号解说:
‘R’:代表一般用途寄存器中的其中一个。
‘B’:代表一般用途寄存器中的某一位。
‘K’:代表8位或10位的常数或内容。
‘A’:代表累加寄存器。
面向寄存器(字节操作)型指令(26条)
助记符号
指令动作
标志影响
指令周期
语言描述
ADD A,R
A+R->A
Z,C,DC
1
ADD
ADD R,A
A+R->R
Z,C,DC
1
ADD
AND A,R
A&R->A
Z
1
AND
AND R,A
A&R->R
Z
1
AND
CLR R
0->R
Z
1
Clear Register
CLRA
0->A
Z
1
Clear the A register
COM R
/R->R
Z
1
Complement R
助记符号
指令动作
标志影响
指令周期
语言描述
COMA R
/R->A
Z
1
Complement R,Place in A
DAA
A寄存器调整为BCD值
C
1
Decimal Adjust
DEC R
R-1->R
Z
1
Decrement R
DECA R
R-1->A
Z
1
Decrement R,Place in A
DJZ R
R-1->R 结果为零就跳过下一个指令
1
Decrement R,Skip if 0
DJZA R
R-1->A 结果为零就跳过下一个指令
1
Decrement R,Please in A register, Skip if 0
INC R
R+1->R
Z
1
Increment R
INCA R
R+1->A
Z
1
Increment R,Please in A
JZ R
R+1->R, 结果为零就跳过下一个指令
1
Increment R,Skip if 0
JZA R
R+1->A, 结果为零就跳过下一个指令
1
Increment R,Place in the A regiser,Skipif 0
MOV R,A
A->R
1
Move Data
MOV A,R
R->A
Z
1
Move Data
MOV R,R
R->R
Z
1
Move Data
OR A,R
A OR R ->A
Z
1
Inclusive OR
OR R,A
A OR R->R
Z
1
Inclusive OR
SUB A,R
R-A->A
Z,C,DC
1
Subtract
SUB R,A
R-A->R
Z,C,DC
1
Subtract
XOR A,R
A XOR R->A
Z
1
Exclusive OR
XOR R,A
A XOR R->R
Z
1
Exclusive OR
面向位操作类指令(10条)
助记符号
指令动作
标志影响
指令周期
语言描述
BC R,B
0->R(B)
1
Bit Clear
BS R,B
1->R(B)
1
Bit Set
JBC R,B
如果R(B)=0,则跳过下一个指令
1
Bit Tes