EMC 汇编语言指令集

EM78系列单片机将众多功能集于一身,这其中包括ALU、ROM、RAM、I/O、堆栈、 中断控制器、定时/计数器、看门狗、电压检测器、复位电路、振荡电路等。

EM78系列单片机采用RISC结构设计、单周期、单字节及流水线指令、五级堆栈、RAM 数量从32~157个,最短指令周期100ns,与其它一些单片机相比,EM78系列单片机具有更高、更快的运行处理速度。

符号注释

1.符号“R”:代表某个寄存器.
2.符号“B”:代表寄存器中的某一位.
3.符号“K”:代表一个8位或10位的常数.
4.符号“A”:代表累加寄存器.
5.在常数之前加@.
6.在十六进制之前加0x,在十进制之前不加.
7.注释语句前加;.
8.ORG为定义初始地址.
9.“= =”为定义代号值,在使用之前要进行定义.

操作指令

  1. 面向寄存器型操作指令
符号指令动作指令周期
ADD A, RA+R->A1A加R,结果保存到A
ADD R, AA+R->R1A加R,结果保存到R
AND A,RA&R->A1A和R相与,结果保存到A
AND R,AA&R->R1A和R相与,结果保存到R
CLR R0->R1清除寄存器R
CLRA0->A1清除累加器A
COM R/R->R1寄存器R取反,结果保存到R
COMA R/R->A1寄存器R取反,结果保存到A
DAAA 寄存器调整为 BCD 值1对累加器A做十进制调整(转换成BCD码)
DEC RR-1->R1寄存器R的值减1,结果保存到R
DECA RR-1->A1寄存器R的值减1,结果保存到A
DJZ RR-1->R 结果为零就跳过下一个指令1寄存器R减1,结果保存到R,值为0就跳过下一指令
DJZA RR-1->A 结果为零就跳过下一个指令1寄存器R减1,结果保存到A,值为0就跳过下一指令
INC RR+1->R1寄存器R加1,结果保存到R
INCA RR+1->A1寄存器R加1,结果保存到A
JZ RR+1->R, 结果为零就跳过下一个指令1寄存器R加1,结果保存到R,值为0就跳过下一指令
JZA RR+1->A, 结果为零就跳过下一个指令1寄存器R加1,结果保存到A,值为0就跳过下一指令
MOV R,AA->R1将累加器A中内容送到寄存器R中
MOV A,RR->A1将寄存器R中内容送到累加器A中
MOV R,RR->R1将寄存器R中内容送到寄存器R中
OR A,RA OR R ->A1A和B相或,结果保存到A
OR R,AA OR R->R1A和B相或,结果保存到R
SUB A,RR-A->A1寄存器R减A,结果保存到A
SUB R,AR-A->R1寄存器R减A,结果保存到R
XOR A,RA XOR R->A1A和B相异或,结果保存到A
XOR R,AA XOR R->R1A和B相异或,结果保存到R
  1. 面向位操作指令
符号指令动作指令周期
BC R,B0->R(B)1寄存器R第B位清0
BS R,B1->R(B)1寄存器R第B位置1
JBC R,B如果 R(B)=0, 则跳过下一个指令1如果寄存器R第B位为0,则跳过下一指令
JBS R,B如果 R(B)=1, 则跳过下一个指令1如果寄存器R第B位为1,则跳过下一指令
RLC RR(N)->R(N+1),R(7)->C,C->R(0)1寄存器R带进位标志C 循环左移
RLCA RR(N)->A(N+1),R(7)->C,C->A(0)1寄存器R带进位标志C 循环左移,结果保存到累加器A
RRC RR(N)->R(N-1),R(0)->C,C->R(7)1寄存器R带进位标志C 循环右移
RRCA RR(N)->A(N-1),R(0)->C,C->A(7)1寄存器R带进位标志C 循环右移,结果保存到累加器A
SWAP RR(0-3)->R(4-7) ,R(4-7)->R(0-3)1寄存器R高4位和低4位互换
SWAPA RR(0-3)->A(4-7) ,R(4-7)->A(0-3)1寄存器R高4位和低4位互换,结果保存到累加器A
  1. 常数操作指令、控制类指令(其中K都为一常量)
符号指令动作指令周期
ADD A,KA+K->A1A加立即数K,结果保存到A
AND A,KA&K->A1A和K相与,结果保存到A
CALL KPC+1->[SP] ,(PAGE,K)->PC2调用子程序,将返回地址入栈,由K指定的10位地址装入PC(9::0)
CONTRCONT->A1读CONT寄存器,结果保存到A
CONTWA->CONT1将寄存器A的值写入CONT寄存器
DISI禁止中断1清INT位0,禁止全局中断
ENI使能中断1置INT位1,使能全局中断
INTPC+1->[SP] 001H->PC1跳转到软件中断指令向量处
IOR RIOCR->A1将IO输入输出控制寄存器内容读出,结果保存到寄存器A
IOW RA->IOCR1将寄存器A内容写入IO输入输出控制寄存器
JMP K(PAGE,K)->PC2无条件转移指令
MOV A,KK->A1将立即数K送到A
NOPNo Operation1空转
OR A,KA OR K->A1A和K相或,结果保存到A
RET[堆栈顶端]->PC ;return2使能中断,子程序返回并开启中断
RETI[堆栈顶端]->PC2使能中断,中断返回并返回到A值
RETL KK->A, [堆栈顶端]->PC2子程序返回,K载入累加器A,栈顶弹入PC(多用于查表)
SLEP0->WDT,1休眠指令,振荡器停止振荡
SUB A,KK-A->A1K减A,结果保存到A
TBLPC+A->PC2程序计数器PC和A相加,结果保存到PC
WDTC0->WDT1;清空看门狗计时器
XOR A,KA XOR K->A1A和K相异或,结果保存到A
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值