8051指令资源对照表

合集下载

附录1 8051的指令列表_51单片机应用开发范例大全_[共4页]

附录1 8051的指令列表_51单片机应用开发范例大全_[共4页]

附录1 8051的指令列表
为了便于查阅,现把8051的指令列表整理如下:


指令格式功能简述字节数周期
数据传送类指令MOV A,Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A,@Ri 内部RAM单元送累加器 1 1 MOV @Ri,A 累加器送内部RAM单元 1 1 MOV A,#data 立即数送累加器 2 1 MOV A,direct 直接寻址单元送累加器 2 1 MOV direct,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1 MOV direct,#data 立即数送直接寻址单元 3 2 MOV @Ri,#data 立即数送内部RAM单元 2 1 MOV direct,Rn 寄存器送直接寻址单元 2 2 MOV Rn,direct 直接寻址单元送寄存器 2 2 MOV direct,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR,#data16 16位立即数送数据指针 3 2 MOVX A,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A,@A+PC 查表数据送累加器(PC为基址) 1 2。

8051指令集

8051指令集

8051指令集資料轉移指令MOV 移動MOVC 程式記憶體移動MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令PUSH 放入堆疊POP 由堆疊取回XCH 8位元交換XCHD 低4位元交換SWAP 高低4位元交換算術指令ADD 兩數相加ADDC 兩數相加再加CSUBB 兩數相減再減CINC 加一指令DEC 減一指令MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存BDIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存BDA (DA A 只此一条指令)調整為十進數邏輯指令ANL做AND(逻辑与)運算ORL做OR(逻辑或)運算XRL 做(逻辑异或)運算CLR 清除為0CPL 取反指令RL 不带进位左环移RLC 带进位左环移RR 不带进位右环移RRC 带进位右环移控制转移类指令JC C=1時跳JNC C=0時跳JB 位元=1時跳JNB 位元=0時跳JBC 位元=1時跳且清除此位元LCALL 长调用子程序ACALL 绝对调用子程序RET 由副程式返回RETI 由中斷副程式返回AJMP 绝对转移SJMP 相对转移JMP @A+DPTR 散转,相对DPTR的间接转移JZ A=0時跳JNZA 0時跳CJNE 二數比較,不相等時跳DJNZ 減一,不等於0時跳NOP 空操作位变量指令SETB 設定為1ORG 程序开始,规定程序的起始地址END 程序结束EQU 等值指令(先赋值后使用)例:SUM EQU 30H DB 定义字节指令DW 定义字内容DS 定义保留一定的存贮单元数目BIT 位地址符号指令例:SAM BIT P1.0RET 子程序返回指令RETI 中断子程序返回指令$ 本条指令地址算术运算指令指令说明周期ADD A,Rn A←A+Rn 12ADD A,direct A←A+direct 12ADD A,@Ri A←A+Ri 12ADD A,#data A←A+data 12ADDC A,Rn A←A+Rn+C 12ADDC A,direct A←A+direct+C 12ADDC A,@Ri A←A+Ri+C 12ADDC A,#data A←A+data+C 12SUBB A,Rn A←A-Rn-C 12SUBB A,direct A←A-direct-C 12SUBB A,@Ri A←A-Ri-C 12SUBB A,#data A←A-data-C 12INC A A←A+1 12INC Rn Rn←Rn+1 12INC direct direct←direct+1 12INC @Ri @Ri←@Ri+1 12INC DPTR DPTR←DPTR+1 12DEC A A←A-1 12DEC Rn Rn←Rn-1 12DEC direct direct←direct-1 12DEC @Ri @Ri←@Ri-1 12MUL AB 两个无符号的8位数据相乘,其中高阶8位放入B缓存器,低阶8位则放入累积器ACC 24DIV AB 两个无符号的8位数据相除,把ACC值除以B缓存器值,商数放回ACC,余数放在B 48 DA A 累加器作十进制调整 48逻辑运算指令指令说明周期ANL A,Rn A←A and Rn 12ANL A,direct A←A and direct 12ANL A,@Ri A←A and Ri 12ANL A,#data A←A and data 12ANL direct,A direct←direct and A 12ANL direct,#data direct←direct and data 24ORL A,Rn A←A or Rn 12ORL A,direct A←A or direct 12ORL A,Rn A←A or Rn 12ORL A,@Ri A←A or Ri 12ORL A,#data A←A or data 12ORL direct,A direct←direct or A 12ORL direct,#data direct←direct or data 24XRL A,Rn A←A xor Rn 12XRL A,direct A←A xor direct 12XRL A,@Ri A←A xor Ri 12XRL A,#data A←A xor data 12XRL direct,A direct←direct xor A 12XRL direct,#data direct←direct xor data 12CLR A 清除累加器 12CPL A 累加器反相 12RL A 累加器向左旋转 12RLC A 累加器和C左旋 12RR A 累加器向右旋转 12RRC A 累加器和C右旋 12SWAP A 累加器的高低四位互换 12数据转移指令指令说明周期MOV A,Rn A←Rn 12MOV A,direct A←direct 12MOV A,@Ri A←Ri 12MOV A,#data A←data 12MOV Rn,A Rn←A 12MOV Rn,direct Rn←direct 24MOV Rn,#data Rn←data 12MOV direct,A direct←A 12MOV direct,Rn direct←Rn 24MOV direct,direct direct←direct 24MOV direct,@Ri direct←Ri 24MOV direct,#data direct←data 24MOV @Ri,A Ri←A 12MOV @Ri,direct Ri←direct 24MOV @Ri,#data Ri←data 12MOV DPTR,#data 16 Ri←16bit data 24MOVC A,@A+DPTR A←程序内存的数据 24MOVC A,@A+PC A←程序内存的数据 24MOVX A,@Ri A←外部RAM的数据(8bit地址) 24 MOVX A,@DPTR A←外部RAM的数据(16bit地址) 24 MOVX @Ri,A 外部的RAM(8bit)←A 24MOVX @DPTR,A 外部的RAM(16bit)←A 24PUSH direc 推迭区←direct 24POP direc direct←堆栈区 24XCH A,Rn A和Rn互换 12XCH A,direct A和direct互换 12XCH A,@Ri A和Ri互换 12XCHD A,@Ri A和Ri的低四位互换 12位运算指令指令说明周期CLR C 清除进位旗标 12CLR bit 清除直接位 12SETB C 设定进位旗标 12SETB bit 设定直接位 12CPL C 进位旗标反相 12CPL bit 直接位反相 12ANL C,bit C←C and bit 24ANL C,/bit C←C and bit(反相) 24ORL C,bit C←C or bit 24ORL C,/bit C←C or bit(反相) 24MOV C,bit C←bit 12MOV bit,C bit←C 24JC rel 若C=1跳至rel 24JNC rel 若C=0跳至rel 24JB bit,rel 若bit=1跳至rel 24JNB bit,rel 若bit=0跳至rel 24JBC bit,rel 若bit=1跳至rel,且清除此位 24程序跳跃指令指令说明周期ACALL addr11 绝对式子程序呼叫 24LCALL addr16 远程子程序呼叫 24RET 从子程序返回 24RETI 从中断子程序返回 24AJMP addr11 绝对式跳跃 24LJMP addr16 远程跳跃 24SJMP rel 短程跳跃 24JMP @A+DPTR 间接跳跃 24JZ rel 若A=0跳至rel 24JNZ rel 若A不等于0跳至rel 24CJNE A,direct,rel 若A不等于direct跳至rel 24CJNE A,#data,rel 若A不等于data跳至rel 24CJNE Rn,#data,rel 若Rn不等于data跳至rel 24CJNE @Ri,#data,rel 若Ri不等于data跳至rel 24DJNZ Rn,rel Rn减1不等于0跳至rel 24DJNZ direct,rel direct减1不等于0跳至rel 24NOP 没动作 12缩写符号说明缩写符号说明备注Rn 缓存器R0-R7direct 8bit内部数据存储器,包括1.内部数据存储器(00-7F)的地址2.特殊功能缓存器(80-FF)的地址,如P0,PSW,TMOD..等@Ri 由缓存器R0或R1所寻址的内部RAM数据#data 8bit常数#data 16 16bit常数addr 16 16bit的目的地址,可使跳跃指令跳跃64kaddr 11 11bit的目的地址,可使跳跃指令跳跃2krel 具正负号的8位地址偏移量,用于相对地址的跳跃bit 1个bit:只所有可以位寻址的位。

