单片机汇编语言指令查表.docx

上传人:b****5 文档编号:30728344 上传时间:2023-08-19 格式:DOCX 页数:24 大小:21.64KB
下载 相关 举报
单片机汇编语言指令查表.docx_第1页
第1页 / 共24页
单片机汇编语言指令查表.docx_第2页
第2页 / 共24页
单片机汇编语言指令查表.docx_第3页
第3页 / 共24页
单片机汇编语言指令查表.docx_第4页
第4页 / 共24页
单片机汇编语言指令查表.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机汇编语言指令查表.docx

《单片机汇编语言指令查表.docx》由会员分享,可在线阅读,更多相关《单片机汇编语言指令查表.docx(24页珍藏版)》请在冰豆网上搜索。

单片机汇编语言指令查表.docx

单片机汇编语言指令查表

目录

表1寻址方式与相应的寻址空间2

1.1数据传送指令MOV2

1.2程序存储器取数据指令MOVX,MOVC3

1.3数据交换指令XCH,XCHD,SWAP3

1.4逻辑运算指令ANL,ORL(按位进行)4

续表1.4逻辑运算指令XRLCLRCPLRLRLCRRRRC(按位进行)5

1.5控制转移指令LJMPAJMPSJMPJMPJZJNZCJNE6

续表1.5控制转移指令DJNZLCALLACALLRETRETINOP7

1.6布尔处理(位操作)指令CLRSETBCPLANLORL8

续表1.6布尔处理(位操作)指令JCJNCJBJNBJBC9

1.7堆栈操作指令PUSHPOP10

2.MCS-51系列单片机算术运算指令表ADDADDCSUBBINCDECMULDIVDA10

 

表1寻址方式与相应的寻址空间

方式

利用的变量

使用的空间

寄存器

R0∽R7,A,B,CY,DPTR

直接寻址

direct

片内RAM低128字节特殊功能寄存器SFR

寄存器间址

@Ro,@R1SP@R0,@R1,@DPTR

片内RAM片外RAM

立即数

#data

程序存储器

基址加变址

@A+PC@A+DPTR

程序存储器

相对寻址

PC+rel

程序存储器

位寻址

bit

片内RAM的20H∽2FH部分SFR

目的操作数

汇编指令

机器码

功能

字节数

机器周期

A累加器

立即数送A

MOVA,#data

74Hdata

data传至A

2

1

内部RAM或SFR内容送A

MOVA,direct

E5Hdirect

(direct)传至A

2

1

寄存器内容送A

MOVA,Rn(n=0∽7)

E8H∽EFH11101rrr

(Rn)传至A

1

1

内部RAM内容送A

MOVA,@Ri(i=0,1)

1110011i

((Ri))传至A

1

1

Direct

内部RAM或SFR

立即数送内部RAM或SFR

MOVdirect,#data

75Hdirectdata

data传至direct

3

2

内部RAM和SFR直接直接传送

MOVdirect,direct

85Hdirectdirect

(direct)传至direct

3

2

累加器内容送内部RAM或SFR

MOVdirect,A

F5Hdirect

(A)传至direct

2

1

寄存器内容送内部RAM或SFR

MOVdirect,Rn(n=0∽7)

10001rrrdirect

(Rn)传至direct

2

2

内部RAM内容送内部RAM或SFR

MOVdirect,@Ri(i=0,1)

1000011idirect

((Ri))传至direct

2

2

Rn寄存器

立即数送寄存器

MOVRn,#data(n=0∽7)

01111rrrdata

data传至Rn

2

1

内部RAM或SFR内容送寄存器

MOVRn,direct(n=0∽7)

10101rrrdirect

(direct)传至Rn

2

2

累加器内容送寄存器

MOVRn,A(n=0∽7)

11111rrr

(A)传至Rn

1

2

@Ri内部RAM

立即数送内部RAM

MOV@Ri,#data(i=0,1)

0111011idata

data传至(Ri)

2

1

内部RAM或SFR内容送内部RAM

MOV@Ri,direct(i=0,1)

1010011idirect

(direct)传至(Ri)

2

2

累加器内容送内部RAM

MOV@Ri,A(i=0,1)

1111011i

(A)传至(Ri)

