您好,欢迎来到九壹网。
搜索
您的当前位置:首页8051汇编指令集

8051汇编指令集

来源:九壹网
序号助 记 符

1MOV A,Rn2MOV A,direct3MOV A,@Ri4MOV A,#data5MOV Rn,A6MOV Rn,diret7MOV Rn,#data8MOV direct,A9MOV direct,Rn10MOV direct,direct11MOV direct,@Ri12MOV direct,#data13MOV @Ri,A

14MOV @Ri,direct15MOV @Ri,#data16MOV DPTR,#data1617MOV C,bit18MOV bit,C

19MOVC A,@A+DPTR2021222324252627282930313233343536373839

MOVC A,@A+PCMOVX A,@RiMOVX A,@DPTRMOVX @Ri,AMOVX @DPTR,A PUSH directPOP direct

XCH A,RnXCH A,directXCH A,@RiXCHD A,@Ri

2.逻辑运算指令(35条)ANL A,RnANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#dataANL C,bitANL C,/bitORL A,Rn

操作

1.数据传送指

A<-Rn

A<-(direct)A<-(Ri)A<-#dataRn<-A

Rn<-(diret)Rn<-#data(direct)<-A(direct)<-Rn

(direct)<-(direct)(direct)<-(Rn)(direct)<-#data(Ri)<-A

(Ri)<-(direct)(Ri)<-#dataDPTR<-#data16C<-bitbit<-C

A<-(A+DPTR)A<-(A+DPTR);PC<-PC+1A<-(Ri)A<-(DPTR)(Ri)<-A(DPTR)<-ASP<-SP+1;

(SP)<-(direct)

(direct)<-(SP); SP<-SP-1;A<-->Rn

A<-->(direct)A<-->(Ri)

A[3..0]<-->(Ri)[3..0]A<-A^Rn

A<-A^(direct)A<-A^(Ri)A<-A^#data

(direct)<-(direct)^A(direct)<-(direct)^#databit<-bit^Cbit<-/bit^CA<-A|Rn

404142434445474849505152535455565758596061626365666768697071727374757677787980818283ORL A,directORL A,@RiORL A,#dataORL direct,AORL direct,#dataORL C,bitORL C,/bitXRL A,RnXRL A,directXRL A,@RiXRL A,#dataXRL direct,AXRL direct,#dataSETB CSETB bitCLR ACLR CCLR bitCPL ACPL CCPL bitRL ARLC ARR ARRC ASWAP A

3.算术运算指令(24条)ADD A,RnADD A,directADD A,@RiADD A,#dataADDC A,RnADDC A,directADDC A,@RiADDC A,#dataSUBB A,RnSUBB A,directSUBB A,@Ri SUBB A,#dataINC AINC RnINC directINC @RiINC DPTRDEC A

A<-A|(direct)A<-A|(Ri)A<-A|#data

(direct)<-(direct)|A(direct)<-(direct)|#dataC<-C|bitC<-C|/bitA<-A⊕Rn

A<-A⊕(direct)A<-A⊕(Ri)A<-A⊕#data

(direct)<-(direct)⊕A(direct)<-(direct)⊕#dataC<-1bit<-1A<-00HC<-0bit<-0A<-/AC<-/Cbit<-/bitA<-A<<1

C A<- C A << 1A<-A>>1

C A<- C A >> 1A[3..0]<-->A[7..4]A<-A+Rn

A<-A+(direct)A<-A+(Ri)A<-A+#dataA<-A+Rn+C

A<-A+(direct)+CA<-A+(Ri)+CA<-A+#data+CA<-A-Rn-C

A<-A-(direct)-CA<-A-(Ri)-CA<-A-#data-CA<-A+1Rn<-Rn+1

(direct)<-(diret)+1(Ri)<-(Ri)+1DPTR<-DPTR+1A<-A-1

8485868788

DEC RnDEC directDEC @RiMUL ABDIV ABDA A

4.转移指令(22条)AJMP addr 11LJMP addr 16SJMP relJMP @A+DPTRJZ relJNZ relJC relJNC relJB bit,relJNB bit,relJBC bit,relCJNE A,direct,relCJNE A,#data,relCJNE @Ri,#data,relCJNE Rn,#data,relDJNZ Rn,rel DJNZ direct,rel

Rn<-Rn-1

(direct)<-(direct)-1(Ri)<-(Ri)-1BA<-A*B

A<-A/B ; B<-A%BA<-A(BCD decimal)PC<-PC+2;

PC[10..0]<-addr11PC<-PC+3;PC<-addr16PC<-PC+2;PC<-PC+relPC<-A+DPTR

PC<-PC+rel,if A = 0PC<-PC+rel,if A ≠ 0PC<-PC+rel,if C = 0PC<-PC+rel,if C≠ 0PC<-PC+rel,if bit =1PC<-PC+rel,if bit= 0PC<-PC+rel; if bit =1bit<-0;

PC<-PC+rel,if A≠(direct)PC<-PC+rel,if A≠#dataPC<-PC+rel,if (Ri)≠dataPC<-PC+rel,if (Rn)≠dataRn<-Rn - 1;