8051单片机指令大全

8051单片机指令大全

1 MOV A,Rn 寄存器内容送入累加器2 MOV A,direct 直接地址单元中的数据送入累加器3 MOV A,@Ri 间接RAM 中的数据送入累加器4 MOV A,#tata 立即数送入累加器5 MOV Rn,A 累加器内容送入寄存器6 MOV Rn,direct 直接地址单元中的数据送入寄存器7 MOV Rn,#data 立即数送入寄存器8 MOV direct,A 累加器内容送入直接地址单元9 MOV direct,Rn 寄存器内容送入直接地址单元10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元12 MOV direct,#data 立即数送入直接地址单元13 MOV @Ri,A 累加器内容送间接RAM 单元14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元15 MOV @RI,#data 立即数送入间接RAM 单元16 MOV DRTR,#dat16 16 位立即数送入地址寄存器17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器21 MOVX @Ri,A 累计器送外部RAM(8 位地址)22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)23 PUSH direct 直接地址单元中的数据压入堆栈24 POP direct 弹栈送直接地址单元25 XCH A,Rn 寄存器与累加器交换26 XCH A,direct 直接地址单元与累加器交换27 XCH A,@Ri 间接RAM 与累加器交换28 XCHD A,@Ri 间接RAM 的低半字节与累加器低半字节交换算术操作类指令:1 ADD A,Rn 寄存器内容加到累加器2 ADD A,direct 直接地址单元的内容加到累加器3 ADD A,@Ri 间接ROM 的内容加到累加器4 ADD A,#data 立即数加到累加器5 ADDC A,Rn 寄存器内容带进位加到累加器6 ADDC A,direct 直接地址单元的内容带进位加到累加器7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器8 ADDC A,#data 立即数带进位加到累加器9 SUBB A,Rn 累加器带借位减寄存器内容10 SUBB A,direct 累加器带借位减直接地址单元的内容11 SUBB A,@Ri 累加器带借位减间接RAM 中的内容12 SUBB A,#data 累加器带借位减立即数13 INC A 累加器加114 INC Rn 寄存器加115 INC direct 直接地址单元加116 INC @Ri 间接RAM 单元加117 DEC A 累加器减118 DEC Rn 寄存器减119 DEC direct 直接地址单元减120 DEC @Rj 间接RAM 单元减121 INC DPTR 地址寄存器DPTR 加122 MUL AB A 乘以B 两个八位无符号数相乘结果高八位放在B 低八位放在A23 DIV AB A 除以B,结果整数部分放在A 余数放在B24 DA A 累加器十进制调整实现BCD运算执行仅对进位位产生影响布尔变量操作类指令:1 CLR C 清进位位2 CLR bit 清直接地址位3 SETB C 置进位位4 SETB bit 置直接地址位5 CPL C 进位位求反6 CPL bit 置直接地址位求反7 ANL C,bit 进位位和直接地址位相“与”8 ANL C,/bit 进位位和直接地址位的反码相“与”9 ORL C,bit 进位位和直接地址位相“或”10 ORL C,/bit 进位位和直接地址位的反码相“或”11 MOV C,bit 直接地址位送入进位位12 MOV bit,C 进位位送入直接地址位13 JC rel 进位位为1 则转移14 JNC rel 进位位为0 则转移15 JB bit,rel 直接地址位为1 则转移16 JNB bit,rel 直接地址位为0 则转移17 JBC bit,rel 直接地址位为1 则转移,该位清零逻辑操作数指令:1 ANL A,Rn 累加器与寄存器相“与”2 ANL A,direct 累加器与直接地址单元相“与”3 ANL A,@Ri 累加器与间接RAM 单元相“与”4 ANL A,#data 累加器与立即数相“与”5 ANL direct,A 直接地址单元与累加器相“与”6 ANL direct,#data 直接地址单元与立即数相“与”7 ORL A,Rn 累加器与寄存器相“或”8 ORL A,direct 累加器与直接地址单元相“或”9 ORL A,@Ri 累加器与间接RAM 单元单元相“或”10 ORL A,#data 累加器与立即数相“或”11 ORL direct,A 直接地址单元与累加器相“或”12 ORL direct,#data 直接地址单元与立即数相“或”13 XRL A,Rn 累加器与寄存器相“异或”14 XRL A,direct 累加器与直接地址单元相“异或”15 XRL A,@Ri 累加器与间接RAM 单元单元相“异或”16 XRL A,#data 累加器与立即数相“异或”17 XRL direct,A 直接地址单元与累加器相“异或”18 XRL direct,#data 直接地址单元与立即数相“异或”19 CLR A 累加器清“0”20 CPL A 累加器求反21 RL A 累加器循环左移22 RLC A 累加器带进位位循环左移23 RR A 累加器循环右移24 RRC A 累加器带进位位循环右移25 SWAP A 累加器半字节交换控制转移类指令:1 ACALL addr11 绝对(短)调用子程序2 LCALL addr16 长调用子程序3 RET 子程序返回4 RETI 中断返回5 AJMP addr11 绝对转移6 LJMP addr16 长转移7 SJMP rel 短转移8 JMP @A+DPTR 变址寻址转移相对于DPTR 的间接转移9 JZ rel A为零转移10 JNZ rel ;A不等于0转移11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移14 CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移15 DJNZ Rn,rel 寄存器减1,非零转移16 DJNZ direct,erl 直接地址单元减1,非零转移17 NOP 空操作PC->PC+1。

8051指令

8051指令

附录3:MCS—51系列单片机的指令介绍MCS—51汇编语言共有111条指令,其中49条是单字节指令,45条是双字节指令。

在111条指令中,单周期指令64条,双周期指令45条,占用4个周期的指令2条。

关于MCS—51汇编语言指令,有大量书籍详细介绍,在此,以表格形式列出,注释简短而精练,便于读者查阅。

一些特殊符号的意义:在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。

●Rd:当前选中的寄存器区的8个工作寄存器R0~R7(d=0~7)。

●Ri:当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)。

●@:间接寄存器寻址或基址寄存器的前缀。

●M:内部数据存储单元的8位地址。

包含0~127(255)内部存储单元地址和特殊功能寄存地址。

●#n:指令中的8位常数。

●#n(16):指令中的16位常数。

●a(16):用于LCALL和LJMP指令中的16目的地地址,目的地址的空间为64kB程序存储器地址。

●a(11):用于ACALL和AJMP指令中的11目的地地址,目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间之中。

●r:8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128~+127范围内。

●b:内部RAM和特殊功能寄存器的直接寻址位。

1.数据传送指令数据传送指令共28条,可分为8位传送指令、16位传送指令和字节交换指令3类。

数据传送指令要点见表3。

表3 数据传送指令2.算术运算指令算术运算指令共24条,有加、减、乘、除、十进制调整5种操作,由7种操作助记符来描述,算术运算指令要点见表4。

表4 算术运算指令3.逻辑运算指令逻辑运算指令共25条,有逻辑与、或、异或、清零、取反、环移和半字节交换7种操作,由10种操作码助记符来描述。

逻辑运算指令要点见表5。

表5 逻辑运算指令4.位操作指令位操作指令共12条,有位传送、位变量更改、位变量逻辑与和位变量逻辑或4种操作,由6种操作码助记符来描述。

附录B 8051单片机指令表

附录B   8051单片机指令表

2
1
XCH
A,Rn
P
1
1
XCH
A, @Ri
P
1
1
半字节交换指令




