c51汇编语言指令集.docx
- 文档编号:4636151
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:17.95KB
c51汇编语言指令集.docx
《c51汇编语言指令集.docx》由会员分享,可在线阅读,更多相关《c51汇编语言指令集.docx(12页珍藏版)》请在冰豆网上搜索。
c51汇编语言指令集
资料转移指令
MOV移动
MOVC程式记忆体移动
MOVX外部RAM和扩展I/O口与累加器A的数据传送指令
PUSH放入堆叠
POP由堆叠取回
XCH8位元交换
XCHD低4位元交换
SWAP高低4位元交换
算术指令
ADD两数相加
ADDC两数相加再加C
SUBB两数相减再减C
INC加一指令
DEC减一指令
MUL(MULAB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
DIV(DIVAB除法指令仅此一条)相除指令,所得商存A,余数存B
DA(DAA只此一条指令)调整为十进数
逻辑指令
ANL做AND(逻辑与)运算
ORL做OR(逻辑或)运算
XRL做(逻辑异或)运算
CLR清除为0
CPL取反指令
RL不带进位左环移
RLC带进位左环移
RR不带进位右环移
RRC带进位右环移
控制转移类指令
JCC=1时跳
JNCC=0时跳
JB位元=1时跳
JNB位元=0时跳
JBC位元=1时跳且清除此位元
LCALL长调用子程序
ACALL绝对调用子程序
RET由副程式返回
RETI由中断副程式返回
AJMP绝对转移
SJMP相对转移
JMP@A+DPTR散转,相对DPTR的间接转移
JZA=0时跳
JNZA0时跳
CJNE二数比较,不相等时跳
DJNZ减一,不等於0时跳
NOP空操作
位变量指令
SETB设定为1
ORG程序开始,规定程序的起始地址
END程序结束
EQU等值指令(先赋值后使用)例:
SUMEQU30H
DB定义字节指令
DW定义字内容
DS定义保留一定的存贮单元数目
BIT位地址符号指令例:
SAMBITP1.0
RET子程序返回指令
RETI中断子程序返回指令
$本条指令地址
算术运算指令
指令说明周期
ADDA,RnA←A+Rn12
ADDA,directA←A+direct12
ADDA,@RiA←A+Ri12
ADDA,#dataA←A+data12
ADDCA,RnA←A+Rn+C12
ADDCA,directA←A+direct+C12
ADDCA,@RiA←A+Ri+C12
ADDCA,#dataA←A+data+C12
SUBBA,RnA←A-Rn-C12
SUBBA,directA←A-direct-C12
SUBBA,@RiA←A-Ri-C12
SUBBA,#dataA←A-data-C12
INCAA←A+112
INCRnRn←Rn+112
INCdirectdirect←direct+112
INC@Ri@Ri←@Ri+112
INCDPTRDPTR←DPTR+112
DECAA←A-112
DECRnRn←Rn-112
DECdirectdirect←direct-112
DEC@Ri@Ri←@Ri-112
MULAB两个无符号的8位数据相乘,其中高阶8位放入B缓存器,低阶8位则放入累积器ACC24
DIVAB两个无符号的8位数据相除,把ACC值除以B缓存器值,商数放回ACC,余数放在B48
DAA累加器作十进制调整48
逻辑运算指令
指令说明周期
ANLA,RnA←AandRn12
ANLA,directA←Aanddirect12
ANLA,@RiA←AandRi12
ANLA,#dataA←Aanddata12
ANLdirect,Adirect←directandA12
ANLdirect,#datadirect←directanddata24
ORLA,RnA←AorRn12
ORLA,directA←Aordirect12
ORLA,RnA←AorRn12
ORLA,@RiA←AorRi12
ORLA,#dataA←Aordata12
ORLdirect,Adirect←directorA12
ORLdirect,#datadirect←directordata24
XRLA,RnA←AxorRn12
XRLA,directA←Axordirect12
XRLA,@RiA←AxorRi12
XRLA,#dataA←Axordata12
XRLdirect,Adirect←directxorA12
XRLdirect,#datadirect←directxordata12
CLRA清除累加器12
CPLA累加器反相12
RLA累加器向左旋转12
RLCA累加器和C左旋12
RRA累加器向右旋转12
RRCA累加器和C右旋12
SWAPA累加器的高低四位互换12
数据转移指令
指令说明周期
MOVA,RnA←Rn12
MOVA,directA←direct12
MOVA,@RiA←Ri12
MOVA,#dataA←data12
MOVRn,ARn←A12
MOVRn,directRn←direct24
MOVRn,#dataRn←data12
MOVdirect,Adirect←A12
MOVdirect,Rndirect←Rn24
MOVdirect,directdirect←direct24
MOVdirect,@Ridirect←Ri24
MOVdirect,#datadirect←data24
MOV@Ri,ARi←A12
MOV@Ri,directRi←direct24
MOV@Ri,#dataRi←data12
MOVDPTR,#data16Ri←16bitdata24
MOVCA,@A+DPTRA←程序内存的数据24
MOVCA,@A+PCA←程序内存的数据24
MOVXA,@RiA←外部RAM的数据(8bit地址)24
MOVXA,@DPTRA←外部RAM的数据(16bit地址)24
MOVX@Ri,A外部的RAM(8bit)←A24
MOVX@DPTR,A外部的RAM(16bit)←A24
PUSHdirec推迭区←direct24
POPdirecdirect←堆栈区24
XCHA,RnA和Rn互换12
XCHA,directA和direct互换12
XCHA,@RiA和Ri互换12
XCHDA,@RiA和Ri的低四位互换12
位运算指令
指令说明周期
CLRC清除进位旗标12
CLRbit清除直接位12
SETBC设定进位旗标12
SETBbit设定直接位12
CPLC进位旗标反相12
CPLbit直接位反相12
ANLC,bitC←Candbit24
ANLC,/bitC←Candbit(反相)24
ORLC,bitC←Corbit24
ORLC,/bitC←Corbit(反相)24
MOVC,bitC←bit12
MOVbit,Cbit←C24
JCrel若C=1跳至rel24
JNCrel若C=0跳至rel24
JBbit,rel若bit=1跳至rel24
JNBbit,rel若bit=0跳至rel24
JBCbit,rel若bit=1跳至rel,且清除此位24
程序跳跃指令
指令说明周期
ACALLaddr11绝对式子程序呼叫24
LCALLaddr16远程子程序呼叫24
RET从子程序返回24
RETI从中断子程序返回24
AJMPaddr11绝对式跳跃24
LJMPaddr16远程跳跃24
SJMPrel短程跳跃24
JMP@A+DPTR间接跳跃24
JZrel若A=0跳至rel24
JNZrel若A不等于0跳至rel24
CJNEA,direct,rel若A不等于direct跳至rel24
CJNEA,#data,rel若A不等于data跳至rel24
CJNERn,#data,rel若Rn不等于data跳至rel24
CJNE@Ri,#data,rel若Ri不等于data跳至rel24
DJNZRn,relRn减1不等于0跳至rel24
DJNZdirect,reldirect减1不等于0跳至rel24
NOP没动作12
缩写符号说明
缩写符号说明备注
Rn缓存器R0-R7
direct8bit内部数据存储器,包括
1.内部数据存储器(00-7F)的地址
2.特殊功能缓存器(80-FF)的地址,如P0,PSW,TMOD..等
@Ri由缓存器R0或R1所寻址的内部RAM数据
#data8bit常数
#data1616bit常数
addr1616bit的目的地址,可使跳跃指令跳跃64k
addr1111bit的目的地址,可使跳跃指令跳跃2k
rel具正负号的8位地址偏移量,用于相对地址的跳跃
bit1个bit:
只所有可以位寻址的位。
(如PSW.7为CY旗号)
A累加器(累积器)
C或CY进位旗号
AC辅助进位旗号
Bb指定位B0-B7
D半字节(4Bit)助忆符号
F0旗号0
I中断
PC程序计数器
P0I/Oport0
P1I/Oport1
P2I/Oport2
P3I/Oport3
PSW程序状态字组(类似于旗号缓存器)
SP堆栈指针缓存器
B缓存器B
DPTR数据指针缓存器
X外部滋要内存的助忆符号
@间接地址符号
$程序计数迄目前的值
reg缓存器
8051INSTRUCTIONSET
1.Arithmeticoperations:
Mnemonic Byte Cyc
ADDA,@Ri 1 1
ADDA,Rn 1 1
ADDA,direct 2 1
ADDA,#data 2 1
ADDCA,@Ri 1 1
ADDCA,Rn 1 1
ADDCA,direct 2 1
ADDCA,#data 2 1
SUBBA,@Ri 1 1
SUBBA,Rn 1 1
SUBBA,direct 2 1
SUBBA,#data 2 1
INCA 1 1
INC@Ri 1 1
INCRn 1 1
INCDPTR 1 1
INCdirect 2 1
INCdirect 2 1
DECA 1 1
DEC@Ri 1 1
DECRn 1 1
DECdirect 2 1
MULAB 1 4
DIVAB 1 4
DAA 1 1
2.Logicalopreations:
ANLA,@Ri 11
XRLA,@Ri 11
ANLA,Rn 11
XRLA,Rn 11
ANLA,direct21
XRLA,direct21
ANLA,#data21
XRLA,#data21
ANLdirect,A21
XRLdirect,A21
ANLdirect,#data32
XRLdirect,#data32
ORLA,@Ri11
CLRA11
ORLA,Rn11
CPLA11
ORLA,direct21
RLA11
ORLA,#data21
RLCA11
ORLdirect,A21
RRA11
ORLdirect,#data32
RRCA11
SWAPA11
3.Datatransfer:
MnemonicByteCyc
MOVA,@Ri11
MOVDPTR,#data1632
MOVA,Rn11
MOVCA,@A+DPTR12
MOVA,direct21
MOVCA,@A+PC12
MOVA,#data21
MOVXA,@Ri12
MOV@Ri,A11
MOVXA,@DPTR12
MOV@Ri,direct22
MOVX@Ri,A12
MOV@Ri,#data21
MOVX@DPTR,A12
MOVRn,A11
PUSHdirect22
MOVRn,direct22
POPdirect22
MOVRn,#data21
XCHA,@Ri11
MOVdirect,A21
XCHA,Rn11
MOVdirect,@Ri22
XCHA,direct21
MOVdirect,Rn22
XCHDA,@Ri11
MOVdirect,direct32
MOVdirect,#data32
4.Booleanvariablemanipulation:
MnemonicByteCyc
CLRC11
ANLC,bit22
SETBC11
ANLC,/bit22
CPLC11
ORLC,bit22
CLRbit21
ORLC,/bit22
SETBbit21
MOVC,bit21
CPLbit21
MOVbit,C22
5.Programandmachinecontrol:
MnemonicByteCyc
NOP11
JZrel22
RET12
JNZrel22
RETI12
JCrel22
ACALLaddr1122
JNCrel22
AJMPaddr1122
JBbit,rel32
LCALLaddr1632
JNBbit,rel32
LJMPaddr16 3 2
JBCbit,rel 3 2
SJMPrel 22
CJNEA,direct,rel 32
JMP@A+DPTR 12
CJNEA,#data,rel32
DJNZRn,rel 2 2
CJNE@Ri,#data,rel3 2
DJNZdirect,rel 3 2
CJNERn,#data,rel 32
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c51 汇编语言 指令