c51指令集.docx
- 文档编号:6131319
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:19.07KB
c51指令集.docx
《c51指令集.docx》由会员分享,可在线阅读,更多相关《c51指令集.docx(13页珍藏版)》请在冰豆网上搜索。
c51指令集
1:
算术操作类指令:
ADDA,Rn
寄存器加到累加器
ADDA,direct
直接寻址字节加到累加器
ADDA,@Ri
间址RAM加到累加器
ADDA,#data
立即数加到累加器
ADDCA,Rn
寄存器加到累加器(带进位)
ADDCA,direct
直接寻址字节加到累加器(带进位)
ADDCA,@Ri
间址RAM加到累加器(带进位)
ADDCA,#data
立即数加到累加器(带进位)
SUBBA,Rn
累加器减去寄存器(带借位)
SUBBA,direct
累加器减去间接寻址RAM(带借位)
SUBBA,@Ri
累加器减去间址RAM(带借位)
SUBBA,#data
累加器减去立即数(带借位)
INCA
累加器加1
INCRn
寄存器加1
INCdirect
直接寻址字节加1
INC@Ri
间址RAM加1
DECA
累加器减1
DECRn
寄存器减1
DECdirect
直接寻址字节减1
DEC@Ri
间址RAM减1
INCDPTR
数据地址加1
MULAB
累加器和寄存器B加乘
DIVAB
累加器除以寄存器B
DAA
累加器十进制调整
2:
逻辑操作类指令:
ANLA,Rn
寄存器“与”到累加器
ANLA,direct
直接寻址字节“与”到累加器
ANLA,@Ri
间址RAM“与”到累加器
ANLA,#data
立即数“与”到累加器
ANLdirect,A
累加器“与”到直接寻址字节
ANLdirect,#data
立即数“与”到直接寻址字节
ORLA,Rn
寄存器“或”到累加器
ORLA,direct
直接寻址字节“
ORLA,@Ri
间址RAM“或”到累加器
ORLA,#data
立即数“或”到累加器
ORLdirect,A
累加器“或”到直接寻址字节
ORLdirect,#data
立即数“或”到直接寻址字节
XRLA,Rn
寄存器“异或”到累加器
XRLA,direct
直接寻址数“异或”到累加器
XRLA,@Ri
间址RAM“异或”到累加器
XRLA,#data
立即数“异或”到累加器
XRLdirect,A
累加器“异或”到直接寻址字节
XRLdirect,#data
立即数“到直接寻址字节
CLRA
累加器清零
CPLA
累加器求反
RLA
循环循环左移
RLCA
经过进位位的累加器循环左移
RRA
累加器循环右移
RRCA
经过进位位的累加器循环右移
SWAPA
累加器内高低半字节交换
3:
数据传输类指令:
MOVA,Rn
寄存器传送到累加器A
MOVA,direct
直接寻址字节传送到累加器
MOVA,@Ri
间址RAM传送到累加器
MOVA,#data
立即数传送到累加器
MOVRn,A
累加器传送到寄存器
MOVRn,direct
直接寻址字节传送到寄存器
MOVRn,#data
立即数传送到寄存器
MOVdirect,A
累加器传送到直接寻址字节
MOVdirect,Rn
寄存器传送到直接寻址字节
MOVdirect,direct
直接寻址字节传送到直接寻址字节
MOVdirect,@Ri
间址RAM传送到直接寻址字节
MOVdirect,#data
立即数传送到直接寻址字节
MOV@Ri,A
累加器传送到间址RAM
MOV@Ri,direct
直接寻址数传送到间址RAM
MOV@Ri,#data
立即数传送到间址RAM
MOVDPTR,#data16
16位常数装入数据指针
MOVCA,@A+DPTR
相对于DPTR的代码字节传送到累加器
MOVCA,@A+PC
相对于PC的代码字节传送到累加器
MOVXA,@Ri
外部RAM(8位地址)数传送到A
MOVX@Ri,A
累加器传到外部RAM(8位地址)
MOVXA,@DPTR
外部RAM(16位地址)传送到A
MOVX@DPTR,A
累加器传到外部RAM(16位地址)
PUSHdirect
直接寻址字节压入栈顶
POPdirect
栈顶数据弹出到直接寻址字节
XCHA,Rn
寄存器和累加器交换
XCHA,direct
直接寻址字节与累加器交换
XCHA,@Ri
间址RAM与累加器交换
XCHDA,@Ri
间址RAM和累加器交换低半字节
4:
位操作类指令
CLRC
清进位位
CLRbit
清直接寻址位
SETBC
进位位置1
SETBbit
直接寻址位置位
CPLC
进位位取反
CPLbit
直接寻址位取反
ANLC,bit
直接寻址位“与”到进位位
ANLC,/bit
直接寻址位的反码“与”到进位位
ORLC,bit
直接寻址位“或”到进位位
ORLC,/bit
直接寻址位的反码“或”到进位位
MOVC,bit
直接寻址位传送到进位位
MOVbit,C
进位位传送到直接寻址位
JCrel
若进位位为1则跳转
JNCrel
若进位位为零则跳转
JBbit,rel
若直接寻址位为1则跳转
JNBbit,rel
若直接寻址位为零则跳转
JBCbit,rel
若直接寻址位为1则跳转,并清除该位
5:
控制转移类指令:
ACALLaddr11
绝对调用子程序
LCALLaddr16
长调用子程序
RET
从子程序返回
RETI
从中断返回
AJMPaddr11
绝对转移
LJMPaddr16
长转移
SJMPrel
短转移(相对偏移)
JMP@A+DPTR
相对DPTR的间接转移
JZrel
累加器为0则转移
JNZrel
累加器为非0则转移
CJNEA,direct,rel
比较直接寻址字节与A,不相等则转移
CJNEA,#data,rel
比较立即数与A,不相等则转移
CJNERn,#data,rel
比较立即数与寄存器,不相等则转移
CJNE@Ri,#data,rel
比较立即数与间接寻址RAM,不相等则转移
DJNZRn,rel
寄存器减1,不为零则转移
DJNZdirect,rel
直接寻址字节减1,不为零则转移
NOP
空操作
注释:
Rn–当前选择的寄存器区的寄存器R0-R7。
@Ri–通过寄存器R0-R1间接寻址的数据RAM地址。
rel–相对于下一条指令第8位有符号(2的补码)偏移量。
SJMP和所有条
件转移指令使用。
direct–8位内部数据存储器地址。
可以是直接访问数据RAM地址(0x00-0x7F)或一
个SFR地址(0x80-0xFF)。
#data–8位立即数
#data16–16位立即数
bit–数据RAM或SFR中的直接寻址位
addr11–ACALL或AJMP使用的11位目的地址。
目的地址必须与下一条指令第
节处于同一个2K字节的程序存储器页。
addr16–LCALL或LJMP使用的16位目的地址。
目的地址可以是64K程序存储器空间
内的任何位置。
指令功能字节数机器周期
MOVA,Rn寄存器内容送入累加器11
MOVA,direct直接地址单元内容送入累加器21
MOVA,@Ri间接RAM单元内容送入累加器11
MOVA,#data立即数送入累加器21
MOVRi,A累加器内容送入寄存器11
MOVRi,direct直接地址单元内容送入寄存器22
MOVRi,#data立即数送入寄存器21
MOVdirect,A累加器内容送直接地址单元21
MOVdirect,Ri寄存器内容送直接地址单元22
MOVdirect,direct直接地址单元送另一直接地址单元32
MOVdirect,@Ri间接RAM单元送直接地址单元22
MOVdirect,#data立即数送直接地址单元32
MOV@Ri,A累加器内容送入间接RAM单元11
MOV@Ri,direct直接地址单元内容送间接RAM单元22
MOV@Ri,#data立即数送入间接RAM单元21
MOVDPTR,#data1616立即数送入地址寄存器32
MOVCA,@A+DPTR以DPTR为基址将变址寻址单元内容送累加器12
MOVCA,@A+PC以PC为基址将变址单元内容送累加器12
MOVXA,@Ri外部RAM(8位地址)内容送入累加器12
MOVXA,@DPTR外部RAM(16位地址)内容送入累加器12
MOVX@Ri,A累加器内容送外部RAM(8位地址)12
MOVX@DPTR,A累加器内容送外部RAM(16位地址)12
PUSHdirect直接地址单元中数据压入堆栈22
POPdirect弹栈送直接地址单元22
XCHA,Rn寄存器和累加器内容交换11
XCHA,direct直接单元与累加器交换21
XCHA,@Ri间接RAM与累加器交换11
XCHDA,@Ri间接RAM的底半字节与累加器交换11
SWAPA累加器半字节交换11
ADDA,Rn寄存器内容加到累加器11
ADDA,direct直接地址单元内容加到累加器21
ADDA,@Ri间接RAM内容加到累加器11
ADDA,#data立即数加到累加器21
ADDCA,Rn寄存器内容带进位加到累加器11
ADDCA,direct直接地址单元带进位加到累加器21
ADDCA,@Ri间接RAM内容带进位加到累加器11
ADDCA,#data立即数带进位加到累加器21
SUBBA,Rn累加器带错位减寄存器内容11
SUBBA,direct累加器带错位减直接地址单元内容21
SUBBA,@Ri累加器带错位减间接RAM中内容11
SUBBA,#data累加器带错位减立即数21
INCA累加器自增111
INCRn寄存器自增111
INCdirect直接地址单元自增121
INC@Ri间接RAM内容自增111
DECA累加器自减111
DECdirect直接地址单元自减121
DECRn寄存器自减111
DEC@Ri间接RAM内容自减111
INCDPTR地址寄存器内容自增112
MULAB累加器内容乘以寄存器B内容14
DIVAB累加器内容除以寄存器B内容14
DAA累加器十进制调整12
ANLA,Rn累加器与寄存器相与11
ANLA,direct累加器与直接地址单元相与21
ANLA,@Ri累加器与间接RAM单元相与11
ANLA,#data累加器与直接数相与21
ANLdirect,A直接地址单元与累加器相与21
ANLdirect,#data直接地址单元与立即数相与32
ORLA,Rn累加器与寄存器相或11
ORLA,direct累加器与直接地址单元相或21
ORLA,@Ri累加器与间接RAM单元相或11
ORLA,#data累加器与直接数相或21
ORLdirect,A直接地址单元与累加器相或21
ORLdirect,#data直接地址单元与立即数相或32
XRLA,Rn累加器与寄存器相异或11
XRLA,direct累加器与直接地址单元相异或21
XRLA,@Ri累加器与间接RAM单元相异或11
XRLA,#data累加器与直接数异或21
XRLdirect,A直接地址单元与累加器相异或21
XRLdirect,#data直接地址单元与立即数相异或32
CLRA累加器清零11
CPLA累加器求反11
RLA累加器循环左移11
RLCA累加器带进位循环左移11
RRA累加器循环右移11
RRCA累加器带进位循环右移11
ACALLaddr11绝对(短)调用子程序22
LCALLaddr16长调用子程序32
RET子程序返回12
RETI中断返回12
AJMPaddr11绝对(短)转移22
LJMPaddr16长转移32
SJMPrel相对转移22
JMP@A+DPTR相对DPTR的间接转移12
JZrel累加器为0转移22
JNZrel累加器非0转移22
CJNEA,direct,rel累加器与直接单元地址比较,不相等转移32
CJNEA,#data,rel累加器与立即数比较,不相等转移332
CJNERn,#data,rel寄存器与立即数比较,不相等转移332
CJNE@Ri,#data,rel间接RAM单元与立即数比较,不相等转移332
DJNZRn,rel寄存器自减1,不为0转移32
DJNZdirect,rel直接地址单元自减1,不为0转移32
NOP空操作11
CLRC消进位位11
CLRbit消直接地址位21
SETBC置进位位11
SETBbit置直接地址位21
CPLC进位位求反11
CPLbit直接地址位求反21
ANLC,bit进位位与直接地址位相与22
ORLC,bit进位位与直接地址位相或22
MOVC,bit直接地址位内容送入进位位21
MOVbit,C进位位内容送入直接地址位22
JCrel进位位为1则转移22
JNCrel进位位为0则转移22
JBbit,rel直接地址位为1转移32
JNBbit,rel直接地址位为0则转移32
JBCbit,rel直接地址位为1则转移,且清032
ORGm设置目标程序的其实地址
END借书汇编程序
DBx1~~xn将指令后的字节数据顺序放入从标号地址开始的连续存储单元中
DWx1~~xn将指令后的字数据顺序放入从标号地址开始的连续存储单元中
DSn从标号地址开始留若干字节的存储空间
Tag:
EQUm将指令中项的值赋给EQU前的标号
Tag:
BITb将指令中地址献给BIT前的标号
DATA将数据地址或代码地址赋予规定的字符名称
C51单片机指令集
格式功能简述字节数周期
一、数据传送类指令
MOVA,Rn寄存器送累加器11
MOVRn,A累加器送寄存器11
MOVA,@Ri内部RAM单元送累加器11
MOV@Ri,A累加器送内部RAM单元11
MOVA,#data立即数送累加器21
MOVA,direct直接寻址单元送累加器21
MOVdirect,A累加器送直接寻址单元21
MOVRn,#data立即数送寄存器21
MOVdirect,#data立即数送直接寻址单元32
MOV@Ri,#data立即数送内部RAM单元21
MOVdirect,Rn寄存器送直接寻址单元22
MOVRn,direct直接寻址单元送寄存器22
MOVdirect,@Ri内部RAM单元送直接寻址单元22
MOV@Ri,direct直接寻址单元送内部RAM单元22
MOVdirect2,direct1直接寻址单元送直接寻址单元32
MOVDPTR,#data1616位立即数送数据指针32
MOVXA,@Ri外部RAM单元送累加器(8位地址)12
MOVX@Ri,A累加器送外部RAM单元(8位地址)12
MOVXA,@DPTR外部RAM单元送累加器(16位地址)12
MOVX@DPTR,A累加器送外部RAM单元(16位地址)12
MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12
MOVCA,@A+PC查表数据送累加器(PC为基址)12
XCHA,Rn累加器与寄存器交换11
XCHA,@Ri累加器与内部RAM单元交换11
XCHDA,direct累加器与直接寻址单元交换21
XCHDA,@Ri累加器与内部RAM单元低4位交换11
SWAPA累加器高4位与低4位交换11
POPdirect栈顶弹出指令直接寻址单元22
PUSHdirect直接寻址单元压入栈顶22
二、算术运算类指令
ADDA,Rn累加器加寄存器11
ADDA,@Ri累加器加内部RAM单元11
ADDA,direct累加器加直接寻址单元21
ADDA,#data累加器加立即数21
ADDCA,Rn累加器加寄存器和进位标志11
ADDCA,@Ri累加器加内部RAM单元和进位标志11
ADDCA,#data累加器加立即数和进位标志21
ADDCA,direct累加器加直接寻址单元和进位标志21
INCA累加器加111
INCRn寄存器加111
INCdirect直接寻址单元加121
INC@Ri内部RAM单元加111
INCDPTR数据指针加112
DAA十进制调整11
SUBBA,Rn累加器减寄存器和进位标志11
SUBBA,@Ri累加器减内部RAM单元和进位标志11
SUBBA,#data累加器减立即数和进位标志21
SUBBA,direct累加器减直接寻址单元和进位标志21
DECA累加器减111
DECRn寄存器减111
DEC@Ri内部RAM单元减111
DECdirect直接寻址单元减121
MULAB累加器乘寄存器B14
DIVAB累加器除以寄存器B14
三、逻辑运算类指令
ANLA,Rn累加器与寄存器11
ANLA,@Ri累加器与内部RAM单元11
ANLA,#data累加器与立即数21
ANLA,direct累加器与直接寻址单元21
ANLdirect,A直接寻址单元与累加器21
ANLdirect,#data直接寻址单元与立即数31
ORLA,Rn累加器或寄存器11
ORLA,@Ri累加器或内部RAM单元11
ORLA,#data累加器或立即数21
ORLA,direct累加器或直接寻址单元21
ORLdirect,A直接寻址单元或累加器21
ORLdirect,#data直接寻址单元或立即数31
XRLA,Rn累加器异或寄存器11
XRLA,@Ri累加器异或内部RAM单元11
XRLA,#data累加器异或立即数21
XRLA,direct累加器异或直接寻址单元21
XRLdirect,A直接寻址单元异或累加器21
XRLdirect,#data直接寻址单元异或立即数32
RLA累加器左循环移位11
RLCA累加器连进位标志左循环移位11
RRA累加器右循环移位11
RRCA累加器连进位标志右循环移位11
CPLA累加器取反11
CLRA累加器清零11
四、控制转移类指令类
ACCALLaddr112KB范围内绝对调用22
AJMPaddr112KB范围内绝对转移22
LCALLaddr162KB范围内长调用32
LJMPaddr162KB范围内长转移32
SJMPrel相对短转移22
JMP@A+DPTR相对长转移12
RET子程序返回12
RET1中断返回12
JZrel累加器为零转移22
JNZrel累加器非零转移22
CJNEA,#data,rel累加器与立即数不等转移32
CJNEA,direct,rel累加器与直接寻址单元不等转移32
CJNERn,#data,rel寄存器与立即数不等转移32
CJNE@Ri,#data,relRAM单元与立即数不等转移32
DJNZRn,rel寄存器减1不为零转移22
DJNZdirect,rel直接寻址单元减1不为零转移32
NOP空操作11
五、布尔操作类指令
MOVC,bit直接寻址位送C21
MOVbit,CC送直接寻址位21
CLRCC清零11
CLRbit直接寻址位清零21
CPLCC取反11
CPLbit直接寻址位取反21
SETBCC置位11
SETBbit直接寻址位置位21
ANLC,bitC逻辑与直接寻址位22
ANLC,/bitC逻辑与直接寻址位的反22
ORLC,bitC逻辑或直接寻址位22
ORLC,/bitC逻辑或直接寻址位的反22
JCrelC为1转移22
JNCrelC为零转移22
JBbit,rel直接寻址位为1转移32
JNBbit,rel直接寻址为0转移
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c51 指令