1

1

DPTR

16位立即数传送指令

MOVDPTR,#data16

90HdataHdataL

data16传至DPTR

3

2

1.1数据传送指令MOV

1.2程序存储器取数据指令MOVX,MOVC

目的操作数

汇编指令

机器码

功能

字节数

机器周期

A

外部数据存储器内容送A

MOVXA,@Ri(i=0,1)

E2HE3H

((Ri))传至A

1

2

A

外部数据存储器内容送A

MOVXA,@DPTR

E0H

((DPTR))传至A

1

2

@Ri

累加器内容送外部数据存储器

MOVX@Ri,A(i=0,1)

F2H,F3H

A传至(Ri)

1

2

DPTR

累加器内容送外部数据存储器

MOVX@DPTR,A

F0H

A传至(DPTR)

1

2

A

以PC为基址寄存器加变址寻址

MOVCA,@A+PC

83H

((A)+(PC))传至A

1

2

A

以DPTR为基址寄存器加变址寻址

MOVCA,@A+DPTR

93H

((A)+(DPTR))传至A

1

2

1.3数据交换指令XCH,XCHD,SWAP

目的操作数

指令

机器码

功能

字节数

机器周期

A

内部RAM或SFR内容与累加器内容互换

XCHA,direct

C5Hdirect

(A)←(direct)

2

1

A

寄存器内容与累加器内容互换

XCHA,Rn(n=1-7)

11001rrr

(A)←(Rn)

1

1

A

内部RAM内容与累加器内容互换

XCHA,@Ri(i=0,1)

1100011i

(A)←((Ri))

1

1

A

内部RAM低4位内容与累加器低4位内容互换

XCHDA,@Ri(i=0,1)

1101011i

(A)0∽3←((Ri))0∽3

1

1

A

累加器高4位与低4位交换

SWAPA

C4H

(A)0∽3←(A)4∽7

1

1

1.4逻辑运算指令ANL,ORL(按位进行)

目的操作数

指令

机器码

功能

字节数

机器周期

逻辑与ANL

A内容∧立即数

ANLA,#data

54H

A←(A)∧#data

2

1

A内容∧内部RAM或SFR

当direct为端口地址P0∽P3时,操作数由端口锁存器读入。

ANLA,direct

55H

A←(A)∧(direct)

2

1

A内容∧寄存器内容

ANLA,Rn(n=0∽7)

58H∽5FH

A←(A)∧(Rn)

1

1

A内容∧内部RAM

ANLA,@Ri(i=0,1)

56H,57H

A←(A)∧((Ri))

1

1

内部RAM或SFR内容∧A内容

当direct为端口地址P0∽P3时,这是一条“读-修改-写”指令,可用累加器A随时修改端口锁存器内容。

ANLdirect,A

52H

direct←(direct)∧(A)

2

1

内部RAM或SFR内容∧立即数

当direct为端口地址P0∽P3时,这是一条“读-修改-写”指令,可令立即数修改端口锁存器内容。

ANLdirect,#data

53H

direct←(direct)∧#data

3

2

逻辑或ORL

A内容∨立即数

ORLA,#data

44H

A←(A)∨#data

2

1

A内容∨内部RAM或SFR

ORLA,direct

45H

A←(A)∨(direct)

2

1

A内容∨寄存器内容

ORLA,Rn(n=0∽7)

48H∽4FH

A←(A)∨(Rn)

1

1

A内容∨内部RAM

ORLA,@Ri(i=0,1)

46H,47H

A←(A)∨((Ri))

1

1

内部RAM或SFR内容∨A内容

当direct为端口地址P0∽P3时,则为“读-修改-写”指令。

ORLdirect,A

42H

direct←(direct)∨(A)

2

1

内部RAM或SFR内容∨立即数

当direct为端口地址P0∽P3时,则为“读-修改-写”指令。

ORLdirect,#data

43H

direct←(direct)∨#data

3

2

续表1.4逻辑运算指令XRLCLRCPLRLRLCRRRRC(按位进行)

目的操作数

指令

机器码

功能

字节数

机器周期

逻辑异或XRL

A内容⊕立即数

XRLA,#data

64H

A←(A)⊕#data

2

1