影 响 标 志
字 节
周 期
把A中的低半字节同以Ri 中的内容为地址的单元中 的低半字节相交换,高四位不变。(A)0~3←→((Ri))0~3 XCHD A, @Ri P 1 1
查表指令(从ROM中读取数据)
指 MOVC A, @A+DPTR
2
ADDC A, Rn
ADDC A, direct ADDC A, @Ri ADDC A, #data
A中的内容加上Rn中的内容再加上CY位的内容结果放 在A中。(A)←(A)+(Rn)+(CY)
A中的内容加上direct单元中的内容再加上CY位 的内容结果放在A中。(A)←(A)+(direct)+(CY) A中的内容加上以Ri中的内容为地址的单元内容,再加上 CY位,结果放在A中。(A)←(A)+((Ri))+(CY) A中的内容加上常数data再加上CY位,结果放在A中。 (A)←(A)+data+(CY)
令 远程查表指令


影 响 标 志 P
字 周 节 期
1
2
MOVC A, @A+PC
近程查表指令 P 1 2
累加器A与外部数据存储器传送数据 影 响 标 志 字 周 节 期




MOVX
A,@Ri
以Ri中的内容为地址的外部数据存储器单元中的内 容 送累加器A中。(A)←((Ri)) 以DPTR中的内容为地址的外部数据存储器单元中的 内容送累加器A中。(A)←((DPTR))

8051指令集

8051指令集

8051指令集序号指令格式功能简述字节数周期一、数据传送类指令1MOV A,Rn寄存器送累加器11 2MOV Rn,A累加器送寄存器11 3MOV A,@Ri内部RAM单元送累加器11 4MOV @Ri,A累加器送内部RAM单元11 5MOV A,#data立即数送累加器21 6MOV A,direct直接寻址单元送累加器21 7MOV direct,A累加器送直接寻址单元21 8MOV Rn,#data立即数送寄存器21 9MOV direct,#data立即数送直接寻址单元32 10MOV @Ri,#data立即数送内部RAM单元21 11MOV direct,Rn寄存器送直接寻址单元22 12MOV Rn,direct直接寻址单元送寄存器22 13MOV direct,@Ri内部RAM单元送直接寻址单元22 14MOV @Ri,direct直接寻址单元送内部RAM单元22 15MOV direct2,direct1直接寻址单元送直接寻址单元32 16MOV DPTR,#data1616位立即数送数据指针32 17MOVX A,@Ri外部RAM单元送累加器(8位地址)12 18MOVX @Ri,A累加器送外部RAM单元(8位地址)12 19MOVX A,@DPTR外部RAM单元送累加器(16位地址)12 20MOVX @DPTR,A累加器送外部RAM单元(16位地址)12 21MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12 22MOVC A,@A+PC查表数据送累加器(PC为基址)12 23XCH A,Rn累加器与寄存器交换11 24XCH A,@Ri累加器与内部RAM单元交换11 25XCHD A,direct累加器与直接寻址单元交换21 26XCHD A,@Ri累加器与内部RAM单元低4位交换11 27SWAP A累加器高4位与低4位交换11 28POP direct栈顶弹出指令直接寻址单元22 29PUSH direct直接寻址单元压入栈顶22二、算术运算类指令32ADD A,Rn累加器加寄存器11 31ADD A,@Ri累加器加内部RAM单元11 32ADD A,direct累加器加直接寻址单元21 33ADD A,#data累加器加立即数21 34ADDC A,Rn累加器加寄存器和进位标志11 35ADDC A,@Ri累加器加内部RAM单元和进位标志11 36ADDC A,#data累加器加立即数和进位标志21 37ADDC A,direct累加器加直接寻址单元和进位标志21 38INC A累加器加111 39INC Rn寄存器加11140INC direct直接寻址单元加121 41INC @Ri内部RAM单元加111 42INC DPTR数据指针加112 43DA A十进制调整11 44SUBB A,Rn累加器减寄存器和进位标志11 45SUBB A,@Ri累加器减内部RAM单元和进位标志11 46SUBB A,#data累加器减立即数和进位标志21 47SUBB A,direct累加器减直接寻址单元和进位标志21 48DEC A累加器减111 49DEC Rn寄存器减111 50DEC @Ri内部RAM单元减111 51DEC direct直接寻址单元减121 52MUL AB累加器乘寄存器B14 53DIV AB累加器除以寄存器B14三、逻辑运算类指令54ANL A,Rn累加器与寄存器11 55ANL A,@Ri累加器与内部RAM单元11 56ANL A,#data累加器与立即数21 57ANL A,direct累加器与直接寻址单元21 58ANL direct,A直接寻址单元与累加器21 59ANL direct,#data直接寻址单元与立即数31 60ORL A,Rn累加器或寄存器11 61ORL A,@Ri累加器或内部RAM单元11 62ORL A,#data累加器或立即数21 63ORL A,direct累加器或直接寻址单元21 64ORL direct,A直接寻址单元或累加器21 65ORL direct,#data直接寻址单元或立即数31 66XRL A,Rn累加器异或寄存器11 67XRL A,@Ri累加器异或内部RAM单元11 68XRL A,#data累加器异或立即数21 69XRL A,direct累加器异或直接寻址单元21 70XRL direct,A直接寻址单元异或累加器21 71XRL direct,#data直接寻址单元异或立即数32 72RL A累加器左循环移位11 73RLC A累加器连进位标志左循环移位11 74RR A累加器右循环移位11 75RRC A累加器连进位标志右循环移位11 76CPL A累加器取反11 77CLR A累加器清零11四、控制转移类指令类78ACCALL addr112KB范围内绝对调用22 79AJMP addr112KB范围内绝对转移22 80LCALL addr162KB范围内长调用32 81LJMP addr162KB范围内长转移3282SJMP rel相对短转移22 83JMP @A+DPTR相对长转移12 84RET子程序返回12 85RET1中断返回12 86JZ rel累加器为零转移22 87JNZ rel累加器非零转移22 88CJNE A,#data,rel累加器与立即数不等转移32 89CJNE A,direct,rel累加器与直接寻址单元不等转移32 90CJNE Rn,#data,rel寄存器与立即数不等转移32 91CJNE @Ri,#data,rel RAM单元与立即数不等转移32 92DJNZ Rn,rel寄存器减1不为零转移22 93DJNZ direct,rel直接寻址单元减1不为零转移32 94NOP空操作11五、布尔操作类指令95MOV C,bit直接寻址位送C21 96MOV bit,C C送直接寻址位21 97CLR C C清零11 98CLR bit直接寻址位清零21 99CPL C C取反11 100CPL bit直接寻址位取反21 101SETB C C置位11 102SETB bit直接寻址位置位21 103ANL C,bit C逻辑与直接寻址位22 104ANL C,/bit C逻辑与直接寻址位的反22 105ORL C,bit C逻辑或直接寻址位22 106ORL C,/bit C逻辑或直接寻址位的反22 107JC rel C为1转移22 108JNC rel C为零转移22 109JB bit,rel直接寻址位为1转移32 110JNB bit,rel直接寻址为0转移32 111JBC bit,rel直接寻址位为1转移并清该位32。

8051指令

8051指令

功能简述
直接尋址位送C C送直接尋址位 C清零 直接尋址位清零 C取反 直接尋址位取反 C 置位 直接尋址位置位 C邏輯與直接尋址位 C邏輯與直接尋址位取反 C邏輯或直接尋址位 C邏輯或直接尋址位取反 C置位轉移 C清空轉移 直接尋址位置位轉移 直接尋址位清零轉移 直接尋址位置位轉移,並清該位
字节数
指令助记符
功能简述
字节数 指令助记符
1 1 1 1 2 2 2 2 3 2 2 2 2 2 3 3 1 1 1 1 1 1 1 1 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 1 1 1 1 1 1 2 DEC A DEC Rn DEC @Ri DEC diect MUL AB DIV AB ANL A,Rn ANL A,Ri ANL A,# data ANL A, direct ANL direct A ANL direct, #data ORL A,Rn ORL A,@Rn ORL A,# data ORL A, direct ORL diect, A ORL direct ,# data XRL A,Rn XRL A,@Ri XRL A,#data XRL A,direct XRL direct, A XRL direct, #data RL A RLC A RR A RRC A CPL A CLR A ACALL addr11 AJMP addr11 LCALL addr16 LJMP addr16 SJMP rel JMP @A+DPTR RET RETI JZ rel JNZ rel CJNE A,#data,rel CJNE A,direct ,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel DJNZ Rn, rel DJNZ direct, rel NOP

