51单片机汇编指令总结Word下载.docx

上传人:b****6 文档编号:20004399 上传时间:2023-01-14 格式:DOCX 页数:7 大小:18.80KB
下载 相关 举报
51单片机汇编指令总结Word下载.docx_第1页
第1页 / 共7页
51单片机汇编指令总结Word下载.docx_第2页
第2页 / 共7页
51单片机汇编指令总结Word下载.docx_第3页
第3页 / 共7页
51单片机汇编指令总结Word下载.docx_第4页
第4页 / 共7页
51单片机汇编指令总结Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

51单片机汇编指令总结Word下载.docx

《51单片机汇编指令总结Word下载.docx》由会员分享,可在线阅读,更多相关《51单片机汇编指令总结Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

51单片机汇编指令总结Word下载.docx

一.加法减法指令:

1.加法指令:

ADDA,RnADDA,directADDA,@RiADDA,#data2.带进位加法指令:

ADDCA,RnA←(A)+(Rn)+CYADDCA,directA←(A)+(direct)+CYADDCA,@RiA←(A)+((Ri))+CYADDCA,#dataA←(A)+(data)+CY3.带借位减法指令:

SUBBA,RnA←(A)-CY-(Rn)SUBBA,directA←(A)-CY-(direct)SUBBA,@RiA←(A)-CY-((Ri))SUBBA,#dataA←(A)-CY-#data二.乘法除法指令:

1.乘法指令:

MULABBA←(A)×

(B)高字节放在B中,低字节放在A中2.除法指令:

DIVABA←(A)÷

(B)的商,(B)←(A)÷

(B)的余数三.加1减1指令:

1.加1指令:

INCAA←(A)+1INCRnRn←(Rn)+1

INCdirectdirect←(direct)+1INC@Ri(Ri)←((Ri))+1INCDPTRDPTR←(DPTR)+12.减1指令:

DECADECRnDECdirectDEC@Ri四.十进制调制指令:

DAA调整累加器A的内容为BCD码

逻辑操作指令:

一.逻辑与、或、异或指令:

1.逻辑与指令:

ANLA,RnANLA,directANLA,@RiANLA,#data2.逻辑或这令:

ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data3.逻辑异或指令:

XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data二.清零、取反指令:

1.累加器A清零指令:

CRLA2.累加器A取反指令:

CPLA

三.循环位移指令:

1.累加器A循环左移指令:

RLA2.累加器A循环右移指令:

RRA3.累加器A连同进位位循环左移指令:

RLCA4.累加器A连同进位位循环右移指令:

RRCA控制转移指令:

一.无条件转移指令:

1.绝对转移指令:

AJMPaddr11(先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)

2.长转移指令:

LJMPaddr16(用addr16的值替换PC的值)3.相对转移(短转移)指令:

SJMPrel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:

JMP@A+DPTR(A)+(DPTR)→(PC)

二.条件转移指令:

1.累加器判零转移指令:

JZrel先PC+2;

后判断,A为0时转移,PC+rel赋值给PC;

否则顺序执行

JNZrel先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;

否则顺序执

行2.比较转移指令:

CJNE目的操作数,源操作数,relCJNEA,direct,rel先PC+3传回PC,再比较目的操作数和原操作数CJNEA,#data,rel目>

源时,程序转移,PC+rel传回PC且CY=0CJNERn,#data,rel目=源时,程序顺序执行CJNE@Ri,#data,rel目ORLC,bitORLC,bit

三.位清零、置一、取反指令:

1.位清零指令:

CLRCCLRbit2.位置一指令:

SETBCSTEBbi3.位取反指令:

CPLCCPLbit

这类指令的功能执行的结果不影响标志位,当直接寻址位地址为端口P0~P3中的某一位时,具有“读-改-写”的功能。

四.位条件转移指令:

1.位累加器C判断转移指令

JCrel先pc+2后判断,(C)=1时,则PC+rel赋值给PC,反之顺序执行JNCrel先pc+2后判断,(C)=0时,则PC+rel赋值给PC,反之顺序执行2.判位变量转移指令:

JBbit,rel先PC+3,判断,若(bit)=1,PC+rel赋值给PC,反之顺序

往下执行

JNBbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,反之顺

序往下执行

3.判位变量转移指令:

JBCbit,rel先PC+3,判断,若(bit)=0,PC+rel赋值给PC,且bit

←0,反之顺序往下执行

扩展阅读:

单片机指令功能一览表助记符代码说明

MOVA,RnE8~EF寄存器A

MOVA,directE5dircet直接字节送AMOVA,@RiER~E7间接RAM送AMOVA,#data74data立即数送AMOVRn,AF8~FFA送寄存器