A内容⊕内部RAM或SFR

XRLA,direct

65H

A←(A)⊕(direct)

2

1

A内容⊕寄存器内容

XRLA,Rn(n=0∽7)

68H∽6FH

A←(A)⊕(Rn)

1

1

A内容⊕内部RAM

XRLA,@Ri(i=0,1)

66H,67H

A←(A)⊕((Ri))

1

1

内部RAM或SFR内容⊕A内容

当direct为端口地址P0∽P3时,这是一条“读-修改-写”指令。

XRLdirect,A

62H

direct←(direct)⊕(A)

2

1

内部RAM或SFR内容⊕立即数

当direct为端口地址P0∽P3时,这是一条“读-修改-写”指令。

XRLdirect,#data

63H

direct←(direct)⊕#data

3

2

累加器A清零

CLRA

E4H

A←00H

1

1

累加器内容按位取反

CPLA

F4H

A←(A的反码)

1

1

移位指令

A内容循环左移一位

RLA

23H

原A7移到A0

1

1

A内容+CY循环左移一位

RLCA

33H

1

1

A内容循环右移一位

RRA

03H

1

1

A内容+CY循环右移一位

RRCA

13H

1

1

 

1.5控制转移指令LJMPAJMPSJMPJMPJZJNZCJNE

目的操作数

指令

机器码

功能

字节数

机器周期

无条件转移

长转移

LJMPAddr16

02HAddr16

PC←Addr16实现程序转移

3

1

绝对转移

AJMPAddr11

Addr10∽800001,

Addr7∽0

PC←(PC)+2

PC10∽0←Addr10∽0,PC15∽11不变

2

1

短转移

SJMPrel

80Hrel偏移量

PC←(PC)+2+rel

2

1

间接长转移

JMP@A+DPTR

73H

PC←(A)+(DPTR)

1

1

1、rel偏移量是一个8位带符号补码数,范围为-128-+127,为正时向前转移,为负则向后转移。

2、JMP指令:

累加器A中8位无符号数与DPTR的16位数相加,和送PC,控制程序转移。

指令不改变A和DPTR的内容。

条件转移

A为零则转移

JZrel

60Hrel

PC←(PC)+2

若(A)=0,则PC←(PC)+rel。

若(A)≠0,顺序执行

2

2

A非零则转移

JNZrel

70Hrel

PC←(PC)+2

若(A)≠0,则PC←(PC)+rel。

若(A)=0,顺序执行

2

2

比较转移

A内容与立即数比较

CJNEA,#data,rel

不相等则转移

B4Hdatarel

PC←(PC)+3

若(A)>#data,则PC←(PC)+rel,CY=0。

若(A)<#data,则PC←(PC)+rel,CY=1。

若(A)=#data,顺序执行,CY=0。

3

2

A内容与内部RAM或SFR内容比较

CJNEA,direct,rel

不相等则转移

B5Hdirectrel

PC←(PC)+3

若(A)>direct,则PC←(PC)+rel,CY=0。

若(A)<direct,则PC←(PC)+rel,CY=1。

若(A)=direct,顺序执行,CY=0。

3

2

寄存器内容与立即数比较

CJNERn,#data,rel

(n=0∽7)

不相等则转移

10111rrr即B8H∽BFH

datarel

PC←(PC)+3

若(Rn)>#data,则PC←(PC)+rel,CY=0。

若(Rn)<#data,则PC←(PC)+rel,CY=1。

若(Rn)=#data,顺序执行,CY=0。

3

2

续表1.5控制转移指令DJNZLCALLACALLRETRETINOP

目的操作数

指令

机器码

功能

字节数

机器周期

比较转移

内部RAM内容与立即数比较

CJNE@Ri,#data,rel

(i=0,1)

1011011i即B6H,B7H

datarel

不相等则转移

PC←(PC)+3

若(Ri)>#data,则PC←(PC)+rel,CY=0。

若(Ri)<#data,则PC←(PC)+rel,CY=1。

若(Ri)=#data,顺序执行,CY=0。

3

2

寄存器内容减1

DJNZRn,rel(n=0-7)

11011rrrrel

寄存器内容-1≠0则转移

Rn←(Rn)-1