8051单片机的指令列表

8051单片机的指令列表
1
1
ADDC A,#data
累加器加立即数和进位标志
2
1
ADDC A,direct
累加器加直接寻址单元和进位标志
2
1
INC A
累加器加1
1
1
INC Rn
寄存器加1
1
1
INC direct
直接寻址单元加1
2
1
INC @Ri
内部RAM单元加1
1
1
INC DPTR
数据指针加1
1
2
DA A
十进制调整
1
1
SUBB A,Rn
ORL C,bit
C逻辑或直接寻址位
2
2
ORL C,/bit
C逻辑或直接寻址位的反
2
2
JC rel
C为1转移
2
2
JNC rel
C为零转移
2
2
JB bit,rel
直接寻址位为1转移
3
2
JNB bit,rel
直接寻址为0转移
3
2
JBC bit,rel
直接寻址位为1转移并清该位
3
2
直接寻址单元或立即数
3
1
XRL A,Rn
累加器异或寄存器
1
1
XRL A,@Ri
累加器异或内部RAM单元
1
1
XRL A,#data
累加器异或立即数
2
1
XRL A,direct
累加器异或直接寻址单元
2
1
XRL direct,A
直接寻址单元异或累加器
2
1
XRL direct,#data
直接寻址单元异或立即数

8051指令集

8051指令集

8051指令集8051指令集序号指令格式功能简述字节数周期一、数据传送类指令1MOV A,Rn寄存器送累加器11 2MOV Rn,A累加器送寄存器11 3MOV A,@Ri内部RAM单元送累加器11 4MOV @Ri,A累加器送内部RAM单元11 5MOV A,#data立即数送累加器21 6MOV A,direct 直接寻址单元送累加器21 7MOV direct,A累加器送直接寻址单元21 8MOV Rn,#data立即数送寄存器21 9MOV direct,#data立即数送直接寻址单元32 10MOV @Ri,#data立即数送内部RAM单元21 11MOV direct,Rn寄存器送直接寻址单元22 12MOV Rn,direct直接寻址单元送寄存器22 13MOV direct,@Ri内部RAM单元送直接寻址单元22 14MOV @Ri,direct直接寻址单元送内部RAM单元22 15MOV direct2,direct1直接寻址单元送直接寻址单元32 16MOV DPTR,#data1616位立即数送数据指针32 17MOVX A,@Ri外部RAM 单元送累加器(8位地址)12 18MOVX @Ri,A累加器送外部RAM单元(8位地址)12 19MOVX A,@DPTR外部RAM单元送累加器(16位地址)12 20MOVX @DPTR,A累加器送外部RAM单元(16位地址)12 21MOVC A,@A+DPTR查表数据送累加器(DPTR为基址)12 22MOVC A,@A+PC查表数据送累加器(PC为基址)12 23XCH A,Rn累加器与寄存器交换11 24XCH A,@Ri累加器与内部RAM单元交换11 25XCHD A,direct累加器与直接寻址单元交换21 26XCHD A,@Ri累加器与内部RAM单元低4位交换11 27SWAP A累加器高4位与低4位交换11 28POP direct栈顶弹出指令直接寻址单元22 29PUSH direct直接寻址单元压入栈顶22二、算术运算类指令32ADD A,Rn累加器加寄存器11 31ADD A,@Ri累加器加内部RAM单元11 32ADD A,direct累加器加直接寻址单元21 33ADD A,#data累加器加立即数21 34ADDC A,Rn累加器加寄存器和进位标志11 35ADDC A,@Ri累加器加内部RAM单元和进位标志11 36ADDC A,#data累加器加立即数和进位标志21 37ADDC A,direct累加器加直接寻址单元和进位标志21 38INC A累加器加111 39INC Rn寄存器加11140INC direct直接寻址单元加121 41INC @Ri内部RAM单元加111 42INC DPTR数据指针加112 43DA A十进制调整11 44SUBB A,Rn累加器减寄存器和进位标志11 45SUBB A,@Ri累加器减内部RAM单元和进位标志11 46SUBB A,#data累加器减立即数和进位标志21 47SUBB A,direct累加器减直接寻址单元和进位标志21 48DEC A累加器减111 49DEC Rn寄存器减111 50DEC @Ri内部RAM单元减111 51DEC direct直接寻址单元减121 52MUL AB累加器乘寄存器B14 53DIV AB累加器除以寄存器B14三、逻辑运算类指令54ANL A,Rn累加器与寄存器11 55ANL A,@Ri累加器与内部RAM单元11 56ANL A,#data累加器与立即数21 57ANL A,direct累加器与直接寻址单元21 58ANL direct,A直接寻址单元与累加器21 59ANL direct,#data直接寻址单元与立即数31 60ORL A,Rn累加器或寄存器11 61ORL A,@Ri累加器或内部RAM单元11 62ORL A,#data累加器或立即数21 63ORL A,direct累加器或直接寻址单元21 64ORL direct,A直接寻址单元或累加器21 65ORL direct,#data直接寻址单元或立即数31 66XRL A,Rn累加器异或寄存器11 67XRL A,@Ri累加器异或内部RAM单元11 68XRL A,#data累加器异或立即数21 69XRL A,direct累加器异或直接寻址单元21 70XRL direct,A直接寻址单元异或累加器21 71XRL direct,#data直接寻址单元异或立即数32 72RL A累加器左循环移位11 73RLC A累加器连进位标志左循环移位11 74RR A累加器右循环移位11 75RRC A累加器连进位标志右循环移位11 76CPL A累加器取反11 77CLR A累加器清零11四、控制转移类指令类78ACCALL addr112KB范围内绝对调用22 79AJMP addr112KB 范围内绝对转移22 80LCALL addr162KB范围内长调用32 81LJMP addr162KB范围内长转移3282SJMP rel相对短转移22 83JMP @A+DPTR相对长转移12 84RET子程序返回12 85RET1中断返回12 86JZ rel累加器为零转移22 87JNZ rel累加器非零转移22 88CJNE A,#data,rel累加器与立即数不等转移32 89CJNE A,direct,rel累加器与直接寻址单元不等转移32 90CJNE Rn,#data,rel寄存器与立即数不等转移32 91CJNE @Ri,#data,rel RAM单元与立即数不等转移32 92DJNZ Rn,rel寄存器减1不为零转移22 93DJNZ direct,rel直接寻址单元减1不为零转移32 94NOP空操作11五、布尔操作类指令95MOV C,bit直接寻址位送C21 96MOV bit,C C送直接寻址位21 97CLR C C清零11 98CLR bit直接寻址位清零21 99CPL C C取反11 100CPL bit直接寻址位取反21 101SETB C C置位11 102SETB bit 直接寻址位置位21 103ANL C,bit C逻辑与直接寻址位22 104ANL C,/bit C逻辑与直接寻址位的反22 105ORL C,bit C逻辑或直接寻址位22 106ORL C,/bit C逻辑或直接寻址位的反22 107JC rel C为1转移22 108JNC rel C为零转移22 109JB bit,rel直接寻址位为1转移32 110JNB bit,rel直接寻址为0转移32 111JBC bit,rel直接寻址位为1转移并清该位32。

8051单片机指令表

8051单片机指令表