PC<-PC+rel,if Rn ≠ 0(direct)<-(direct)-1;PC<-PC+rel,if (direct)≠0PC<-PC+2;SP<-SP+1;

(SP)<-PC[7..0];SP<-SP+1;

(SP)<-PC[15..8];PC[10..0]<-addr11;PC<-PC+2;SP<-SP+1;

(SP)<-PC[7..0];SP<-SP+1;

(SP)<-PC[15..8];PC[10..0]<-addr16;PC[15..8]<-(SP);SP<-SP-1;

PC[7..0]<-(SP);SP<-SP-1;

909192939495969799100101102103104105106

ACALL addr 11107

LCALL addr 16108

RET109

RETI110111NOP

伪指令1ORG2DB3DW45678

EQUDATAXDATABITEND

符号说明RnRiaddr16addr11

PC[15..8]<-(SP);SP<-SP-1;

PC[7..0]<-(SP);SP<-SP-1;

指明程序的开始位置定义数据表

定义16位的地址表

给一个表达式或一个字符串起名字

给一个8位的内部RAM起名字给一个8位的外部RAM起名字给一个可寻址的位单元起名字指出源程序到此为止工作寄存器R0-R7工作寄存器R0和R1

16位目标地址,能够转移或调用到KROM的任何地方

11位目标地址,在下条指令的2K范围内转移或跳转

8位地址偏移量,用于SJMP和所有的条件跳转指令,范围-128 ~ +127

片内RAM中的可寻址位和SFR的可寻址位

直接地址,范围片内RAM单元(00H-7FH)和80H-FFH指本条指令的起始位置

relBitdirect$

说明

传送指令(30条)寄存器送 A 直接字节送A 间接RAM 送A 立接数送 A A 送寄存器直接数送寄存器立即数送寄存器A 送直接字节寄存器送直接字节直接字节送直接字节间接 Rn 送直接字节立即数送直接字节A 送间接 RAM

直接字节送间接RAM立即数送间接 RAM16 位常数送数据指针直接位送进位位进位位送直接位

A+DPTR 寻址程序存贮字节送 AA+PC 寻址程序存贮字节送A外部数据送A(8 位地址)外部数据送A(16 位地址)A 送外部数据(8 位地址)A 送外部数据(16 位地址)直接字节进栈道,SP 加1直接字节出栈,SP 减1寄存器与 A 交换直接字节与A 交换间接Rn 与A 交换

间接Rn 与A 低半字节交换寄存器与到A直接字节与到A间接RAM与到A立即数与到AA与到直接字节

立即数与到直接字节直接位与到进位位

直接位的反码与到进位位寄存器或到A

字节

121212222323112322311111221211121223221

周期

1111121112222121122

代 码E8--EFE5E6--E774F8--FFA8--AF78--7FF588—8F8586;8775F6;F7A6;A776;7790A29293

2832222E2;E3E0F2;F3F0

2C02D01111111112221C8—CFC5C6;C7D6;D758—5F5556;5754525382B048—4F

直接字节或到A间接RAM或到A立即数或到AA或到直接字节

立即数或到直接字节直接位或到进位位

直接位的反码或到进位位寄存器异或到A直接字节异或到A间接RAM异或到A立即数异或到AA异或到直接字节

立即数异或到直接字节进位位置 1直接位置 1A清0

进位位清 0直接位清 0A求反码进位位取反 直接位取反A循环左移一位 A 带进位左移一位A右移一位

A 带进位右移一位A 半字节交换

寄存器加到A 直接字节加到A间接RAM 加到A立即数加到A

寄存器带进位加到 A直接字节带进位加到A间接RAM 带进位加到A立即数带进位加到 A从A 中减去寄存器和进位从A 中减去直接字节和进位从A 中减去间接RAM 和进位从A 中减去立即数和进位A加1

寄存器加 1直接字节加1间接RAM 加1数据指针加1A减1

21223221212231211211211111121212121212112111

11112221111121111111111111111111111111111121

4546;4744424372A068—6F6566;676263D3D2E4C3C2F4B3B22333313C428—2F2526;272438—3F3536;373498—9F9596;97944

08—0F506;07A314

寄存器减 1直接字节减1间接RAM 减1A乘BA被B除

A十进制调整绝对转移长转移短转移

相对于DPTR 间接转移若A=0 则转移若A≠0 则转移若C=1 则转移若C≠1 则转移

若直接位=1 则转移若直接位=0 则转移若直接位=1 则转移且清除直接数与 A 比较,不等转移立即数与 A 比较,不等转移立即数与间接RAM比较,不等转移立即数与寄存器比较不等转移寄存器减 1 不为0 转移直接字节减1 不为 0 转移

12111123212222333333323

11144118—1F1516;17A484D4

2*122280222222273607040502030

2102222B5B4B6;B7B8—BF

2D8—DF2D5

绝对子程序调用22*1

子程序调用3212

子程序调用返回1222

中断程序调用返回空操作

11

23210

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务