PC←(PC)+2

若(Rn)≠0,则PC←(PC)+rel。

若(Rn)=0,顺序执行

2

2

内部RAM或SFR内容减1

DJNZdirect,rel

D5Hdirectrel

内部RAM或SFR内容-1≠0则转移

direct←(direct)-1

PC←(PC)+3

若(direct)≠0,则PC←(PC)+rel。

若(direct)=0,顺序执行

3

2

子程序调用

长调用

LCALLAddr16

12HAddr16

PC←(PC)+3

SP←(SP)+1,SP←PC7∽0

SP←(SP)+1,SP←PC15∽8

PC←指令中Addr16

3

2

绝对调用

ACALLAddr11

Addr10∽810001

Addr7∽0

PC←(PC)+2

SP←(SP)+1,SP←PC7∽0

SP←(SP)+1,SP←PC15∽8

PC10∽0←指令中a10∽0

2

2

返回指令

子程序返回

RET

0010001022H

PC15∽8←((SP)),SP←(SP)-1

PC7∽0←((SP)),SP←(SP)-1

1

2

中断返回

RETI

0011001032H

PC15∽8←((SP)),SP←(SP)-1

PC7∽0←((SP)),SP←(SP)-1

1

2

空操作

可用于延时、等待

NOP

0000000000H

PC←(PC)+1

1

1

1.6布尔处理(位操作)指令CLRSETBCPLANLORL

目的操作数

指令

机器码

功能

字节数

机器

周期

位传送

CY←直接寻址位

MOVC,bit

A2Hbit

CY←(bit)

2

1

直接寻址位←CY

MOVbit,C

92Hbit

(bit)←CY

直接寻址位是P0∽P3中某一位时,它是“读-修改-写”指令。

2

1

清零

清进位

CLRC

C3H

CY←0

1

1

清直接寻址位

CLRbit

C2Hbit

bit←0

2

1

置位

置位进位

SETBC

D3H

CY←1

1

1

置位直接寻址位

SETBbit

D2Hbit

bit←1

2

1

取反

进位标志取反

CPLC

B3H

CY←CY的反码

1

1

直接寻址位取反

CPLbit

B2Hbit

bit←bit的反码

2

1

逻辑与

ANLC,bit

82H

CY←(CY)∧(bit)

2

2

ANLC,/bit

B0Hbit

CY←(CY)∧(bit的反)

2

2

逻辑或

ORLC,bit

72Hbit

CY←(CY)∨(bit)

2

2

ORLC,/bit

A0Hbit

CY←(CY)∨(bit的反)

2

2

1、指令中位地址若为0∽127,该位应在内部RAM中(20H∽2fH单元);位地址若为128∽255,该位应在特殊功能寄存器区。

2、bit前的斜杠“/”表示对bit取反,并不改变(bit)内容。

 

续表1.6布尔处理(位操作)指令JCJNCJBJNBJBC

目的操作数

指令

机器码

功能

字节数

机器

周期

条件

转移

进位标志位转移

JCrel

40Hrel

PC←(PC)+2

若(CY)=1,则PC←(PC)+rel。

若(CY)=0,顺序执行。

2

2

进位标志为零转移

JNCrel

50Hrel

PC←(PC)+2

若(CY)=0,则PC←(PC)+rel。

若(CY)=1,顺序执行。

2

2

直接寻址位置位转移

JBbit,rel

20Hbitrel

PC←(PC)+3

若(bit)=1,则PC←(PC)+rel。

若(bit)=0,顺序执行。

3

2

直接寻址位为零转移

JNBbit,rel

30Hbitrel

PC←(PC)+3

若(bit)=0,则PC←(PC)+rel。

若(bit)=1,顺序执行。

3

2

直接寻址位置位转移,并将该位复位

JBCbit,rel

10Hbitrel

PC←(PC)+3

若(bit)=1,则PC←(PC)+rel,且(bit)←0。

若(bit)=0,顺序执行。

3

2

 

1.7堆栈操作指令PUSHPOP

类型

汇编指令

机器码

功能

字节数

机器周期

进栈

PUSHdirect

C0Hdirect

(SP)+1传至SP

(direct)传至(SP)

2

2

出栈

POPdirect