8051单片机指令表助记符指令说明字节数周期数(数据传递类指令)MOV A,Rn寄存器传送到累加器11 MOV A,direct直接地址传送到累加器21 MOV A,@Ri累加器传送到外部RAM(8地址)11 MOV A,#data立即数传送到累加器21 MOV Rn,A累加器传送到寄存器11 MOV Rn,direct直接地址传送到寄存器22 MOV Rn,#data累加器传送到直接地址21 MOV direct,Rn寄存器传送到直接地址21 MOV direct,direct直接地址传送到直接地址32 MOV direct,A累加器传送到直接地址21 MOV direct,@Ri间接RAM传送到直接地址22 MOV direct,#data立即数传送到直接地址32 MOV@Ri,A直接地址传送到直接地址12 MOV@Ri,direct直接地址传送到间接RAM21 MOV@Ri,#data立即数传送到间接RAM22 MOV DPTR,#data1616位常数加载到数据指针31 MOVC A,@A+DPTR代码字节传送到累加器12 MOVC A,@A+PC代码字节传送到累加器12 MOVX A,@Ri外部RAM(8地址)传送到累加器12 MOVX A,@DPTR外部RAM(16地址)传送到累加器12 MOVX@Ri,A累加器传送到外部RAM(8地址)12 MOVX@DPTR,A累加器传送到外部RAM(16地址)12 PUSH direct直接地址压入堆栈22POP direct直接地址弹出堆栈22XCH A,Rn寄存器和累加器交换11XCH A,direct直接地址和累加器交换21XCH A,@Ri间接RAM和累加器交换11XCHD A,@Ri间接RAM和累加器交换低4位字节11(算术运算类指令)INC A累加器加111 INC Rn寄存器加111 INC direct直接地址加121 INC@Ri间接RAM加111 INC DPTR数据指针加112 DEC A 累加器减111 DEC Rn寄存器减111 DEC direct直接地址减122 DEC@Ri间接RAM减111 MUL AB累加器和B寄存器相乘14 DIVAB累加器除以B寄存器14 DA A累加器十进制调整11 ADD A,Rn寄存器与累加器求和11 ADD A,direct直接地址与累加器求和21 ADD A,@Ri间接RAM与累加器求和11 ADD A,#data立即数与累加器求和21 ADDC A,Rn寄存器与累加器求和(带进位)11 ADDC A,direct直接地址与累加器求和(带进位)21 ADDC A,@Ri间接RAM与累加器求和(带进位)11 ADDC A,#data立即数与累加器求和(带进位)21 SUBB A,Rn累加器减去寄存器(带借位)11 SUBB A,direct累加器减去直接地址(带借位)21 SUBB A,@Ri累加器减去间接RAM(带借位)11 SUBB A,#data累加器减去立即数(带借位)21(逻辑运算类指令)ANL A,Rn寄存器“与”到累加器11 ANL A,direct直接地址“与”到累加器21ANL A,@Ri间接RAM“与”到累加器11 ANL A,#data立即数“与”到累加器21 ANL direct,A累加器“与”到直接地址21 ANL direct,#data立即数“与”到直接地址32 ORL A,Rn寄存器“或”到累加器12 ORL A,direct直接地址“或”到累加器21 ORL A,@Ri间接RAM“或”到累加器11 ORL A,#data立即数“或”到累加器21 ORL direct,A累加器“或”到直接地址21 ORL direct,#data立即数“或”到直接地址31 XRL A,Rn寄存器“异或”到累加器12 XRL A,direct直接地址“异或”到累加器21 XRL A,@Ri间接RAM“异或”到累加器11 XRL A,#data立即数“异或”到累加器21 XRL direct,A 累加器“异或”到直接地址21 XRL direct,#data立即数“异或”到直接地址31 CLR A累加器清零12 CPL A累加器求反11 RL A累加器循环左移11 RLC A带进位累加器循环左移11 RR A累加器循环右移11 RRC A带进位累加器循环右移11 SWAP A累加器高、低4位交换11 (控制转移类指令)JMP@A+DPTR相对DPTR的无条件间接转移12 JZ rel累加器为0则转移22 JNZ rel累加器为1则转移22 CJNE A,direct,rel比较直接地址和累加器,不相等转移32 CJNE A,#data,rel比较立即数和累加器,不相等转移32CJNE Rn,#data,rel比较寄存器和立即数,不相等转移22 CJNE@Ri,#data,rel比较立即数和间接RAM,不相等转移32 DJNZ Rn,rel寄存器减1,不为0则转移32 DJNZ direct,rel直接地址减1,不为0则转移32 NOP空操作,用于短暂延时11 ACALL add11绝对调用子程序22 LCALL add16长调用子程序32 RET从子程序返回12 RETI 从中断服务子程序返回12 AJMP add11无条件绝对转移22 LJMP add16无条件长转移32 SJMP rel无条件相对转移22(布尔指令)CLR C清进位位11 CLR bit清直接寻址位21 SETB C置位进位位11 SETB bit置位直接寻址位21 CPL C取反进位位11 CPL bit取反直接寻址位21 ANL C,bit直接寻址位“与”到进位位22 ANL C,/bit直接寻址位的反码“与”到进位位22 ORL C,bit直接寻址位“或”到进位位22 ORL C,/bit直接寻址位的反码“或”到进位位22 MOV C,bit 直接寻址位传送到进位位21 MOV bit,C进位位位传送到直接寻址22 JC rel如果进位位为1则转移22 JNC rel如果进位位为0则转移22 JB bit,rel如果直接寻址位为1则转移32 JNB bit,rel如果直接寻址位为0则转移32JBC bit,rel直接寻址位为1则转移并清除该位22(伪指令)ORG指明程序的开始位置DB定义数据表DW定义16位的地址表EQU给一个表达式或一个字符串起名DATA给一个8位的内部RAM起名XDATA给一个8位的外部RAM起名BIT给一个可位寻址的位单元起名END指出源程序到此为止(指令中的符号标识)Rn工作寄存器R0-R7Ri工作寄存器R0和R1@Ri间接寻址的8位RAM单元地址(00H-FFH)#data88位常数#data1616位常数addr1616位目标地址,能转移或调用到64KROM的任何地方addr1111位目标地址,在下条指令的2K范围内转移或调用Rel8位偏移量,用于SJMP和所有条件转移指令,范围-128~+127 Bit片内RAM中的可寻址位和SFR的可寻址位Direct直接地址,范围片内RAM单元(00H-7FH)和80H-FFH $指本条指令的起始位置。

8051单片机汇编指令集

8051单片机汇编指令集

将直接地址的内容加1 将间接地址的内容加1 数据指针寄存器值加1
当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位 将累加器的值减1 将寄存器的值减1 将直接地址的内容减1 将间接地址的内容减1 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节 存回B寄存器
指令 算数运算指令 1.ADD A,Rn 2.ADD A,direct 3.ADD A,@Ri 4.ADD A,#data 5.ADDC A,Rn 6.ADDC A,direct 7.ADDC A,@Ri 8.ADDC A,#data 9.SUBB A,Rn 10.SUBB A,direct 11.SUBB A,@Ri 12.SUBB A,0data 13.INC A 14.INC Rn
2 2 3 2 1 2 1 2 2 2 3 2 2 2 1 2 2 2 2 2 3 2 3 2
107.CJNE @Rn,#data,rel 3 2 108.CJNE @Ri,#data,rel 3 2 109.DJNZ Rn,rel 110.DJNZ direct,rel 111.NOP 2 2 3 2 1 1
A) 7-4←(A)7-4+6 将累加器的值与寄存器的值做AND的逻辑判断,结果存回累加器 将累加器的值与直接地址的内容做AND的逻辑判断,结果存回累加器 将累加器的值与间接地址的内容做AND的逻辑判断,结果存回累加器 将累加器的值与常数做AND的逻辑判断,结果存回累加器 将直接地址的内容与累加器的值做AND的逻辑判断,结果存回该直接地址 将直接地址的内容与常数值做AND的逻辑判断,结果存回该直接地址 将累加器的值与寄存器的值做OR的逻辑判断,结果存回累加器 将累加器的值与直接地址的内容做OR的逻辑判断,结果存回累加器 将累加器的值与间接地址的内容做OR的逻辑判断,结果存回累加器 将累加器的值与常数做OR的逻辑判断,结果存回累加器 将直接地址的内容与累加器的值做OR的逻辑判断,结果存回该直接地址 将直接地址的内容与常数值做OR的逻辑判断,结果存回该直接地址 将累加器的值与寄存器的值做XOR的逻辑判断,结果存回累加器

