当前位置:首页 > 单片机 > 单片机
[导读]当你编写完一个程序后,通过软件调试,你可以看到程序的指令集,从指令集你就能知道单片机内部是如何工作的,比如数据存取的寄存器与地址,下面是网上找的一篇指令集,讲的蛮好的。一、数据传送类指令(7种助记符)M

当你编写完一个程序后,通过软件调试,你可以看到程序的指令集,从指令集你就能知道单片机内部是如何工作的,比如数据存取的寄存器与地址,下面是网上找的一篇指令集,讲的蛮好的。

一、数据传送类指令(7种助记符)
MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;
MOVC(MoveCode)读取程序存储器数据表格的数据传送;
MOVX (MoveExternalRAM) 对外部RAM的数据传送;
XCH (Exchange) 字节交换;
XCHD (Exchangelow-orderDigit) 低半字节交换;
PUSH (PushontoStack) 入栈;
POP (PopfromStack) 出栈;

二、算术运算类指令(8种助记符)
ADD(Addition)加法;
ADDC(AddwithCarry)带进位加法;
SUBB(SubtractwithBorrow)带借位减法;
DA(DecimalAdjust)十进制调整;
INC(Increment)加1;
DEC(Decrement)减1;
MUL(Multiplication、Multiply)乘法;
DIV(Division、Divide)除法;

三、逻辑运算类指令(10种助记符)
ANL(ANDLogic)逻辑与;
ORL(ORLogic)逻辑或;
XRL(Exclusive-ORLogic)逻辑异或;
CLR(Clear)清零;
CPL(Complement)取反;
RL(Rotateleft)循环左移;
RLC(RotateLeftthroughttheCarryflag)带进位循环左移;
RR(RotateRight)循环右移;
RRC (RotateRightthroughttheCarryflag)带进位循环右移;
SWAP(Swap) 低4位与高4位交换;

四、控制转移类指令(17种助记符)
ACALL(AbsolutesubroutineCall)子程序绝对调用;
LCALL(LongsubroutineCall)子程序长调用;
RET(Returnfromsubroutine)子程序返回;
RETI(ReturnfromInterruption)中断返回;
SJMP(ShortJump)短转移;
AJMP(AbsoluteJump)绝对转移;
LJMP(LongJump)长转移;
CJNE(CompareJumpifNotEqual)比较不相等则转移;
DJNZ(DecrementJumpifNotZero)减1后不为0则转移;
JZ(JumpifZero)结果为0则转移;
JNZ(JumpifNotZero)结果不为0则转移;
JC(JumpiftheCarryflagisset)有进位则转移;
JNC(JumpifNotCarry)无进位则转移;
JB(JumpiftheBitisset)位为1则转移;
JNB(JumpiftheBitisNotset)位为0则转移;
JBC(JumpiftheBitissetandClearthebit)位为1则转移,并清除该位;
NOP(NoOperation) 空操作;

五、位操作指令(1种助记符)
CLR位清零;
SETB(SetBit) 位置1。


8种常用伪指令
1.ORG16位地址;
此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。
2.[标号:]DB字节数据项表;
将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG:DB88H,100,“7”,“C”
3.[标号:]DW双字节数据项表;
定义16位地址表,16地址按低位地址存低位字节,高位地址存高位字节。
例如:TAB:DW1234H,7BH
4.名字EQU表达式或名字=表达式;
用与给一个表达式赋值或给字符串起名字。之后名字可用做程序地址,数据地址或立即数地址使用。名字必须是一字母开头的字母数字串。
例如:COUNT=10或SPACEEQU10H
5.名字DATA直接字节地址;
给8位内部RAM单元起个名字,名字必须是一字母开头的字母数字串。同一单元可起多个名字。
例如:ERRORDATA80H
6.名字XDATA直接字节地址;
给8位外部RAM起个名字,名字规定同DATA伪指令。
例如:IO_PORTXDATA0CF04H
7.名字BIT位指令;
给一可位寻址的位单元起个名字,规定同DATA伪指令。
例如:SWTBIT30H
8.[标号:] END;
指出源程序到此结束,汇编对其后的程序语句不予理睬。源程序只在主程序最后使用一个END。