MOVRn,dircetA8~AFdircet直接字节送寄存器MOVRn,#data78~7Fdata立即数送寄存器MOVdircet,AF5dircetA送直接字节

MOVdircet,Rn88~8Fdircet寄存器送直接字节

MOVdircet1,dircet285dircet1dircet2直接字节送直接字节MOVdircet,@Ro86~87间接RAM送直接字节MOVdircet,#data75dircetdata立即数送直接字节MOV@Ri,AF6~F7A送间接RAM

MOV@Ri,#data76~77data直接字节送间接RAMMOV@Ri,#data76~77data立即数送间接RAMMOVDPTR,#data1690data15~816位常数送数据指针data7~0

MOVCA,@A+DPTR93由((A)+(DPTR))寻址的程序存贮器字节选A

MOVCA,@A+PC83由((A)+(PC));

寻址的程序存贮器字节送AMOVXA,@RiE2~E3送外部数据(8位地址)送AMOVXA,@DPTRE0送外部数据(16位地址)送AMOVX@Ri,AF2~F3A送外部数据(8位地址)MOVX@DPTR,AF0A送外部数据(16位地址)PUSHdircetC0dircet直接字节进栈,SP加1POPdircetD0dircet直接字节退栈,SP减1XCHA,RnC8~CF交换A和寄存器XCHA,dircetC5dircet交换A和直接字节XCHA,@RiC6~C7交换A和间接RAMXCHA,@RiD6~D7交换A和间接RAM的低位SWAPAC

算术操作(A的二个半字节交换)ADDA,Rn28~2F寄存器加到AADDA,dircet25dircet直接字节加到AADDA,@Ri26~27间接RAM加到AADDA,#data24data立即数加到AADDA,Rn38~3F寄存器和进位位加到AADDA,dircet35dircet直接字节和进位位加到AADDA,@Ri36~37间接字节和进位位加到AADDA,data34data立即数和进位位加到AADDA,Rn98~9FA减去寄存器和进位位ADDA,dircet95dircetA减去直接字节和进位位ADDA,@Ri36~37间接RAM和进位位加到AADDA,data34data立即数和进位位加到ASUBBA,Rn98~9FA减去寄存器和进位位SUBBA,dircet95dircetA减去直接字节和进位位SUBBA,@Ri96~97A减去间接RAM和进位位SUBBA,#data94dataA减去立即数和进位位INCA04A加1

INCRn08~0F寄存器加1INCdircet05dircet直接字节加1INC@Ri06~07间接RAM加1DECA14A减1

DECRn18~1F寄存器减1DECdircet15dircet直接字节减1DEC@Ri16~17间接RAM减1INCDPTRA3数据指针加1MULABA4A乘以BDIVAB84A除以B

DAAD4A的十进制加法调整逻辑操作

ANLA,Rn58~5F寄存器“与”到AANLA,dircet55dircet直接字节“与”到AANLA,@Ri56~57间接RAm“与”到AANLA,#data54data立即数“与”到AANLdircetA52dircetA“与”到直接字节

ANLdircet,#data53dircetdata立即数“与”到直接字节ORLA,Rn48~4F寄存器“或”到AORLA,dircet45dircet直接字节“或”到AORLA,@Ri46~47间接RAM“或”到AORLA,#data44data立即数“或”到AORLdircet,A42dircetA“或”到直接字节

ORLdircet,#data43dircetdata立即数“或”到直接字节XRLA,Rn68~6F寄存器“异或”到AXRLA,dircet65dircet直接字节“异或”到AXRLA,@Ri66~67间接RAM“异或”到AXRLA,#data64data立即数“异或”到AXRLdircetA62dircetA“异或”到直接字节

XRLdircet,#data63dircetdata立即数“异或”到直接字节CLRAE4清零CPLAF4A取反RLA23A左环移

RLCA33A通过进位左环移RRA03A右环移

RRCA13A通过进位右环移

控制程序转移

ACALLaddr11*1addr(a7~a0)绝对子程序调用LCALLaddr1612addr(15~8)长子程序调用addr(7~0)

RET22子程序调用返回RETIaddr1132中断调用返回

AJMPaddr11△1addr(a7~a6)绝对转移LJMPaddr1602addr(15~8)长转移addr(7~0)

SJMPrel80rel短转移,相对转移

JMP@A+DPTR73相对于DPTR间接转移JZrel60relA为零转移JNZrel70relA为零转移

CJNEA,dircet,relB5dircetrel直接字节与A比较,不等则转移CJNEA,#data,relB4datarel立即数与A比较,不等则转移

CJNEA,Rn,#data,relB8~BFdatarel立即数与寄存器比较,不等则转移CJNE@Ri,#data,relB6~B7datarel立即数与间接RAM比较,不等则转移DJNZRn,relD8~DFrel寄存器减1,不为零则转移DJNZdircet,relB5dircetrel直接字节减1,不为零则转移NOP00空操作*=a10a9a8l△=a10a9a80

