EM78 指 令 表
3.1.1.
面向寄存器(字节操作)型指令(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
|
3.1.2.
面向位操作类指令(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 Test, Skip if Clear
|
|
JBS R,B
|
如果R(B)=1,则跳过下一个指令
|
|
1
|
Bit Test, Skip if Set
|
|
RLC R
|
R(N)->R(N+1)
R(7)->C
C->R(0)
|
C
|
1
|
Rotate Left R through Carry
|
|
RLCA R
|
R(N)->A(N+1)
R(7)->C
C->A(0)
|
C
|
1
|
Rotate Left R through Carry,Place in the A Register
|
|
RRC R
|
R(N)->R(N-1)
R(0)->C
C->R(7)
|
C
|
1
|
Rotate Right R through Carry
|
|
助记符号
|
指令动作
|
标志影响
|
指令周期
|
语言描述
|
|
RRCA R
|
R(N)->A(N-1)
R(0)->C
C->A(7)
|
C
|
1
|
Rotate Right R through Carry,Place in the A Register
|
|
SWAP R
|
R(0-3)->R(4-7)
R(4-7)->R(0-3)
|
|
1
|
Swap R
|
|
SWAPA R
|
R(0-3)->A(4-7)
R(4-7)->A(0-3)
|
|
1
|
Swap R
|
3.1.3.
常数操作和控制类指令(22条)
|
助记符号
|
指令动作
|
标志影响
|
指令周期
|
语言描述
|
|
ADD A,K
|
A+K->A
|
Z,C,DC
|
1
|
ADD
|
|
AND A,K
|
A&K->A
|
Z
|
1
|
AND
|
|
CALL K
|
PC+1->[SP]
(PAGE,K)->PC
|
|
1
|
Subroutine Call
|
|
CONTR
|
CONT->A
|
|
1
|
Move CONT to the A register
|
|
CONTW
|
A->CONT
|
|
1
|
Move A to CONT
|
|
DISI
|
禁止中断
|
|
1
|
Disable Interrupt
|
|
ENI
|
使能中断
|
|
1
|
Enable Interrupt
|
|
INT
|
PC+1->[SP]
001H->PC
|
|
1
|
Software interrupt
|
|
IOR R
|
IOCR->A
|
|
1
|
Move IOCR to the A register
|
|
IOW R
|
A->IOCR
|
|
1
|
Move A to IOCR
|
|
JMP K
|
(PAGE,K)->PC
|
|
1
|
Unconditional Branch
|
|
MOV A,K
|
K->A
|
|
1
|
Move Data
|
|
NOP
|
|
|
1
|
No Operation
|
|
OR A,K
|
A OR K->A
|
Z
|
1
|
Inclusive OR
|
|
RET
|
[堆栈顶端]->PC
|
|
1
|
Return from Subroutine
|
|
RETI
|
[堆栈顶端]->PC,使能中断
|
|
1
|
Return from Interrupt
|
|
RETL K
|
K->A,
[堆栈顶端]->PC
|
|
|
Return Immediate Data to the A Register
|
|
SLEP
|
0->WDT,振荡器停止振荡
|
T,P
|
1
|
Into Sleep mode
|
|
SUB A,K
|
K-A->A
|
Z,C,DC
|
1
|
Subtract
|
|
TBL
|
PC+A->PC
|
Z,C,DC
|
2
|
Table Look Up
|
|
WDTC
|
0->WDT
|
T,P
|
1
|
Clear Watchdog Timer
|
|
XOR A,K
|
A XOR K->A
|
Z
|
1
|
Exclusive OR
|
|
|
|
|
|