80C51系列单片机指令表

80C51系列单片机指令表

80C51系列单片机指令表80C51系列单片机指令以A开头的指令有18条,分别为:ACALL addr11ADD A,RnADD A,directADD A,@RiADD A,#dataADDC A,RnADDC A,directADDC A,@RiADDC A,#dataAJMP addr11ANL A,RnANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#dataANL C,bitANL C,/bit1. ACALL addr11指令名称:绝对调用指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,进行子程序调用。

其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。

操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数:2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。

2. ADD A,Rn指令名称:寄存器加法指令指令代码:28H~2FH指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(Rn),n=0~7字节数:1机器周期:1影响标志位:C,AC,OV3. ADD A,direct指令名称:直接寻址加法指令指令代码:25H指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)字节数:2机器周期:1影响标志位:C,AC,OV4. ADD A,@Ri指令名称:间接寻址加法指令指令代码:26H~27H指令功能:累加器内容与内部RAM低128单元内容相加操作内容:A←(A)+((Ri)),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV5. ADD A,#data指令名称:立即数加法指令指令代码:24H指令功能:累加器内容与立即数相加操作内容:A←(A)+data字节数:2机器周期:1影响标志位:C,AC,OV6. ADDC A,Rn指令名称:寄存器带进位加法指令指令代码:38H~3FH指令功能:累加器内容、寄存器内容和进位位相加操作内容:A←(A)+(Rn)+(C),n=0~7字节数:1机器周期:1影响标志位:C,AC,OV7. ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C)字节数:2机器周期:1影响标志位:C,AC,OV8. ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV9. ADDC A,#data指令名称:立即数带进位加法指令指令代码:34H指令功能:累加器内容、立即数及进位位相加操作内容:A←(A)+data+(C)字节数:2机器周期:1影响标志位:C,AC,OV10. AJMP addr11指令名称:绝对转移指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,实现程序转移.其方法是以指令提供的11位地址,取代PC的低11位,而PC的高5位保持不变.操作内容:PC←(PC)+2PCl0~0←addrll字节数:2机器周期:2使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB.11. ANL A,Rn指令名称:寄存器逻辑与指令指令代码:58H~5FH指令功能:累加器内容逻辑与寄存器内容操作内容:A←(A)∧(Rn),n=0~7字节数:1机器周期:112. ANL A,direct指令名称:直接寻址逻辑与指令指令代码:55H指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容操作内容:A←(A)∧(diret)字节数:2机器周期:113. ANL A,@Ri指令名称:间接寻址逻辑与指令指令代码:56H~57H指令功能:累加器内容逻辑与内部RAM低128单元内容操作内容:A←(A)∧((Ri))i=0,1字节数:1机器周期:114. ANL A,#data指令名称:立即数逻辑与指令指令代码:54H指令功能:累加器内容逻辑与立即数操作内容:A←(A)∧data字节数:2机器周期:115. ANL direct,A指令名称:累加器逻辑与指令指令代码:52H指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容操作内容:direct←(A)∧(direct)字节数:2机器周期:116. ANL direct,#data指令名称:逻辑与指令指令代码:53H指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数操作内容:direct←(direct)∧data字节数:3机器周期:217. ANL C,bit指令名称:位逻辑与指令指令代码:82H指令功能:进位标志逻辑与直接寻址位操作内容:C←(C)∧(bit)字节数:2机器周期:218. ANL C,/bit指令名称:位逻辑与指令指令代码:B0H指令功能:进位标志逻辑与直接寻址位的反操作内容:C←(C)∧(bit)字节数:2机器周期:280C51系列单片机指令以C开头的指令有10条,分别为: CJNE A,dircet,relCJNE A,#data,relCJNE Rn,#data,relCJNE @Ri,#data,relCLR ACLR CCLR bitCPL ACPL CCPL bit1. CJNE A,dircet,rel指令名称:数值比较转移指令指令代码:B5H指令功能:累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。

8051单片机汇编指令速查表详解

8051单片机汇编指令速查表详解

8051系列单片机汇编语言指令速查表说明:1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。

这里介绍指令助记符及其相关符号的记忆方法。

一、助记符号的记忆方法1、表格列举法把44个指令助记符按功能分为五类,每类列表记忆。

此处从略,请读者自己总结。

2、英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。

例如:增量INC-Incremect 减量DNC-Decrement 短转移SJMP-Short jump长转移LJMP-Long jump 比较转移CJNE-Compare jump not equality绝对转移AJMP-Absolute jump 空操作NOP-No operation交换XCH-Exchange 加法ADD-Addition乘法MUL-Multiplication 除法DIV-Division左环移RL-Rotate left 进位左环移RLC-Rotate left carry右环移RR-Rotate right 进位右环移RRC-Rotate right carry3、功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。

这样,化整为零,各个击破,实现快速记忆。

1)数据传送组。

2)加减运算组MOV 内部数据传送ADD 加法MOVC 程序存储器传送ADDC 带进位加法MOVX 外部数据传送SUBB 带进位减法3)逻辑运算组。

4)子程序调用组。

ANL 逻辑与LCALL 长调用ORL 逻辑或ALALL 绝对调用XRL 逻辑异或RET 子程序返回二、指令的记忆方法1、指令操作数的有关符号MCS-51的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。

8051指令表

8051指令表