DoHdirect

((SP))传至direct

(SP)-1传至SP

2

2

 

2.MCS-51系列单片机算术运算指令表ADDADDCSUBBINCDECMULDIVDA

类型

汇编指令

机器码

功能

字节数

机器周期

不带进位加法指令ADD

A内容+立即数

ADDA,#data

24Hdata

(A)+data传至A

2

1

A内容+内部RAM或SFR

ADDA,direct

25Hdata

(A)+(direct)传至A

2

1

A内容+寄存器内容

ADDA,Rn(n=0-7)

00101rrr

(A)+Rn)传至A

1

1

A内容+内部RAM内容

ADDA,@Ri(i=0,1)

0010011i

(A)+((Ri))传至A

1

1

1、相加过程中,若位3和位7向高位有进位,则半进位标志AC和进位标志CY将置位,否则就复位。

2、无符号数相加:

和数大于255,则CY=1,否则CY=0。

3、有符号数补码相加:

和数超出单字节表示范围(-128∽127)则溢出标志OV=1,表示有溢出,否则OV=0。

带进位加法指令

ADDC

A内容+立即数+CY

ADDCA,#data

34Hdata

(A)+data+CY传至A

2

1

A内容+内部RAM或SFR+CY

ADDCA.direct

35Hdirect

(A)+data+CY传至A

2

1

A内容+寄存器内容+CY

ADDCA,Rn(n=0-7)

00111rrr

(A)+(Rn)+CY传至A

1

1

A内容+内部RAM内容+CY

ADDCA,@Ri(i=0,1)

0011011i

(A)+((Ri))+CY传至A

1

1

带进位加法指令,多用于多字节加法运算。

减法指令SUBB

A-立即数-借位标志

SUBBA,#data

94Hdata

(A)-data-CY传至A

2

2

A-内部RAM-借位标志

SUBBA,direct

95Hdirect

(A)-(direct)-CY传至A

2

1

A-寄存器-借位标志

SUBBA,Rn(n=0-7)

10011rrr

(A)-(Rn)-CY传至A

1

1

A-内部RAM-借位标志

SUBBA,@Ri(i=0,1)

1001011i

(A)-((Ri))-CY传至A

1

1

1、带借位减法指令,当累加器A的内容减去一个字节操作数、借位标志时,若够减,则CY-0;否则CY=1。

2、借助CY标志,可实现多字节减法运算。

3、当位3发生借位时,AC=1,否则AC=0;当位7和位6不同时发生借位时,OV=1,否则OV=0。

加1指令INC

累加器内容+1

INCA

04H

(A)+1传至A

1

1

内部RAM或SFR内容+1

INCdirect

05Hdirect

(direct)+1传至A

2

1

寄存器内容+1

INCRn(n=0-7)

00001H

(Rn)+1传至A

1

1

内部RAM内容+1

INC@Ri(i=0,1)

0000011i

((Ri))+1传至A

1

1

数据指针DPTR内容+1

INCDPTR

A3H

(DPTR)+1传至A

1

2

不影响任何标志位。

减1指令DEC

累加器内容-1

DECA

14H

(A)-1传至A

1

1

内部RAM或SFR内容-1

DECdirect

15Hdirect

(direct)-1传至A

2

1

寄存器内容-1

DECRn(n=0-7)

00011rrr

(Rn)-1传至A

1

1

内部RAM内容-1

DEC@Ri(i=0,1)

0001011i

((Ri))-1传至A

1

1

1、减量指令,将指定操作数减1,若原来为00H,减1后将下溢为FFH,不影响标志位。

2、该指令用于修改端口P0-P3时,用作原始口数据的值将从口锁存器读入,而不是从端口引脚读入。

乘法指令MUL

(8位无符号数)

CY=0

积的高8位存于B,低8位存于A。

若积<255,则OV=0,否则OV=1。

MULAB

A4H

(A)x(B)传至A

1

4

除法指令DIV

(8位无符号数)

CY=0,OV=0。

商在A中,余数在B中。

当除数为0时,OV=1,说明除法有溢出。

DIVAB

84H

(A)除以(B)传至A(商)B(余数)

1

4

调整指令DA

十进制调整

DAA

D4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1