收藏 分销(赏)

MCS-51 汇编指令集.doc

上传人:pc****0 文档编号:7443553 上传时间:2025-01-04 格式:DOC 页数:5 大小:189.50KB 下载积分:10 金币
下载 相关 举报
MCS-51 汇编指令集.doc_第1页
第1页 / 共5页
MCS-51 汇编指令集.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
8种常用伪指令 1.ORG   16位地址 ;此指令用在原程序或数据块的开始,指明此语句后面目标程序或数据块存放的起始地址。 2.[标号:] DB   字节数据项表             ;将项表中的字节数据存放到从标号开始的连续字节单元中。例如:SEG: DB 88H,100,“7”,“C” 3.[标号:]DW   双字节数据项表            ;定义16位地址表,16地址按低位地址存低位字                                                                                  节,高位地址存高位字节。                                                                                   例如:TAB: DW  1234H,7BH 4.名字 EQU 表达式  或名字=表达式         ;用与给一个表达式赋值或给字符串起名字。之                                                                                                 后名字可用做程序地址,数据地址或立即数地址                                                                                      使用。名字必须是一字母开头的字母数字串。                                                                                 例如:COUNT=10 或 SPACE  EQU  10H 5.名字 DATA 直接字节地址                 ;给8位内部RAM单元起个名字,名字必须是一                                                                                    字母开头的字母数字串。同一单元可起多个名字。                                                                                 例如:ERROR  DATA  80H 6.名字 XDATA 直接字节地址                 ;给8位外部RAM起个名字,名字规定同DATA                                                                                   伪指令。例如:IO_PORT  XDATA  0CF04H 7.名字 BIT 位指令                        ;给一可位寻址的位单元起个名字,规定同DATA                                                                                    伪指令。例如:SWT BIT 30H 8.[标号:] END            ;指出源程序到此结束,汇编对其后的程序语句不                                                            予理睬.源程序只在主程序最后使用一个END 定义指令符号 符号 说明 Rn 目前所选定的寄存器组中的R0-R7寄存器 Ri 当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1) Direct 8位直接寻址地址,可以是内存RAM地址(00H--7FH)或SFR(80H--FFH) @Ri 通过R0或R1做间接寻址内部RAM的地址(00H--FFH)的前缀 #data 8位立即数 #data16 16位立即数,只有DPTR中才用到 Addr 16 只用在LCALL(长指令调用,三字节)和LJMP(无条件长转移指令)指令中的16位目的地地址,可寻址64K存储器中的任何地址 Addr 11 使用在ACALL(绝对调用指令,双字节)和AJMP(无条件绝对转移指令)指令中的11位目的地地址,可寻址下一个指令算起2K内的任何地址,即目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间 DPTR 数据指针 rel 有符号的8位偏移地址(Offset Address),其范围是从下一个指令算起的-128到+128字节中。负值表示地址向前推算,正值表示地址向后推算。使用在SJMP和所有条件式跳转指令中 bit 可直接位寻址的内部数据RAM(20H--2FH),其中地址范围为(00H--7FH)或特殊功能积存器(80H--FFH) A 累加器 B 累加器,用于乘法和除法 (X) 某地址单元X中的内容 ((X)) 某地址单元X内存放一地址信息,此命令为寻址地址信息所指地址中存放的数据   MCS51汇编指令  指令格式(助记符) 指令功能说明 字节 周期 MOV  A,direct (direct)→(A) 直接单元地址中的数据→累加器A 1 1 MOV  A,#data  #data→(A)  8位立即数→累加器A 2 1 MOV  A,Rn (Rn )→(A) Rn寄存器中的数据→累加器A 1 1 MOV  A,@Ri ((Ri))→(A) Ri中的数据指向的地址单元中的数据 →累加器A 1 1 MOV  Rn,direct (direct)→(Rn) 直接寻址单元中的数据 —> 寄存器Rn 2 2 MOV  Rn,#data  #data→(Rn) 8位立即数 —> 寄存器Rn 2 1 MOV  Rn,A  (A)→(Rn) 累加器A中的数据 —> 寄存器Rn 1 1 MOV direct,direct (direct)→(direct) 直接地址单元中的数据→直接地址单元direct 3 2 MOV direct,#data #data→(direct) 立即数→直接地址单元direct 3 2 MOV direct,A (A)→(direct) 累加器A中的数据→直接地址单元direct 2 2 MOV direct,Rn (Rn)→(direct) 寄存器Rn中的数据→直接地址单元direct 2 2 MOV direct,@Ri ((Ri))→(direct) 寄存器Ri中的数据指定的地址单元中数据→直接地址单元direct 2 2 MOV  @Ri,direct (direct)→((Ri)) 直接地址单元中的数据→以Ri中的内容为地址的RAM单元 2 2 MOV  @Ri,#data #data→((Ri)) 立即数→以Ri中的内容为地址的RAM单元 2 1 MOV  @Ri,A (A)→((Ri)) 累加器A中的数据→以Ri中的内容为地址的RAM单元 1 1 MOVC A,@A+DPTR ((A))+(DPTR)→(A) 表格地址单元中的数据→累加器A 3 2 MOVC  A,@A+PC ((PC))+1→(A),((A))+(PC)→(A) 表格地址单元中的数据→累加器A 1 2 MOVX  @DPTR,A (A)→((DPTR)) 累加器中的数据→数据指针指向片外RAM地址中 3 2 MOVX  A, @DPTR (A)→((DPTR)) 累加器中的数据 → 数据指针指向片外RAM地址中 3 2 MOVX  A, @Ri ((Ri))→(A) 寄存器Ri指向片外RAM地址中的数据→累加器A中 1 2 MOVX  @Ri,A (A)→((Ri)) 累加器中的数据→寄存器Ri指向片外RAM地址中 1 2 PUSH  direct (SP)+1→(SP),(direct)→(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中 2 2 PUSH  Acc 将累加器A中的数据→堆栈顶端 2 2 POP  direct (SP)→(direct)(SP)-1→(SP), 堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作 2 2 POP A 将堆栈顶端的数据→累加器A 2 2 XCH  A,Rn (A)←→(Rn)累加器与工作寄存器Rn中的数据互换 1 1 XCH  A,@Ri (A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的数据互换 1 1 XCH  A, direct (A)←→(direct)累加器与直接地址单元中的内容互换 2 2 XCHD  A,@Ri (A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的数据低半字节互换 1 1 SWAP  A (A3-0)←→(A7-4)累加器中的内容高低半字节互换 1 1 MOV DPTR,#data16 #dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL 3 2 ADD  A,#data A)+#data→(A) 累加器A中的数据与立即数#data相加,结果存在A中 2 1 ADD  A,direct A)+(direct)→(A) 累加器A中的数据与直接地址单元中的数据相加,结果存在A中 2 1 指令格式(助记符) 指令功能说明 字节 周期 ADD  A,Rn (A)+(Rn)→(A) 累加器A中的数据与工作寄存器Rn中的数据相加,结果存在A中 1 1 ADD  A,@Ri (A)+((Ri))→(A) 累加器A中的数据与工作寄存器Ri所指向地址单元中的数据相加,结果存在A中 1 1 ADDC  A,direct (A)+(direct)+(C)→(A) 累加器A中的数据与直接地址单元的数据连同进位位相加,结果存在A中 2 1 ADDC  A,#data (A)+#data +(C)→(A) 累加器A中的数据与立即数连同进位位相加,结果存在A中 2 1 ADDC  A,Rn A)+Rn+(C)→(A) 累加器A中的数据与工作寄存器Rn中的数据、连同进位位相加,结果存在A中 1 1 ADDC  A,@Ri (A)+((Ri))+(C)→(A) 累加器A中的数据与工作寄存器Ri指向地址单元中的数据、连同进位位相加,结果存在A中 1 1 SUBB  A,direct (A)-(direct)-(C)→(A) 累加器A中的数据与直接地址单元中的数据、连同借位位相减,结果存在A中 2 1 SUBB  A,#data (A)-(Rn)-(C)→(A) 累加器A中的数据与工作寄存器中的数据、连同借位位相减,结果存在A中 2 1 SUBB  A,Rn (A)-(Rn)-(C)→(A) 累加器A中的数据与工作寄存器中的数据、连同借位位相减,结果存在A中 1 1 SUBB  A,@Ri (A)-((Ri))-(C)→(A) 累加器A中的数据与工作寄存器Ri指向的地址单元中的数据、连同借位位相减,结果存在A中 1 1 MUL  AB (A)×(B)→(A)和(B) 累加器A中的数据乘以寄存器B中的数据,结果高字节存入寄存器B,底字节存入累加器A 1 4  DIV  AB (A)÷(B)→(A)和(B) 累加器A中的数据除以寄存器B中的数据,结果的商存入累加器A,余数存入寄存器B中 1 4 INC  A +1¡ú(A) 累加器A中的数据加1,结果存在A中 1 1 INC  direct (direct)+1→(direct) 直接地址单元中的数据加1,结果送回原地址单元中,如果直接地址是I/O,其功能是先读入I/O锁存器的内容,然后在CPU进行加1操作,再输出到I/O上,这就是“读—修改—写”操作 2 1 INC  @Ri ((Ri))+1→((Ri)) 寄存器的数据指向的地址单元中的数据加1,结果送回原地址单元中 1 1 NC  Rn  Rn)+1→(Rn)寄存器Rn的数据加1,结果送回原地址单元 1 1 INC  DPTR (DPTR)+1→(DPTR)数据指针的数据加1,结果送回数据指针中 1 2 DEC  A (A)-1→(A)累加器A中的数据减1,结果送回累加器A 1 1 DEC  direct (direct)-1→(direct)直接地址单元中的数据减1,结果送回直接地址单元中 2 1 DEC  @Ri ((Ri))-1→((Ri))寄存器Ri指向的地址单元中的数据减1,结果送回原地址单元中 1 1 DEC  Rn (Rn)-1→(Rn)寄存器Rn中的数据减1,结果送回寄存器Rn中 1 1 DA  A 累加器A中的数据做BCD调整 1 1 RL  A 累加器A中的数据左移一位,bit7¡úbit0 1 1 RR  A 累加器A中的数据右移一位,bit7¡úbit7 1 1 RLC  A 累加器A中的数据连同进位标志位CY左移一位,bit7¡úCY,CY¡úbit0 1 1 RRC  A 累加器A中的数据连同进位CY位CY右移一位,bi0¡úCY,CY¡úbit7 1 1 SWAP  A  累加器中的数据高低半字节互换 1 1 CPL  A 累加器中的数据按位取反,即0¡ú1,1¡ú0 1 1 CLR  A 0¡ú(A),累加器中的数据清0H 1 1 ANL  A,direct 累加器A中的数据和直接地址单元中的数据执行与操作。结果存在寄存器A中 2 1 ANL  direct,#data 直接地址单元中的数据和立即数执行与操作。结果存在直接地址单元中 3 2 指令格式(助记符) 指令功能说明 字节 周期 NL  A,#data 累加器A的数据和立即数执行与操作。结果存在累加器A中 2 1 NL  A,Rn 累加器A的数据和寄存器Rn中的数据执行与操作。结果存在累加器A中 1 1 ANL  direct,A 直接地址单元中的数据和累加器A的数据执行与操作。结果存在直接地址单元中 2 1 ANL  A,@Ri 累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行与操作。结果存在累加器A中 1 1 ORL  A,direct 累加器A中的数据和直接地址单元中的数据执行逻辑或操作。结果存在寄存器A中 2 1 ORL  direct,#data 累加器A中的数据和直接地址单元中的数据执行逻辑或操作。结果存在寄存器A中 3 2 ORL  A,#data 累加器A的数据和立即数执行逻辑或操作。结果存在累加器 2 1 ORL  A,Rn 累加器A的数据和寄存器Rn中的数据执行逻辑或操作。结果存在累加器A中 1 1 ORL  direct,A 直接地址单元中的数据和累加器A的数据执行逻辑或操作。结果存在直接地址单元中 2 1 ORL  A,@Ri 累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行逻辑或操作。结果存在累加器A中 1 1 XRL  A,direct 累加器A中的数据和直接地址单元中的数据执行逻辑异或操作。结果存在寄存器A中 2 1 XRL  direct,#data 直接地址单元中的数据和立即数执行逻辑异或操作。结果存在直接地址单元中 3 2 XRL  A,#data 累加器A的数据和立即数执行逻辑异或操作。结果存在累加器A中 2 1 XRL  A,Rn 累加器A的数据和寄存器Rn中的数据执行逻辑异或操作。结果存在累加器A中 1 1 XRL  data,A 直接地址单元中的数据和累加器A的数据执行逻辑异或操作。结果存在直接地址单元中 2 1 XRL  A,@Ri 累加器A的数据和工作寄存器Ri指向的地址单元中的数据执行逻辑异或操作。结果存在累加器A中 1 1 CLR C 清除进位标志CY为0 1 1 CLR bit 清除bit为0 2 1 SETB C 设定进位标志CY为1 1 1 SETB bit 设定bit为1 2 1 CPL C 将进位标志CY反相 1 1 CPL bit 将bit反相 2 1 ANL C,bit 将进位标志CY AND bit值¡ú进位标志位CY 2 2 ANL C,/bit 将进位标志CY AND bit反相值¡ú进位标志位CY 2 2 ANL A,#data 将累加器A的各位与立即数的相对位置做AND¡úA累加器 2 2 ORL C,bit 将进位标志CY OR bit值¡ú进位标志位CY 2 2 ORL C,/bit 将进位标志CY OR bit反相值¡ú进位标志位CY 2 2 ORL A,#data 将累加器A的各位与立即数的相对位置做OR¡úA累加器 2 2 MOV C,bit 将bit值¡ú进位标志位CY 2 1 MOV bit,C 将进位标志位CY¡úbit值 2 2 JC rel 当进位标志位CY=1就跳至rel,否则执行下一条指令 2 2 JNC rel 当进位标志位CY=0就跳至rel,否则执行下一条指令 2 2 JB bit rel 当进bit=1就跳至rel,否则执行下一条指令 3 3 JNB bit rel 当进bit=0就跳至rel,否则执行下一条指令 3 3 JBC bit rel 当进bit=1跳至rel,并且清除此bit为0,否则执行下一条指令 3 3 ACALL addr11 2K范围内子程序调用 2 2 LCALL addr16 64K范围内子程序调用 3 3 RET 子程序返回 1 2 RET1 中断服务程序结束返回 1 2 指令格式(助记符) 指令功能说明 字节 周期 AJMP addr11 2K范围内无条件跳转 2 2 LJMP addr16 64K范围内无条件跳转 2 2 SJMP rel 在此指令的前128或后128范围内无条件跳转 2 2 JMP @A+DPTR 跳至@A+DPTR所指定的地址 1 2 JZ rel 如A的内容为0,则短跳转,负责执行下一条指令 2 2 JNZ rel 如A的内容不为0,则短跳转,负责执行下一条指令 2 2 CJNE A,direct,rel 如A的内容与直接地址内的数据不同,则短跳转 3 2 CJNE A,#data,rel 如A的内容与立即数不同,则短跳转 3 2 CJNE Rn,#data,rel 如Rn寄存器中的数据与立即数不同,则短跳转 3 2 CJNE @Ri,#data,rel 如间接地址的数据与立即数不同,则短跳转 3 2 DJNZ Rn,rel Rn寄存器中的数据减1,若不为0,则短跳转,否则执行下条指令 2 2 DJNZ direct,rel 直接地址中的数据减1,若不为0,则短跳转,负责执行下条指令 3 2 NOP CPU仅仅作取指令,不动作 1 1
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服