1. ADD_A_RR 寄存器加到累加器(28+n)2. ADD_A_D 直接寻址字节加到累加器(25)(dir)3. ADD_A_ATRI 间址RAM 内容加到累加器(26+i)4. ADD_A_DATA 立即数加到累加器(24)(data)5. ADDC_A_RR 寄存器加到累加器(带进位)(38+n)6. ADDC_A_D 直接寻址字节加到累加器(带进位)(35)(dir)7. ADDC_A_ATRI 间址RAM 内容加到累加器(带进位)(36+i)8. ADDC_A_DATA 立即数加到累加器(带进位)(34)(data)9. SUBB_A_RR 累加器减去寄存器(带借位)(98+n)10. SUBB_A_D 累加器减去直接寻址字节(带借位)(95)(dir)11. SUBB_A_ATRI 累加器减去间址RAM (带借位)(96+i)12. SUBB_A_DATA 累加器减去立即数(带借位)(94)(data)13. INC_A 累加器加1-414. INC_RR 寄存器加1(08+n)15. INC_D 直接寻址字节加1(05)(dir)16. INC_ATRI 间址RAM 加1(06+i)17. DEC_A 累加器减1-1418. DEC_RR 寄存器减1(18+n)19. DEC_D 直接寻址字节减1(15)(dir)20. DEC_ATRI 间址RAM 减1(16+i)21. INC_DPTR 数据地址加1(A3)22. MUL_AB 累加器与寄存器B 相乘(A4)23. DIV_AB 累加器除以寄存器B -8424. DA_A 累加器十进制调整(D4)25. ANL_A_RR 寄存器与到累加器(58+n)26. ANL_A_D 直接寻址字节与到累加器(55)(dir)27. ANL_A_ATRI 间址RAM 与到累加器(56+i)28. ANL_A_DATA 立即数与到累加器(54)(data)29. ANL_D_A累加器与到直接寻址字节(52)(dir)30. ANL_D_DATA 立即数与到直接寻址字节(53)(dir)(data)31. ORL_A_RR 寄存器或到累加器(48+n)32. ORL_A_D 直接寻址字节或到累加器(45)(dir)33. ORL_A_ATRI 间址RAM 或到累加器(46+i)34. ORL_A_DATA 立即数或到累加器(44)(data)35. ORL_D_A累加器或到直接寻址字节(42)(dir)36. ORL_D_DATA 立即数或到直接寻址字节(43)(dir)(data)37. XRL_A_RR 寄存器异或到累加器(68+n)38. XRL_A_D 直接寻址字节异或到累加器(65)(dir)39. XRL_A_ATRI 间址RAM 异或到累加器(66+i)40. XRL_A_DATA 立即数异或到累加器(64)(data)41.XRL_D_A 累加器异或到直接寻址字节(62)(dir)功能说明机器码算数操作类指令逻辑操作类指令序号助记符42.XRL_D_DATA立即数异或到直接寻址字节(63)(dir)(data)43.CLR_A累加器清零(E4)44.CPL_A累加器求反(F4)45.RL_A累加器循环左移-2346.RLC_A带进位的累加器循环左移-3347.RR_A累加器循环右移-348.RRC_A带进位的累加器循环右移-1349.SWAP_A累加器内高低半字节交换(C4)数据传送类指令50.MOV_A_RR寄存器到累加器(E8+n)51.MOV_A_D直接寻址字节到累加器(E5)(dir)52.MOV_A_ATRI间址RAM到累加器(E6+i)53.MOV_A_DATA立即数到累加器(74)(data)54.MOV_RR_A累加器到寄存器(F8+n)55.MOV_RR_D直接寻址字节到寄存器(A8+n)(dir)56.MOV_RR_DATA立即数到寄存器(78+n)(data)57.MOV_D_A累加器到直接寻址字节(F5)(dir)58.MOV_D_RR寄存器到直接寻址字节(88+n)(dir)59.MOV_Dp_Ds直接寻址字节(dir_s)到直接寻址字节(dir_p)(85)(dir_s)(dir_p)60.MOV_D_ATRI间址RAM到直接寻址字节(86+i)(dir)61.MOV_D_DATA立即数到直接寻址字节(75)(dir)(data)62.MOV_ATRI_A累加器到间址RAM(F6+i)63.MOV_ATRI_D直接寻址字节到间址RAM(A6+i)(dir)64.MOV_ATRI_DATA立即数到间址RAM(76+i)(data)65.MOV_DPTR_DATA16位常数装入DPTR(90)(daH)(daL)66.MOVC_A_ATDPTR相对于DPTR的代码字节到累加器-9367.MOVC_A_ATPC相对于PC的代码字节到累加器-8368.MOVX_A_ATRI外部RAM(8位地址)到累加器(E2+i)69.MOVX_A_ATDPTR外部RAM(16位地址)到累加器(E0)70.MOVX_ATRI_A累加器到外部RAM(8位地址)(F2+i)71.MOVX_ATDPTR_A累加器到外部RAM(16位地址)(F0)72.PUSH直接寻址字节压入栈顶(C0)(dir)73.POP栈顶数据弹出到直接寻址字节(D0)(dir)74.XCH_A_RR寄存器和累加器交换(C8+n)75.XCH_A_D直接寻址字节与累加器交换(C5)(dir)76.XCH_A_ATRI间址RAM与累加器交换(C6+i)77.XCHD_A_ATRI间址RAM与累加器交换低半字节(D6+i)位操作类指令78.CLR_C清进位位(C3)79.CLR_BIT清直接寻址位(C2)(bit)80.SETB_C进位位置1(D3)81.SETB_BIT直接寻址位置1(D2)(bit)82.CPL_C进位位取反(B3)83.CPL_BIT直接寻址位取反(B2)(bit)84.ANL_C_BIT直接寻址位与到进位位(82)(bit)85.ANL_C_NBIT直接寻址位的反码与到进位位(B0)(bit)86.ORL_C_BIT直接讯职位或到进位位(72)(bit)87.ORL_C_NBIT直接寻址位的反码或到进位位(A0)(bit)88.MOV_C_BIT直接寻址位传送到进位位(A2)(bit)89.MOV_BIT_C进位位传送到直接寻址位(92)(bit)90.JC进位位为1则跳转(40)(rel)91.JNC进位位为0则跳转(50)(rel)92.JB直接寻址位为1则跳转(20)(bit)(rel)93.JNB直接寻址位为0则跳转(30)(bit)(rel)94.JBC若直接寻址位位1则跳转,并清除该位(10)(bit)(rel)控制转移类指令95.ACALL绝对调用子程序,ADDR11(addrH*20h+11h)(addrL)96.LCALL长调用子程序,ADDR16(12)(addrH)(addrL)97.RET从子程序返回-2298.RETI从中断返回-3299.AJMP绝对转移,ADDR11(addrH*20h+01h)(addrL)100.LJMP长转移,ADDR16(02)(addrH)(addrL)101.SJMP短转移,相对地址(80)(rel)102.JMP_A_DPTR相对DPTR的间接转移-73103.JZ累加器为0则转移(60)(rel)104.JNZ累加器为非0则转移(70)(rel)105.CJNE_A_D比较直接寻址字节与累加器,不相等则转移(B5)(dir)(rel) 106.CJNE_A_DATA比较立即数与累加器,不相等则转移(B4)(data)(rel) 107.CJNE_RR_DATA比较立即数与寄存器,不相等则转移(B8+n)(data)(rel) 108.CJNE_ATRI_DATA比较立即数与间址RAM,不相等则转移(B6+i)(data)(rel) 109.DJNZ_RR寄存器减1,不为0则转移(D8+n)(rel) 110.DJNZ_D直接寻址字节减1,不为0则转移(D5)(dir)(rel) 111.NOP空操作0指令编码占用字节数时钟周期数812123212122812123212122812123212122111812123212111812123212114113113111812123212122123133812123212122123133812123212122123111 111 111 111 111 111 111812 123 212 122 811 823 822 122 822 133 222 133 211 223 222 133 112 112 212 112 211 111 123 122 813 124 213 213111 122 111 122 111 123 123123 123 123 122 122 122 133 133 133822 133113 113 822133122 111 122 122 133 133 833 233 822 133 111。

单片机8051指令

单片机8051指令

8051指令系统汇总表启动及中断入口地址0000HRESETINT0003H0000BHT/C0INT0013H1001BHT/C10023H串口1002BH仅8032(8052)有0033HPF1(电源故障)__DS80C320003BH串口2...0043HINT2INT004BH30053HINT4INT005BH50063HWDTI__看门狗进位辅助进位用户寄存器选择符号运算出错标志奇偶标志标志 0 0 0 1=奇0 1 1 0=偶1 0 21 1 3TMOD89HPCON87H位地址(符号地址)字节地址SFR寻址MSB位地址LSBSRF寄存器IE0及IE1在中断返回前应清除(CLR IE0(IE1))。

RAM 访问时间选择 WD1 WD0 复位时间0 0 0 2机器周期0 0 217+5120 0 1 3机器周期(缺省) 0 1 220+5120 1 0 4机器周期 1 0 223+5120 1 1 5机器周期 1 1 226+512 1 0 0 6机器周期 1 0 1 7机器周期 1 1 0 8机器周期 1 1 1 9机器周期扩展中断使能DOG INT5 INT4 INT3 INT2WDIF—看门狗中断标志WDRF—看门狗计数器复位标志EWT-—使能看门狗计数器复位RWT---复位看门狗计数器指令表中的定义如下:Ri=R0及R1;Rn=R0--R7;direct=内部RAM;data=立即数(单字节或双字节)。

8051指令表

8051指令表

