MCS-51单片机指令关键系统
MCS-51指令系统
❖ 目的操作数寻址方式(3种):
直接寻址、寄存器寻址、寄存器间接寻址
除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响
标志位。2022/2/15
16
3.3.1 十六位数的传递指令(1条)
MOV DPTR,#data16
8051是一种8位机,这是唯一的一条16位立即数传递指 令。功能:将一个16位的立即数送入DPTR中去。其中 高8位送入DPH,低8位送入DPL。
2022/2/15
2
常用符号 Rn:工作寄存器中的寄存器R0、R1…R7之一,
Ri:工作寄存器中的寄存器R0或R1
#data:8位立即数
#data16:16位立即数 direct:片内RAM或SFR的地址(8位)
@间接寻址寄存器
Bit:片内RAM或SFR的位地址 addr11:11位目的地址
addr16:16位目的地址
者内容相加,结果作为操作数的地址。
常用于查表操作。 ❖ MCS-51
操作数在程 序存储器中
MOVC A, @A+DPTR ;(A+DPTR) →A
MOVC A, @A+PC ; PC+1 →PC,(A+PC)→A
2022/2/15
10
如:MOVC A,@A+DPTR 设DPTR=2000H,A=E0H
常用于跳转指令。 如: JC 23H 若C=0,不跳转; C=1,跳转.
2022/2/15
12
如:JC 23
程序存储区
1000H 40 1001H 23 1002H 30
当前PC …
…
1024H 47 1025H 45
指令代码
23H
MCS-51指令系统
4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,
MCS-51单片机的指令系统
整理ppt
12
4.2 寻址方式
51汇编语言有42种操作码助记符,用来描述33种操作功 能。一种操作码可以使用一种以上的数据类型,又由于 助记符规定了其访问的存储器空间,所以一种功能可能 有几个助记符(如MOV、MOVX、MOVC)。功能助记 符与寻址方式组合,得到111条指令。
整理ppt
13
4.2 寻址方式
1)无操作数单字节指令
这类指令只有操作码字段,操作数隐含在操作码中。
例如:INC DPTR
指令码为 :
数据指针隐含其中
整理ppt
6
指令的组成及字节数
2)含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄 存器号的字段组成。 例如;MOV A,Rn 指令码为:
其中,rrr为寄存器Rn的编号
整理ppt
2
4.1 指令和指令程序
“指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
与CPU的能力、使用的方便灵活性密切相关。 指令的记忆问题?指令本身是二进制代码。
例如以下的51单片机指令:
把10放到累 740AH 加器A中 为பைடு நூலகம்便于记忆 指令助
A加20,结 果仍在A中
整理ppt
8
指令的组成及字节数
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
整理ppt
9
指令的组成及字节数
2)8位地址和8位数据 例如:MOV 74H,#0FFH 指令码为:
在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。
第三章 MCS-51系列单片机指令系统
二. 机器语言指令格式
操作码 [操作数1] [操作数2]
单片机有单字节、双字节和三字节指令。
汇编语言指令中操作码和操作数是指令主体,称为
指令可执行部分,指令表中可查出对应指令代码。 举例:
汇编语言: MOV MOV MOV A,R0 R6,#32H 40H,#100H 机器语言: E8H 7E 32H 75 40 64H 11101000 01110101 01111110 01000000 00110010 01100100
MOV A,40H ;A(40H)
例:设存储器两个单元的内容如图所示, 执行指令 MOV A,40H后 A = 56H? 直接寻址方式对数据操作时,地址是 固定值,而地址所指定的单元内容为 变量形式。
bit @
:特殊目的寄存器或内部数据RAM中可直接寻址的位。 :间接寻址方式中,表示间址寄存器的符号
/ :位操作指令中,表示对该位先取反再参与操作,但不影 响该位原值。 X :片内RAM的直接地址或寄存器 (X) :在间接寻址方式中,表示直接地址X中的内容;在间接 寻址方式中, 表示由间址寄存器X指出的地址单元中的内容。 → ←
直接寻址
例:MOV A,3AH(操作码:E5)
可以直接寻址的存储器主要有特殊功能寄存器SFR、 内部数据存储器及位地址空间。
1000H是假设的该指
令存放的起始地址。
程序存储区 PC:1000H 1001H E5H 3AH 3AH
片内RAM区
ACC 10H 10H
返回
指令操作数是存储器单元地址,数据在存储器单元中。
操作码 PC:1000H 1001H 1002H 90H 3FH A6H 立即数低位 DPH DPH 3FH 3F DPL DPL A6H A6 DPTR
第三章(MCS-51单片机指令系统)
位操作指令 1.位传送指令 MOV C,bit MOV bit,C 2.位置位和清零指令 CLR C
CLR
SETB
bit
C
电气工程学院
SETB bit
3.位运算指令
ANL C,bit ANL C,/bit ORL C,bit ORL C,/bit CPL C CPL bit
电气工程学院
movcaapcmovcaadptr变址寻址中只有两条指令第一个操作数必须是a变址部分必须是a和pc或a和dptr的组电气工程学院324位寻址位寻址是把8位二进制数中的某一位作为操作数看待称之为位寻址movc7fhmovc2fh7mova7fh可位寻址的空间1片内ram区20h2fh共16个单元其中每一位都可单独作为操作数2某些特殊功能寄存器sfr其特征是他们的物理地址应能被8整除共16个分布在80hffh的字节地址电气工程学院324位寻址电气工程学院3333数据传送指令数据传送指令数据传送指令1内部数据传送指令mova30hmovdptr1234h2外部ram数据传送指令movxadptr3外部rom数据传送指令movcaadptrmovcaapc电气工程学院3333数据传送指令数据传送指令direct直接寻址rn工作寄ri间接寻址累加器amovcadptrapcmovxdptr电气工程学院3434堆栈操作指令堆栈操作指令pushdirect
ADD
MOV JMP
A,R1
DPTR,#PMTB @A+DPTR
;A*3
LJMP LJMP
电气工程学院
2.条件转移指令
(1)累加器A判零转移指令
(2)比较条件转移指令(实际上进行减法操作,若A中结果不为零发生跳转) CJNE CJNE A,#data,rel A,direct,rel
第三章MCS51系列单片机指令系统及汇编语言程序设计
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
MCS51指令系统的介绍
(3)增量指令INC
INC INC INC INC A Rn direct @Ri ;A(A)+1 ;Rn (Rn)+1 ;direct (direct)+1 ;(Ri)((Ri))+1
INC
DPTR
;DPTR (DPTR)+1
【例】(A)=12H,(R3)=0FH,(35H)=4AH, (R0)=56H,(56H)=00H 执行如下指令: INC A ;执行后(A)=13H INC R3 ;执行后(R3)=10H INC 35H ;执行后(35H)=4BH INC @R0 ;执行后(56H)=01H
POP DPH POP DPL POP ACC POP PSW 指令执行之后,SP内容修改为60H,而64H、63H、 62、61H单元的内容依次弹出到DPH、DPL、A、PSW中。
5、字节交换指令XCH XCHD SWAP
数据交换主要是在内部RAM单元与累加器A之间进 行,有整字节和半字节两种交换。 (1)整字节交换指令
图3.3 寄存器间接寻址方式示意图
3.2.5 位寻址
位操作指令能对内部RAM中的位寻址区(20H~2FH) 和某些有位地址的特殊功能寄存器进行位操作。
SETB TR0 CLR 00H MOV C,57H ;TR01 ;(00H)0 ;将57H位地址的内容传送到 位累加器C中 ;将5FH位状态与进位位C相与, 结果在C中
(2)带进位加法指令ADDC
ADDC ADDC ADDC A,Rn A,direct A,@Ri ;A(A)+(Rn)+(Cy) ;A(A)+(direct)+(Cy) ;A(A)+((Ri))+(Cy)
第3章 MCS-51指令系统
16
MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(29条)
2. 算术运算指令(24条) 3. 逻辑运算指令(24条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
17
数据传送和交换类指令主要有以下几种:
1. 2. 3.
30H
Eg:MOV 30H,#33H 33H
30H
XX 30H
33H
30H
31H
Eg:MOV 30H,31H
55H
XX
55H
25
A
30H XX
地址
30H 33H
Eg:MOV 30H, A
33H
R0
Eg:MOV 30H,@R0
55H
取出
30H 78H 30H
55H
R3
78H
30H XX
55H
MOV A , 30H
XX 55H
30H
A
6
3、寄存器寻址
寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄 存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用 寄存器中。 e.g.: MOV A,R7 ADD A,R0
DPTR
2000H
DPTR 2000H
XXXX
Eg:将数据指针DPTR指向存于ROM中的表格首地址。
MOV DPTR,#TABLE
27
三、片外数据传递指令
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX A,@Ri ;A ←((Ri))片外 MOVX @DPTR,A ;(DPTR)片外←(A) MOVX @Ri,A ;(Ri)片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。
MCS-51系列单片机的指令系统
51系列单片机指令系统包含5种功能类型的指令,7 种寻址方式,共有111条指令。
addr16 16位目标地址,片外数据存储器或程序存储器以及外 部芯片的地址,用于LCALL和LJMP指令中;
addr11 11位目标地址,片内数据存储器或程序存储器的地址, 用于ACALL和AJMP指令中;
rel 相关地址,8位带符号偏移量,一般是程序存储器字节地址, 通常在跳转类指令中使用,其对应的十进制范围为-128~+127;
立即寻址就是直接给出操作数。
取指令时,即可由程序存储器中直接取得操作数据。51单 片机中除了一条指令(MOV DPTR,#data16)是16位长 的立即数外,其余都是8位的立即数。
例如:MOV A,#30H;无论执行之前A中的内容是多少, 则执行后A=30H。
值得注意的一点是:在立即数寻址中立即数前面必须要加 上一个“#”号,“#”表示其后面内容为立即数而不是一个 字节单元地址。
bit 位地址,针对片内数据存储器中的可位寻址的位使用; DPTR 数据指针,可用做16位的地址寄存器; (X) X指寄存器或十六进制数,则(X)为指向以X寄存器中的内
容为目标地址的单元或以十六进制数据为目标地址的单元; ← 数据传送的方向,将左边的内容送入右边; A 累加器; ACC 直接寻址方式的累加器; B 寄存器B; C 进位标志位,是布尔处理机的累加器,也称为位累加器。
任何一种处理器都必须经过设计人员对
第3章MCS-51单片机指令系统
第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。
第三章MCS-51指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。
MCS-51单片机的指令集(分类)
子程序返回
1
24
RETI
中断返回
1
24
AJMP addr11
绝对短转移
2
24
LJMP addr16
长转移
3
24
SJMP rel
相对转移
2
24
JMP @A+DPTR
相对于DPTR的间接转移
1
24
JZ rel
累加器为零转移
2
24
JNZ rel
累加器非零转移
2
24
CJNE A,direct,rel
累加器与直接地址单元比较,不等则转移
2
12
MOV direct,Rn
寄存器内容送入直接地址单元
2
24
MOV direct,direct
直接地址单元中的数据送入直接地址单元
3
24
MOV direct,@Ri
间接RAM中的数据送入直接地址单元
2
24
MOV direct,#data8
8位立即数送入直接地址单元
3
24
MOV @Ri,A
累加器内容送入间接RAM单元
DEC @Ri
间接RAM内容减1
1
12
MUL A,B
A乘以B
1
48
DIV A,B
A除以B
1
48
DA A
累加器进行十进制转换
1
12
3、逻辑操作类指令
助记符
功能说明
字节数
振荡周期
ANL A,Rn
累加器与寄存器相“与”
1
12
ANL A,direct
累加器与直接地址单元相“与”
第三章 MCS-51单片机指令系统
位操作类指令(17条)
位操作指令实际就是布尔处理机的指令系统,这 为开关量控制提供了非常有效的手段。
位传送
位置位复位
位运算 位控制转移
位数据传送指令(2条)
MOV MOV
C , bit bit,C
例:片内RAM中(20H)=7FH,执行指令
MOV C,07H 则C=0
位置位复位指令(4条)
调用与返回指令组(4条)
长调用指令 绝对调用指令 子程序返回指令
LCALL addr16 ACALL addr11 RET
中断服务程序返回指令 RETI
空操作指令(1条)
NOP
例:把2000H开始的外部RAM单元中的数据送到3000H
开始的外部RAM单元中,数据个数存放在内部RAM 35H单元。
ANL(ORL,XRL) A , { #data ; direct ; @Ri ; Rn }
2. 直接地址单元与累加器A、立即数之间的逻辑操作(6条)
ANL(ORL,XRL) direct , { A ; #data }
清零与取反指令(2条)
清零: 取反:
CLR A CPL A
循环移位指令(4条)
2. 带进位加法指令(4条) ADDC A , { #data ; direct ; @Ri ; Rn }
3. 带借位减法指令(4条) SUBB A , { #data ; direct; @Ri ; Rn }
影响所有标志位状态
例: 执行指令 MOV A , #0C2H ADD A , #0A9H 对PSW相应状态位的影响如下 1 1 1
3.2 MCS-51指令分类介绍
共分5大类,111条指令。
1.数据传送类指令(29条) 2.算术运算类指令(24条) 3.逻辑运算及移位类指令(24条) 4.控制转移类指令(17条) 5.位操作类指令(17条)
第MCS-5单片机指令系统
3.1 单片机指令系统概述
MCS-51单片机指令系统的特点: • (1)指令执行快。 • (2)指令短,约有一半的指令为单字节指令。 • (3)用一条指令即可实现2个一字节的相乘或相除。 • (4)具有丰富的位操作指令。 • (5)可直接用传送指令实现端口的输入输出操作。
;direct(A) ;direct(Rn) ;direct1(direct2) ;direct((Ri)) ;direct#data ;(Ri(A) ;(Ri)(direct) ;(Ri)data ;DPTRdata16
第 3 章 MCS - 51单片机指令系统
片内数据RAM及寄存器的数据传送指令 MOV、PUSH和POP共18条。
(2)半字节交换指令
XCHD A,@Ri SWAP A
;A0~3<=>(Ri)0~3 ;A0~3<=>A4~7
第 3 章 MCS - 51单片机指令系统
第 3 章 MCS - 51单片机指令系统
【例】 将片内RAM 30H单元与40H单元中的内容互换。
• 方法1(直接地址传 送法):
• MOV 31H,30H • MOV 30H,40H • MOV 40H,31H
INC 60H
;将地址60H单元中的内容自加1。
第 3 章 MCS - 51单片机指令系统
3. 寄存器寻址
在该寻址方式中, 参加操作的数存放在寄存器里。寄存 器包括8个工作寄存器R0~R7, 累加器A, 寄存器B、数据指 针DPTR和布尔处理器的位累加器C。 MOV A,Rn ;A(Rn) 其中n为0~7之一,
第 3 章 MCS - 51单片机指令系统
5. 这种寻址方式用于访问程序存储器中的数据表格, 它以 基址寄存器DPTR或PC的内容为基本地址, 加上变址寄存器 A的内容作为操作数的地址, 例如: MOVC A, @DPTR+A JMP @A+DPTR MOVC A, @ PC+A
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SJMP LOOP
;转移到LOOP
TIME: MOV R6,#200
;延时子程序TIME
TIME1:MOV R7,#200
TIME2:NOP
NOP
NOP
DJNZ R7,TIME2
DJNZ R6,TIME1
RET
END
2.1 汇编语言与指令系统简介
一、汇编语言程序设计的意义
什么是程序? 完成某项特定任务的指令的集合。 计算机按程序一条一条地依次执行指令,从而完成指定任务。 要让计算机完成各项任务,就应设计各种程序。 程序设计语言:
MCS-51单片机指令关键 系统
内 部 RAM
A
88H
88H
3A H
图2.2 直接寻址示意图
采用直接寻址的指令如下:
MOV P1,20H
;将20H单元的内容传送到P1口
1. 寄存器寻址 寄存器寻址是指将操作数存放于寄存器中,寄存器包括 工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器 DPTR等。例如,指令MOV R1,A的操作是把累加器A中的 数据传送到寄存器R1中,其操作数存放在累加器A中,所以 寻址方式为寄存器寻址。 如果程序状态寄存器PSW的RS1:RS0=01(选中1组工作 寄存器,对应地址为08H~0FH),设累加器A的内容为20H, 则执行MOV R1,A指令后,内部RAM 09H单元的值就变为 20H,如图2.1所示。
0 9H
A 20H
01 RS1 RS0
图2.1 寄存器寻址示意图
MCS-51单片机指令关键 系统
2. 直接寻址 直接寻址是指把存放操作数的内存单元的地址直接写在 指令中。在MCS-51单片机中,可以直接寻址的存储器主要 有内部RAM区和特殊功能寄存器SFR区。 例如,指令MOV A,3AH执行的操作是将内部RAM 中 地址为3AH的单元内容传送到累加器A中,其操作数3AH就 是存放数据的单元地址,因此该指令是直接寻址。 设内部RAM 3AH单元的内容是88H,那么指令MOV A, 3AH的执行过程如图2.2所示。
rel —— 8位带符号的偏移地址 DPTR —— 16位外部数据指针寄存器
bit —— 可直接位寻址的位
A —— 累加器 B —— 寄存器B C —— 进、借位标志位,或位累加器 @ —— 间接寄存器或基址寄存器的前缀 / —— 指定位求反 (x)—— x地址单元中的内容 ((x)) —— x地址单元中的内容为地址的单元中的内容 $ —— 当前指令的地址
机器语言: 汇编语言: 高级语言:
用二进制代码表示指令和数据。 用助记符表示指令操作功能,用标号表示操作对象。
独立于机器,面向过程,接近自然语言和数学表达式.
汇编语言程序的每一条语句都与计算机的某一条指令对应, 所以必需熟悉指令系统。
指令 = 操作码 + 操作数 操作码——表示了该指令所能执行的操作功能。 操作数——表示参加操作的数的本身或操作数所在的地址。 MCS-51指令格式:
注释是对指令的解释说明,用以提高程序的可读性; 注释前必须加分号。
MCS-51单片机指令关键 系统
二、MCS-51系列单片机的指令系统
111条指令,共分五大类: 数据传送类;(29条) 算术运算类;(24条) 逻辑运算类;(24条) 控制转移类;(17条) 位操作类。(17条)
MCS-51单片机指令关键 系统
[标号:标] 号操是作程码序助员记根符据编[第程一需操要作数给]指令[,设第定二的操作符数号]地址[;,注释可]有 可无;标号由1~8个字符组成,第一个字符必须是英文字,不 能是数字或其它符号;标号后必须用冒号。
操作码表示指令的操作种类,如MOV表示数据传送操作, ADD表示加法操作等。
操作数或操作数地址表示参加运算的数据或数据的有 效地址。操作数一般有以下几种形式:没有操作数项,操 作数隐含在操作码中,如RET指令;只有一个操作数,如 CPL A指令;有两个操作数,如MOV A,#00H指令,操作数 之间以逗号相隔;有三个操作数,如CJNE A,#00H,NEXT指 令,操作数之间也以逗号相隔。
指令中操作数的描述符号: Rn —— 工作寄存器R0 ~ R7
@Ri —— 间接寻址寄存器R0、R1 Direct —— 直接地址,包括内部128B RAM单元地址、
26个SFR地址。 #data —— 8位常数 #data 16 —— 16位常数 addr 16 —— 16位目的地址 addr 11 —— 11位目的地址
MCS-51单片机指令关键 系统
采用寄存器寻址的指令如下:
MOV P1,A
;将累加器A的内容送 到P1口
MOV P1,R4
;将寄存器R4的内容送到P1口
CLR A
;将累加器A清0
CPL A
;将累加器A中的内容取反
RL A
;将累加器A的内容循环左移
MCS-51单片机指令关键 系统
内 部RAM
R1
ห้องสมุดไป่ตู้
2 0H
第二章 MCS-51单片机指令系统
内容提要:
§2-1 汇编语言与指令系统简介 §2-2 数据传送类指令 §2-3 算术运算类指令 §2-4 逻辑运算类指令 §2-5 控制转移类指令 §2-6 位操作类指令 §2-7 伪指令
项目引入
1.项目描述 利用P1口外接的8只LED发光二 极管模拟彩灯 。 2.硬件电路与工作原理 让学生根据任务分析硬件要求, 画出具体电路,并在实验开发板 上接线 3.程序设计(给出控制程序)
8051
开始 55H送P1口 延时0.3秒 AAH送P1口 延时0.3秒
流水式彩灯控制程序框图
控制程序
ORG 0000H
LOOP: MOV P1,#55H ;将立即数55H送P1端口
LCALL TIME
;调延时子程序TIME
MOV P1,#0AAH
;将立即数AAH送P1端口
LCALL TIME
;调延时子程序TIME
MCS-51单片机指令关键 系统
三、 寻 址 方 式
操作数是指令的重要组成部分,指出了参与操作的数据 或数据的地址。寻找操作数地址的方式称为寻址方式。一条 指令采用什么样的寻址方式,是由指令的功能决定的。寻址 方式越多,指令功能就越强。
MCS-51指令系统共使用了7种寻址方式,包括寄存器寻 址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、 相对寻址和位寻址。