布尔变量操作CLRCC3清零进位CLRbitC2清零直接位SETBCD3置位进位SETBbitD2置位直接位CPLCB3进位取反CPLbitB2直接位取反

ANLC,bit82dit直接数“与”到进位ANLC,/bitB0直接位的反“与”到进位ORLC,bit72bit直接位“或”到进位ORLC,/bitA0bit直接位的反“或”到进位MOVC,bitA2bit直接位送进位MOVbit,C92bit进位送直接位JCrel40rel进位位为1转移JNCrel50rel进位位为0转移JBbit,rel20bitrel直接位为1相对转移JNBbit,rel30bitrel直接位为0相对转移

JBCbit,rel10bitrel直接位为1相对转移,然后清零该位

[1].循环移位指令(4条)RLA;

累加器A中的内容左移一位RRA;

累加器A中的内容右移一位

RLCA;

累加器A中的内容连同进位位CY左移一位RRCA;

累加器A中的内容连同进位位CY右移一位

[2].累加器半字节交换指令(1条)SWAPA;

累加器中的内容高低半字节互换

[3].求反指令(1条)

CPLA;

累加器中的内容按位取反

[4].清零指令(1条)

CLRA;

0→(A),累加器中的内容清0

[5].逻辑与操作指令(6条)

ANLA,data;

累加器A中的内容和直接地址单元中的内容执行与逻辑操作。

结果存在寄存器A中。

ANLdata,#data;

直接地址单元中的内容和立即数执行与逻辑操作。

结果存在直接地址单元中。

ANLA,#data;

累加器A的内容和立即数执行与逻辑操作。

结果存在累加器A中。

ANLA,Rn;

累加器A的内容和寄存器Rn中的内容执行与逻辑操作。

ANLdata,A;

直接地址单元中的内容和累加器A的内容执行与逻辑操作。

ANLA,@Ri;

累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。

[6].逻辑或操作指令(6条)

这组指令的作用是将两个单元中的内容执行逻辑或操作。

如果直接地址是I/O地址,则为“读修改写”操作。

ORLA,data;

累加器A中的内容和直接地址单元中的内容执行逻辑或操作。

ORLdata,#data;

直接地址单元中的内容和立即数执行逻辑或操作。

ORLA,#data;

累加器A的内容和立即数执行逻辑或操作。

ORLA,Rn;

累加器A的内容和寄存器Rn中的内容执行逻辑或操作。

ORLdata,A;

直接地址单元中的内容和累加器A的内容执行逻辑或操作。

ORLA,@Ri;

累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。

[7].逻辑异或操作指令(6条)

XRLA,data;

累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。

XRLdata,#data;

直接地址单元中的内容和立即数执行逻辑异或操作。

XRLA,#data;

累加器A的内容和立即数执行逻辑异或操作。

XRLA,Rn;

累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。

XRLdata,A;

直接地址单元中的内容和累加器A的内容执行逻辑异或操作。

XRLA,@Ri;

累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。

结果存在累加器A中

控制转移类指令分析

[1].无条件转移指令(4条)LJMPaddr16;

addr16→(PC),给程序计数器赋予新值(16位地址)AJMPaddr11;

(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变

SJMPrel;

(PC)+2+rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值

JMP@A+DPTR;

(A)+(DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值

[2].条件转移指令(8条)

JZrel;

A=0,(PC)+2+rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行

JNZrel;

A≠0,(PC)+2+rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行

CJNEA,data,rel;

A≠(data),(PC)+3+rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行CJNEA,#data,rel;

A≠#data,(PC)+3+rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

CJNERn,#data,rel;

A≠#data,(PC)+3+rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行CJNE@Ri,#data,rel;

A≠#data,(PC)+3+rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

布尔变量操作指令分析

[1].位传送指令(2条)

MOVC,bit;

bit→CY,某位数据送CYMOVbit,C;

CY→bit,CY数据送某位

[2].位置位复位指令(4条)CLRC;

0→CY,清CYCLRbit;

0→bit,清某一位SETBC;

1→CY,置位CYSETBbit;

1→bit,置位某一位

[3].位运算指令(6条)ANLC,bit;

(CY)∧(bit)→CYANLC,/bit;

(CY)∧()→CYORLC,bit;

(CY)∨(bit)→CYORLC,/bit;

(CY)∧()→CYCPLC;

()→CYCPLbit;

()→bir

[4].位控制转移指令(5)

JCrel;

(CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。

JNCrel;

(CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。

JBbit,rel;

位状态为1转移。

JNBbit,rel;

位状态为0转移。

JBCbit,rel;

位状态为1转移,并使该位清“0”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1