1.数据传送指令(30条)
MOVA,Rn寄存器送A11E8--EF
MOVA,data直接字节送A21E5
MOVA,@Ri间接RAM送A11E6--E7
MOVA,#data立接数送A2174
MOVRn,AA送寄存器11F8--FF
MOVRn,data直接数送寄存器22A8--AF
MOVRn,#data立即数送寄存器2178--7F
MOVdata,AA送直接字节21F5
MOVdata,Rn寄存器送直接字节2188—8F
MOVdata,data直接字节送直接字节3285
MOVdata,@Ri间接Rn送直接字节2286;87
MOVdata,#data立即数送直接字节3275
MOV@Ri,AA送间接Rn12F6;F7
MOV@Ri,data直接字节送间接Rn11A6;A7
MOV@Ri,#data立即数送间接Rn2276;77
MOVDPTR,#data1616位常数送数据指针3190
MOVC,bit直接位送进位位21A2
MOVbit,C进位位送直接位2292
MOVCA,@A+DPTRA+DPTR寻址程序存贮字节送A3293
MOVCA,@A+PCA+PC寻址程序存贮字节送A1283
MOVXA,@Ri外部数据送A(8位地址)12E2;E3
MOVXA,@DPTR外部数据送A(16位地址)12E0
MOVX@Ri,AA送外部数据(8位地址)12F2;F3
MOVX@DPTR,AA送外部数据(16位地址)12F0
PUSHdata直接字节进栈道,SP加122C0
POPdata直接字节出栈,SP减122D0
XCHA,Rn寄存器与A交换11C8—CF
XCHA,data直接字节与A交换21C5
XCHA,@Ri间接Rn与A交换11C6;C7
XCHDA,@Ri间接Rn与A低半字节交换11D6;D7
2.逻辑运算指令(35条)
ANLA,Rn寄存器与到A1158—5F
ANLA,data直接字节与到A2155
ANLA,@Ri间接RAM与到A1156;57
ANLA,#data立即数与到A2154
ANLdata,AA与到直接字节2152
ANLdata,#data立即数与到直接字节3253
ANLC,bit直接位与到进位位2282
ANLC,/bit直接位的反码与到进位位22B0
ORLA,Rn寄存器或到A1148—4F
ORLA,data直接字节或到A2145
ORLA,@Ri间接RAM或到A1146;47
ORLA,#data立即数或到A2144
ORLdata,AA或到直接字节2142
ORLdata,#data立即数或到直接字节3243
ORLC,bit直接位或到进位位2272
ORLC,/bit直接位的反码或到进位位22A0
XRLA,Rn寄存器异或到A1168—6F
XRLA,data直接字节异或到A2165
XRLA,@Ri间接RAM异或到A1166;67
XRLA,#data立即数异或到A2164
XRLdata,AA异或到直接字节2162
XRLdata,#data立即数异或到直接字节3263
SETBC进位位置111D3
SETBbit直接位置121D2
CLRAA清011E4
CLRC进位位清011C3
CLRbit直接位清021C2
CPLAA求反码11F4
CPLC进位位取反11B3
CPLbit直接位取反21B2
RLAA循环左移一位1123
RLCAA带进位左移一位1133
RRAA右移一位1103
RRCAA带进位右移一位1113
SWAPAA半字节交换11C4
3.算术运算指令(24条)
ADDA,Rn寄存器加到A1128—2F
ADDA,data直接字节加到A2125
ADDA,@Ri间接RAM加到A1126;27
ADDA,#data立即数加到A2124
ADDCA,Rn寄存器带进位加到A1138—3F
ADDCA,data直接字节带进位加到A2135
ADDCA,@Ri间接RAM带进位加到A1136;37
ADDCA,#data立即数带进位加到A2134
SUBBA,Rn从A中减去寄存器和进位1198—9F
SUBBA,data从A中减去直接字节和进位2195
SUBBA,@Ri从A中减去间接RAM和进位1196;97
SUBBA,#data从A中减去立即数和进位2194
INCAA加11104
INCRn寄存器加11108—0F
INCdata直接字节加12105
INC@Ri间接RAM加11106;07
INCDPTR数据指针加112A3
DECAA减11114
DECRn寄存器减11118—1F
DECdata直接字节减12115
DEC@Ri间接RAM减11116;17
MULABA乘B14A4
DIVABA被B除1484
DAAA十进制调整11D4
4.转移指令(22条)
AJMPaddr11绝对转移22*1
LJMPaddr16长转移3202
SJMPrel短转移2280
JMP@A+DPTR相对于DPTR间接转移1273
JZrel若A=0则转移2260
JNZrel若A≠0则转移2270
JCrel若C=1则转移2240
JNCrel若C≠1则转移2250
JBbit,rel若直接位=1则转移3220
JNBbit,rel若直接位=0则转移3230
JBCbit,rel若直接位=1则转移且清除3210
CJNEA,data,rel直接数与A比较,不等转移32B5
CJNEA,#data,rel立即数与A比较,不等转移32B4
CJNE@Ri,#data,rel立即数与间接RAM比较,不等转移32B6;B7
CJNERn,#data,rel立即数与寄存器比较不等转移32B8—BF
DJNZRn,rel寄存器减1不为0转移22D8—DF
DJNZdata,rel直接字节减1不为0转移32D5
ACALLaddr11绝对子程序调用22*1
LCALLaddr16子程序调用3212
RET子程序调用返回1222
RETI中断程序调用返回1232
NOP空操作1100

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