最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

8051指令集

来源:动视网 责编:小OO 时间:2025-09-27 06:21:03
文档

8051指令集

8051指令集資料轉移指令MOV移動MOVC程式記憶體移動MOVX外部RAM和扩展I/O口与累加器A的数据传送指令PUSH放入堆疊POP由堆疊取回XCH8位元交換XCHD低4位元交換SWAP高低4位元交換算術指令ADD兩數相加ADDC兩數相加再加CSUBB兩數相減再減CINC加一指令DEC減一指令MUL(MULAB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存BDIV(DIVAB除法指令仅此一条)相除指令,所得商存A,余数存BDA(DAA只此一条指令)調整為十進數邏輯
推荐度:
导读8051指令集資料轉移指令MOV移動MOVC程式記憶體移動MOVX外部RAM和扩展I/O口与累加器A的数据传送指令PUSH放入堆疊POP由堆疊取回XCH8位元交換XCHD低4位元交換SWAP高低4位元交換算術指令ADD兩數相加ADDC兩數相加再加CSUBB兩數相減再減CINC加一指令DEC減一指令MUL(MULAB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存BDIV(DIVAB除法指令仅此一条)相除指令,所得商存A,余数存BDA(DAA只此一条指令)調整為十進數邏輯
8051指令集

資料轉移指令 

MOV 移動

MOVC 程式記憶體移動

MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令

PUSH 放入堆疊

POP 由堆疊取回

XCH 8位元交換

XCHD 低4位元交換 

SWAP 高低4位元交換 

算術指令 

ADD 兩數相加

ADDC 兩數相加再加C

SUBB 兩數相減再減C

INC 加一指令

DEC 減一指令

MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B

DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B

DA (DA A 只此一条指令)調整為十進數 

邏輯指令 

ANL做AND(逻辑与)運算

ORL做OR(逻辑或)運算

XRL 做(逻辑异或)運算

CLR 清除為0

CPL 取反指令

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 設定為1

ORG 程序开始,规定程序的起始地址

END 程序结束

EQU  等值指令(先赋值后使用)例:SUM EQU 30H

DB 定义字节指令

DW 定义字内容

DS 定义保留一定的存贮单元数目   

BIT 位地址符号指令 例:SAM BIT P1.0

RET 子程序返回指令

RETI 中断子程序返回指令

$ 本条指令地址

算术运算指令 

指令 说明 周期 

ADD A,Rn A←A+Rn 12 

ADD A,direct A←A+direct 12 

ADD A,@Ri A←A+Ri 12 

ADD A,#data A←A+data 12 

ADDC A,Rn A←A+Rn+C 12 

ADDC A,direct A←A+direct+C 12 

ADDC A,@Ri A←A+Ri+C 12 

ADDC A,#data A←A+data+C 12 

SUBB A,Rn A←A-Rn-C 12 

SUBB A,direct A←A-direct-C 12 

SUBB A,@Ri A←A-Ri-C 12 

SUBB A,#data A←A-data-C 12 

INC A A←A+1 12 

INC Rn Rn←Rn+1 12 

INC direct direct←direct+1 12 

INC @Ri @Ri←@Ri+1 12 

INC DPTR DPTR←DPTR+1 12 

DEC A A←A-1 12 

DEC Rn Rn←Rn-1 12 

DEC direct direct←direct-1 12 

DEC @Ri @Ri←@Ri-1 12 

MUL AB 两个无符号的8位数据相乘,其中高阶8位放入B缓存器,低阶8位则放入累积器ACC 24 

DIV AB 两个无符号的8位数据相除,把ACC值除以B缓存器值,商数放回ACC,余数放在B 48 

DA A 累加器作十进制调整 48 

      

      

逻辑运算指令 

指令 说明 周期 

ANL A,Rn A←A and Rn 12 

ANL A,direct A←A and direct 12 

ANL A,@Ri A←A and Ri 12 

ANL A,#data A←A and data 12 

ANL direct,A direct←direct and A 12 

ANL direct,#data direct←direct and data 24 

ORL A,Rn A←A or Rn 12 

ORL A,direct A←A or direct 12 

ORL A,Rn A←A or Rn 12 

ORL A,@Ri A←A or Ri 12 

ORL A,#data A←A or data 12 

ORL direct,A direct←direct or A 12 

ORL direct,#data direct←direct or data 24 

XRL A,Rn A←A xor Rn 12 

XRL A,direct A←A xor direct 12 

XRL A,@Ri A←A xor Ri 12 

XRL A,#data A←A xor data 12 

XRL direct,A direct←direct xor A 12 

XRL direct,#data direct←direct xor data 12 

CLR A 清除累加器 12 

CPL A 累加器反相 12 

RL A 累加器向左旋转 12 

RLC A 累加器和C左旋 12 

RR A 累加器向右旋转 12 

RRC A 累加器和C右旋 12 

SWAP A 累加器的高低四位互换 12 

      

      

数据转移指令 

指令 说明 周期 

MOV A,Rn A←Rn 12 

MOV A,direct A←direct 12 

MOV A,@Ri A←Ri 12 

MOV A,#data A←data 12 

MOV Rn,A Rn←A 12 

MOV Rn,direct Rn←direct 24 

MOV Rn,#data Rn←data 12 

MOV direct,A direct←A 12 

MOV direct,Rn direct←Rn 24 

MOV direct,direct direct←direct 24 

MOV direct,@Ri direct←Ri 24 

MOV direct,#data direct←data 24 

MOV @Ri,A Ri←A 12 

MOV @Ri,direct Ri←direct 24 

MOV @Ri,#data Ri←data 12 

MOV DPTR,#data 16 Ri←16bit data 24 

MOVC A,@A+DPTR A←程序内存的数据 24 

MOVC A,@A+PC A←程序内存的数据 24 

MOVX A,@Ri A←外部RAM的数据(8bit地址) 24 

MOVX A,@DPTR A←外部RAM的数据(16bit地址) 24 

MOVX @Ri,A 外部的RAM(8bit)←A 24 

MOVX @DPTR,A 外部的RAM(16bit)←A 24 

PUSH direc 推迭区←direct 24 

POP direc direct←堆栈区 24 

XCH A,Rn A和Rn互换 12 

XCH A,direct A和direct互换 12 

XCH A,@Ri A和Ri互换 12 

XCHD A,@Ri A和Ri的低四位互换 12 

      

      

位运算指令 

指令 说明 周期 

CLR C 清除进位旗标 12 

CLR bit 清除直接位 12 

SETB C 设定进位旗标 12 

SETB bit 设定直接位 12 

CPL C 进位旗标反相 12 

CPL bit 直接位反相 12 

ANL C,bit C←C and bit 24 

ANL C,/bit C←C and bit(反相) 24 

ORL C,bit C←C or bit 24 

ORL C,/bit C←C or bit(反相) 24 

MOV C,bit C←bit 12 

MOV bit,C bit←C 24 

JC rel 若C=1跳至rel 24 

JNC rel 若C=0跳至rel 24 

JB bit,rel 若bit=1跳至rel 24 

JNB bit,rel 若bit=0跳至rel 24 

JBC bit,rel 若bit=1跳至rel,且清除此位 24 

      

   

      

程序跳跃指令 

指令 说明 周期 

ACALL addr11 绝对式子程序呼叫 24 

LCALL addr16 远程子程序呼叫 24 

RET 从子程序返回 24 

RETI 从中断子程序返回 24 

AJMP addr11 绝对式跳跃 24 

LJMP addr16 远程跳跃 24 

SJMP rel 短程跳跃 24 

JMP @A+DPTR 间接跳跃 24 

JZ rel 若A=0跳至rel 24 

JNZ rel 若A不等于0跳至rel 24 

CJNE A,direct,rel 若A不等于direct跳至rel 24 

CJNE A,#data,rel 若A不等于data跳至rel 24 

CJNE Rn,#data,rel 若Rn不等于data跳至rel 24 

CJNE @Ri,#data,rel 若Ri不等于data跳至rel 24 

DJNZ Rn,rel Rn减1不等于0跳至rel 24 

DJNZ direct,rel direct减1不等于0跳至rel 24 

NOP 没动作 12 

      

      

缩写符号说明 

缩写符号 说明 备注 

Rn 缓存器R0-R7   

direct 8bit内部数据存储器,包括   

1.内部数据存储器(00-7F)的地址 

2.特殊功能缓存器(80-FF)的地址,如P0,PSW,TMOD..等 

@Ri 由缓存器R0或R1所寻址的内部RAM数据   

#data 8bit常数   

#data 16 16bit常数   

addr 16 16bit的目的地址,可使跳跃指令跳跃k   

addr 11 11bit的目的地址,可使跳跃指令跳跃2k   

rel 具正负号的8位地址偏移量,用于相对地址的跳跃   

bit 1个bit:只所有可以位寻址的位。(如PSW.7为CY旗号)   

A 累加器(累积器)   

C或CY 进位旗号   

AC 辅助进位旗号   

Bb 指定位B0-B7   

D 半字节(4Bit)助忆符号   

F0 旗号0   

I 中断   

PC 程序计数器   

P0 I/O port 0   

P1 I/O port 1   

P2 I/O port 2   

P3 I/O port 3   

PSW 程序状态字组(类似于旗号缓存器)   

SP 堆栈指针缓存器   

B 缓存器B   

DPTR 数据指针缓存器   

X 外部滋要内存的助忆符号   

@ 间接地址符号   

$ 程序计数迄目前的值   

reg 缓存器 

8051 INSTRUCTION SET 

1.Arithmetic operations:

Mnemonic       Byte  Cyc

ADD A,@Ri       1     1 

ADD A,Rn       1     1 

ADD A,direct    2     1 

ADD A,#data     2     1 

ADDC A,@Ri      1      1 

ADDC A,Rn      1      1 

ADDC A,direct   2      1 

ADDC A,#data    2      1 

SUBB A,@Ri     1      1 

SUBB A,Rn      1      1 

SUBB A,direct   2      1 

SUBB A,#data    2      1 

INC A        1      1

INC @Ri       1      1

INC Rn       1      1

INC DPTR      1      1

INC direct    2       1

INC direct    2       1

DEC A        1       1

DEC @Ri       1       1

DEC Rn        1       1 

DEC direct     2       1

MUL AB        1      4

DIV AB        1       4

DA A         1      1

2.Logical opreations:

ANL A,@Ri       1        1

XRL A,@Ri       1        1

ANL A,Rn        1        1

XRL A,Rn        1        1

ANL A,direct     2        1

XRL A,direct     2        1

ANL A,#data      2        1 

XRL A,#data      2        1

ANL direct,A     2        1 

XRL direct,A     2        1

ANL direct,#data 3        2 

XRL direct,#data 3        2

ORL A,@Ri        1        1

CLR A            1        1

ORL A,Rn         1        1

CPL A            1        1

ORL A,direct     2        1 

RL A             1        1

ORL A,#data      2        1  

RLC A            1        1

ORL direct,A     2        1   

RR A             1        1

ORL direct,#data 3        2 

RRC A            1        1

SWAP A           1        1

3.Data transfer:

Mnemonic        Byte     Cyc

MOV A,@Ri        1        1 

MOV DPTR,#data16 3        2

MOV A,Rn         1        1 

MOVC A,@A+DPTR   1        2

MOV A,direct     2        1 

MOVC A,@A+PC     1        2

MOV A,#data      2        1 

MOVX A,@Ri       1        2

MOV @Ri,A        1        1

MOVX A,@DPTR     1        2

MOV @Ri,direct   2        2 

MOVX @Ri,A       1        2

MOV @Ri,#data    2        1 

MOVX @DPTR,A     1        2

MOV Rn,A         1        1 

PUSH direct      2        2

MOV Rn,direct    2        2 

POP direct       2        2

MOV Rn,#data     2        1 

XCH A,@Ri        1        1

MOV direct,A     2        1 

XCH A,Rn         1        1

MOV direct,@Ri   2        2 

XCH A,direct     2        1

MOV direct,Rn    2        2 

XCHD A,@Ri       1        1

MOV direct,direct3        2

MOV direct,#data 3        2

4.Boolean variable manipulation:

Mnemonic        Byte            Cyc

CLR C           1               1 

ANL C,bit       2               2

SETB C          1               1 

ANL C,/bit      2               2

CPL C           1               1 

ORL C,bit       2               2

CLR bit         2               1 

ORL C,/bit      2               2

SETB bit        2               1 

MOV C,bit       2               1

CPL bit         2               1 

MOV bit,C       2               2

5.Program and machine control:

Mnemonic        Byte            Cyc

NOP             1               1 

JZ rel          2               2

RET             1               2 

JNZ rel         2               2

RETI            1               2 

JC rel          2               2

ACALL addr11    2               2 

JNC rel         2               2

AJMP addr11     2               2 

JB bit,rel      3               2

LCALL addr16    3               2 

JNB bit,rel     3               2

LJMP addr16    3              2 

JBC bit,rel   3              2

SJMP rel      2               2 

CJNE A,direct,rel  3           2

JMP @A+DPTR    1               2 

CJNE A,#data,rel 3              2

DJNZ Rn,rel    2            2 

CJNE @Ri,#data,rel 3           2

DJNZ direct,rel   3          2 

CJNE Rn,#data,rel  3           2     

文档

8051指令集

8051指令集資料轉移指令MOV移動MOVC程式記憶體移動MOVX外部RAM和扩展I/O口与累加器A的数据传送指令PUSH放入堆疊POP由堆疊取回XCH8位元交換XCHD低4位元交換SWAP高低4位元交換算術指令ADD兩數相加ADDC兩數相加再加CSUBB兩數相減再減CINC加一指令DEC減一指令MUL(MULAB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存BDIV(DIVAB除法指令仅此一条)相除指令,所得商存A,余数存BDA(DAA只此一条指令)調整為十進數邏輯
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top