MOV A , RnMOV A , direct MOV A , @Ri MOV A , #data MOV Rn , AMOV Rn , direct MOV Rn , #data MOV direct , A MOV direct , RnMOV direct , direct2MOV direct , @Ri MOV direct , #data MOV @Ri , AMOV @Ri , direct MOV @Ri , #data MOV DPTR , #addr16XCH A , RnXCH A , direct XCH A , @Ri XCHD A , @Ri SWAP APUSH direct POP directMOVX A , @DPTR MOVX A , @Ri MOVX @DPTR , A MOVX @Ri , A MOVC A ,@A +PC MOVC A ,@A +DPTRADD A , RnADD A , direct ADD A , @Ri ADD A , #data ADDC A , RnADDC A , direct ADDC A , @Ri ADDC A , #data INC A INC RnINC direct INC @Ri INC DPTR DA ASUBB A , RnSUBB A , direct SUBB A , @Ri SUBB A , #data DEC A DEC RnDEC direct DEC @Ri MUL AB DIV AB AJMP addr11SJMP rel LJMP addr16JMP @A+DPTRCLR A CPL A RL A RLC A RR A RRC AANL A , RnANL A , direct ANL A , @Ri ANL A , #data ANL direct , AANL direct , #data ORL A , RnORL A , direct ORL A , @Ri ORL A , #data ORL direct , AORL direct , #data XRL A , RnXRL A , direct XRL A , @Ri XRL A , #data XRL direct , AXRL direct , #data ACALL addr11LCALL addr16RET RETIMOV C , bit MOV bit , C CLR C CLR bit SETB C SETB bit CPL C CPL bitANL C , bit ANL C , \bit ORL C , bit ORL C , \bit NOPJB bit , rel JNB bit , rel JBC bit , relDJNZ Rn , relDJNZ direct , rel CJNE A , direct , rel CJNE A , #data , rel CJNE Rn , #data , rel CJNE @Ri , #data , rel JZ rel JNZ rel JC relJNC rel位操作类条件跳转类MOV C , bit MOV bit , C CLR C CLR bit SETB C SETB bit CPL C CPL bit ANL C , bit ANL C , \bit ORL C , bit ORL C , \bitNOPJB bit , rel JNB bit , rel JBC bit , rel DJNZ Rn , rel DJNZ direct , rel CJNE A , direct , rel CJNE A , #data , rel CJNE Rn , #data , rel CJNE @Ri , #data , rel JZ rel JNZ rel JC rel JNC rel逻辑运算类CLR A CPL A RL A RLC A RR A RRC A ANL A , Rn ANL A , direct ANL A , @Ri ANL A , #data ANL direct , A ANL direct , #data ORL A , Rn ORL A , direct ORL A , @Ri ORL A , #data ORL direct , A ORL direct , #data XRL A , Rn XRL A , direct XRL A , @Ri XRL A , #data XRL direct , A XRL direct , #dataACALL addr11LCALL addr16RET RETI调用返回类数据传送类MOV A , Rn MOV A , direct MOV A , @Ri MOV A , #data MOV Rn , A MOV Rn , direct MOV Rn , #data MOV direct , A MOV direct , Rn MOV direct , direct2MOV direct , @Ri MOV direct , #data MOV @Ri , A MOV @Ri , direct MOV @Ri , #data MOV DPTR , #addr16XCH A , Rn XCH A , direct XCH A , @Ri XCHD A , @Ri SWAP A PUSH direct POP directMOVX A , @DPTR MOVX A , @Ri MOVX @DPTR , A MOVX @Ri , A MOVC A ,@A +PC MOVC A ,@A +DPTR指令寻址空间说明算术运算类ADD A , Rn ADD A , direct ADD A , @Ri ADD A , #data ADDC A , Rn ADDC A , direct ADDC A , @Ri ADDC A , #data INC A INC Rn INC direct INC @Ri INC DPTR DA ASUBB A , Rn SUBB A , direct SUBB A , @Ri SUBB A , #data DEC A DEC Rn DEC direct DEC @Ri MUL AB DIV ABAJMP addr11SJMP rel LJMP addr16JMP @A+DPTR无条件跳转类0x00。

80C51系列单片机指令表

80C51系列单片机指令表
方括符[ ]表示可选项 方括符[ 标号代表指令所在地址,1-8个字母/数字,":"结尾 标号代表指令所在地址, 个字母/数字, 结尾
标号:指令的符号地址. ⑴ 标号:指令的符号地址.
① 用于一段功能程序的识别标记或控制 转移地址. 转移地址. ② 指令前的标号代表该指令的地址, 指令前的标号代表该指令的地址, 用符号表示的地址. 是用符号表示的地址. 一般用英文字母和数字组成. ③ 一般用英文字母和数字组成. 标号必须用冒号" 与操作码分隔. ④ 标号必须用冒号" :"与操作码分隔.
【例】 MOV MOV

A,3 A,3AH A,P0
单元中的数据传送至A ;将内RAM 3AH单元中的数据传送至A中 将内RAM AH单元中的数据传送至 ;将特殊功能寄存器P0口中的数据传送至A 将特殊功能寄存器P0口中的数据传送至A P0口中的数据传送至
说明: AH和 是以direct形式出现的直接地址 说明:3AH和P0是以direct形式出现的直接地址 direct 访问特殊功能寄存器SFR SFR只能采用直接寻址方 访问特殊功能寄存器SFR只能采用直接寻址方 式.
注释:指令功能说明. ⑷ 注释:指令功能说明.
注释属于非必需项, 是为便于阅读, ① 注释属于非必需项 , 是为便于阅读 , 对指令功能作的说明和注解. 对指令功能作的说明和注解. ② 注释必须以";"开始. 注释必须以" 开始.
3.1.2 指令分类
80C51共有111条指令. 80C51共有111条指令. 共有111条指令
A,R0 MOV A,R0 INC A MUL AB ;将R0中的数据传送至A中 中的数据传送至A
⒋ 寄存器间接寻址

8051单片机汇编指令速查表分解

8051单片机汇编指令速查表分解

8051系列单片机汇编语言指令速查表说明:1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。

这里介绍指令助记符及其相关符号的记忆方法。

一、助记符号的记忆方法1、表格列举法把44个指令助记符按功能分为五类,每类列表记忆。

此处从略,请读者自己总结。

2、英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。

例如:增量INC-Incremect 减量DNC-Decrement 短转移SJMP-Short jump长转移LJMP-Long jump 比较转移CJNE-Compare jump not equality绝对转移AJMP-Absolute jump 空操作NOP-No operation交换XCH-Exchange 加法ADD-Addition乘法MUL-Multiplication 除法DIV-Division左环移RL-Rotate left 进位左环移RLC-Rotate left carry右环移RR-Rotate right 进位右环移RRC-Rotate right carry3、功能模块记忆法单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。

这样,化整为零,各个击破,实现快速记忆。

1)数据传送组。

2)加减运算组MOV 内部数据传送ADD 加法MOVC 程序存储器传送ADDC 带进位加法MOVX 外部数据传送SUBB 带进位减法3)逻辑运算组。

4)子程序调用组。

ANL 逻辑与LCALL 长调用ORL 逻辑或ALALL 绝对调用XRL 逻辑异或RET 子程序返回二、指令的记忆方法1、指令操作数的有关符号MCS-51的寻址方式共有七种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址、位寻址。

8051指令机器码

8051指令机器码

操作码
逻 ORL data,A
2
ORL data,#data
2
辑 ORL C,bit
2
ORL C,/bit
2
运 XRL A,Rn
3
XRL A,data
1
算 XRL A,@Ri
2

XRL A,#data XRL data,A
1 2

XRL data,#data SETB C
2 1
SETB bit
1
CLR A
2A31Fra bibliotek141
18—1F
1
15
1
16;17
4
A4
4
84
1
D4
AJMP addr 11
2
2
*1
LJMP addr 16
3
2
02
SJMP rel
2
2
80
JMP @A+DPTR
1
2
73
JZ rel
2
2
60
JNZ rel
2
2
70
JC rel
2
2
40
JNC rel
2
2
50

JB bit,rel JNB bit,rel
3
CLR C
1
CLR bit
2
CPL A
1
CPL C
1
CPL bit
2
RL A
1
RLC A
1
RR A
1
RRC A
1
SWAP A
1
ADD A,Rn
1
ADD A,data
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档