MCS-51单片机指令系统
合集下载
MCS-51单片机指令系统
MOV P2 , R2 ;寄存器R2内容送P2口
3.3.1 数据传送指令位操作
4.以寄存器间接地址为目的操作数的指令
MOV @Ri,A
;(A)→((Ri)),i=0,1
MOV @Ri,direct ; (direct)→((Ri))
MOV @Ri,#data ; #data→((Ri))
例 设(A)=33H ,(R0)=56H ,则执行指令: MOV @R0 ,A ;(R0)←(A),
MOV Rn,A
; (A)→Rn,n=0~7
MOV Rn,direct ;(direct)→Rn,n=0~7
MOV Rn,#dat ; #data→Rn,n=0~7
例 MOV R1 ,#10H ;将立即数10H送R1寄存器,
3.3.1 数据传送指令位操作
3.以直接地址direct为目的操作数的指令
3.3.1 数据传送指令位操作
(2) MOVC A,@A+DPTR
例:在ROM 1000H开始存有5个字节数,编程将第二个字节数取出 送片内RAM 30H单元中。
程序段如下:
MOV DPTR,#1000H ;置ROM地址指针(基址)DPTR←1000H
MOV A ,#01H;
表内序号送A(变址),A←01H
MOV direct,A ; (A)→direct
MOV direct,Rn;(Rn)→direct, n=0~7
MCS-51单片机指令系统与汇编语言程序设计
指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。 机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。机器语言指令是计算机惟一能识别和执行的指令。 汇编语言:指令系统是利用指令助记符来描述的,称为汇编语言。 计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。 单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对其进行编程,
(4)定义字节伪指令DB 格式:[标号:] DB x1, x2,…, xn 功能:将8位数据(或8位数据组)x1, x2,…, xn顺序存放在从当前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII码、表达式,也可以是括在单引号内的字符串。两个数据之间用逗号“,”分隔。 xi为数值常数时,取值范围为00H~FFH。xi为ASCII码时,要使用单引号‘’,以示区别。xi为字符串常数时,其长度不应超过80个字符。 (5)定义双字节伪指令DW 格式:[标号:] DW x1, x2,…, xn 功能:将双字节数据[或双字节数据组]顺序存放在从标号指定地址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先存高8位(存入低位地址单元中),后存低8位(存入高位地址单元中)。
ห้องสมุดไป่ตู้
2.1.3 指令中的常用符号
Rn(n=0~7):表示当前工作寄存器R0~R7中的任一个寄存器。 Ri(i=0或1):表示通用寄存器组中用于间接寻址的两个寄存器R0, R1。 #data:表示8位直接参与操作的立即数。 #data16:表示16位直接参与操作的立即数。 direct:表示片内RAM的8位单元地址。 addr11:表示11位目的地址,主要用于ACALL和AJMP指令中。 addr16:表示16位目的地址,主要用于LCALL和LJMP指令中。 rel:用补码形式表示的8位二进制地址偏移量,取值范围为128~+127,主要用于相对转移指令,以形成转移的目的地址。 DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。
MCS-51单片机的指令系统
记符 2414H 用一组有一定意义的
字符来表示
整理ppt
3
助记符、汇编语言源程序
虽然书写的字符增多了,但由于可读性增强 了,使用时反而感到方便。
经常采用助记符和其他一些符号来编写指令程序, 这样编出的程序称为汇编语言源程序。它经过一种 称为汇编程序的软件的翻译,就可变成机器可执行 的目标程序了。
高级语言编程、效率问题
01
1
75H 74H
FFH
整理ppt
10
指令的组成及字节数
3)16位地址 例如:LCALL 2020H 指令码为:
整理ppt
11
指令的组成及字节数
三字节指令第1个字节的操作码,后两个字节是操作数。 操作数可以是数据,也可以是地址。有以下4种情况。
在程序设计中,应尽可能选用字节少的指令。这 样,指令所占存储单元少,执行速度也快。
整理ppt
5
指令的组成及字节数
在二进制的51指令中,单字节指令的操作码和操作数加起来 只有1B;双字节指令的操作码和操作数各占1B;三字节指 令的第1字节为操作码,第2、第3字节为操作数、操作数地 址或符号。
1.单字节指令(49条)
在51指令指令系统中,单字节指令可分为两大类:无操作数 的单字节指令和含有操作数寄存器编号的单字节指令。
整理ppt
2
4.1 指令和指令程序
MCS51单片机指令系统
二、指令中的常用符号(书本27)
三、寻址方式
所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语 言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何 将它们传送到适当的寄存器去参与运算。每一种计算机都具 有多种寻址方式。寻址方式的多少是反映指令系统优劣的主 要指标之一。 寻址方式越多,指令功能越强。
在 MCS -51单片机指令系统中, 有以下7种寻 址方式:
(1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5) 基址寄存器加变址寄存器间接寻址; (6) 相对寻址; (7) 位寻址。
(1) 立即寻址;
立即寻址方式是将操作数直接存放在指令字节中,作为指 令的一部分存放在代码段里。
(2)堆栈操作必须是字节操作,且只能直接寻址。将累加器 A入栈、出栈指令可以写成:PUSH ACC和POP ACC而不 能写成PUSH A和POP A
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。
《单片机原理及应用》第三章mcs-51指令系统
条件判断类指令
用于条件判断的指 令,如JC、JZ、JM 等。
03
MCS-51指令详解
数据传送类指令
01
数据传送类指令主要用于在数据存储器、累加器和其他寄存器之间传送数据。
02
包括MOV、MOVX、MOVC等指令。
03
MOV指令用于将数据从源地址传送到目标地址;MOVX指令用于将外部数据存 储器中的数据传送到累加器;MOVC指令用于将程序存储器中的数据传送到累 加器。
04
MCS-51指令系统的应用 实例
数据传送指令的应用
01
数据传送指令主要用于在数据存储器、累加器和其 他特殊功能寄存器之间进行数据的传输。
02
例如,MOV指令可以将一个字节的数据从源地址传 送到目标地址。
03
除了基本的MOV指令外,还有XCH、XCHD等指令 用于交换寄存器中的数据。
算术运算指令的应用
位操作指令主要用于对单个 位进行操作。
SET、CLR、TST等指令分别 用于设置位、清除位和测试
位的状态。
例如,SET指令可以设置累加 器中的某一位为1,而CLR指令 可以清除累加器中的某一位为 0。
05
MCS-51指令系统的编程 技巧与注意事项
编程技巧
利用汇编语言编写程序
汇编语言是与硬件直接交互的语言,使用汇编语言编写程序可以更直 接地控制硬件,提高程序的执行效率。
MCS-51指令系统
机器语言指令 汇编语言指令。
1.机器指令
用二进制代码表示的指令称为机器语言 指令,也称机器码。 例如:“累加器A加1”指令用二进制数 表示时,是“00000100”,在程序存储器中 占用一个字节单元。
2.汇编语言指令
用容易记忆的缩写符号表示机器语言指令就 是汇编语言指令。例如,“A加B”用英语写出来 是“Add B to A”,缩写成“ADD A,B”。这个 “ADD A,B”就是汇编语言指令。MCS-51单片机 的开发商约定:“ ADD A ,B”与 25F0H 对应。我 们将“ADD”缩写符号称为“助记符”。 编写机器语言程序实质上就是用汇编语言 编写程序。
2.16位数据传送指令
MOV DPTR, #data16 ;(DPTR)←data16 MSC-51单片机指令系统中仅此一条传送 16位数据的指令,功能是将16位数据送入寄 存器DPTR中,其中数据的高8位送入DPH中, 低8位送入DPL中。 例如:MOV DPTR,#1234H
3.数据交换指令
(1)半字节交换指令
XCHD A,@Ri ;(A)3~0 <=>((Ri))3~0 SWAP A ;(A)3~0<=>(A)7~4 第一条指令将 Ri 间接寻址的单元内容的低 4 位 与累加器 A 内容的低 4 位互换,高四位内容不变, 不 影 响 标 志 位 。 例 如 , 设 ( A ) =0ABH , ( R0 ) =30H ,( 30H ) =12H ,执行指令 XCHD A , @R0 后, (A)=A2H,(30H)=1BH。 第二条指令将累加器 A 的高 4 位与低 4 位内容互换, 不影响标志位。
1.机器指令
用二进制代码表示的指令称为机器语言 指令,也称机器码。 例如:“累加器A加1”指令用二进制数 表示时,是“00000100”,在程序存储器中 占用一个字节单元。
2.汇编语言指令
用容易记忆的缩写符号表示机器语言指令就 是汇编语言指令。例如,“A加B”用英语写出来 是“Add B to A”,缩写成“ADD A,B”。这个 “ADD A,B”就是汇编语言指令。MCS-51单片机 的开发商约定:“ ADD A ,B”与 25F0H 对应。我 们将“ADD”缩写符号称为“助记符”。 编写机器语言程序实质上就是用汇编语言 编写程序。
2.16位数据传送指令
MOV DPTR, #data16 ;(DPTR)←data16 MSC-51单片机指令系统中仅此一条传送 16位数据的指令,功能是将16位数据送入寄 存器DPTR中,其中数据的高8位送入DPH中, 低8位送入DPL中。 例如:MOV DPTR,#1234H
3.数据交换指令
(1)半字节交换指令
XCHD A,@Ri ;(A)3~0 <=>((Ri))3~0 SWAP A ;(A)3~0<=>(A)7~4 第一条指令将 Ri 间接寻址的单元内容的低 4 位 与累加器 A 内容的低 4 位互换,高四位内容不变, 不 影 响 标 志 位 。 例 如 , 设 ( A ) =0ABH , ( R0 ) =30H ,( 30H ) =12H ,执行指令 XCHD A , @R0 后, (A)=A2H,(30H)=1BH。 第二条指令将累加器 A 的高 4 位与低 4 位内容互换, 不影响标志位。
MCS-51单片机指令系统
单片机原理与接口技术
第3章 MCS-51单片机 指令系统
22:31
返回目录
1
本章教学要求
第3章 MCS-51单片机指令系统
熟悉MCS-51单片机指令系统的分类、格式; 掌握MCS-51指令系统的七种寻址方式; 掌握MCS-51指令系统的数据传送、算术运算、
逻辑运算、转移操作、布尔运算等指令的功能; 熟悉MCS-51指令系统的各种指令对寄存器资源的
返回目录
3
3.1 指令系统简介
------指令的两种格式
要让计算机工作,就得向计算机发出指令。
指令的格式是机器码指令格式, 如:75905B ,即数字格式。
另一种指令格式,即汇编指令格式, 如:MOV P1, #5BH
22:31
返回目录
4
3.1 指令系统简介
-----MCS-51汇编语言指令格式
MOVC A, @A+PC ;PC+1→PC,((A+PC))→A
MOVC A, @A+DPTR ;((A+DPTR))→A
22:31
返回目录
27
MOV A, @A+DPTR; A←((A)+(DPTR))
程序存储器
SFR
PC
10010011 操作码 A 1EXHX
030FH
XX
DPH 02H 02F1H DPL F1H
第3章 MCS-51单片机 指令系统
22:31
返回目录
1
本章教学要求
第3章 MCS-51单片机指令系统
熟悉MCS-51单片机指令系统的分类、格式; 掌握MCS-51指令系统的七种寻址方式; 掌握MCS-51指令系统的数据传送、算术运算、
逻辑运算、转移操作、布尔运算等指令的功能; 熟悉MCS-51指令系统的各种指令对寄存器资源的
返回目录
3
3.1 指令系统简介
------指令的两种格式
要让计算机工作,就得向计算机发出指令。
指令的格式是机器码指令格式, 如:75905B ,即数字格式。
另一种指令格式,即汇编指令格式, 如:MOV P1, #5BH
22:31
返回目录
4
3.1 指令系统简介
-----MCS-51汇编语言指令格式
MOVC A, @A+PC ;PC+1→PC,((A+PC))→A
MOVC A, @A+DPTR ;((A+DPTR))→A
22:31
返回目录
27
MOV A, @A+DPTR; A←((A)+(DPTR))
程序存储器
SFR
PC
10010011 操作码 A 1EXHX
030FH
XX
DPH 02H 02F1H DPL F1H
MCS-51单片机指令系统
ANL A, @Ri ; A与间址寻址单元@Ri中的值按位 ‘与’,
;结果送入A中
ANL A, #data ; A与立即数data按位'与',结果送入A中
ANL direct, A ; direct中值与A中的值按位‘与’,结果送
入 direct中
ANL direct, #data ; direct中的值与立即数data按位‘与’,结
XRL direct,#data;direct中的值与立即数 ;data按位‘异或’,结果 送入direct中。
位操作指令
(一)位传送指令 MOV C, BIT MOV BIT, C
这组指令的功能是实现位累加器(CY) 和其它位地址之间的数据传递。
(二)位变量修改指令 1、位清0指令 CLR C ;使CY=0 CLR bit ;使指令的位地址等于0。例:CLR P1.0 ;
指令系统
MCS—51系列单片机的指令系统按其功 能可归纳为五大类: 1、数据传送类指令 (29条) 2、算术运算类指令 (24条) 3、逻辑运算类指令 (24条) 4、控制转移指令 (17条) 5、布尔(位)处理类指令
寻址方式与空间的关系
• 寄存器寻址 • 直接寻址 • 寄存器间接寻址
R0~R7,A,B,DPTR RAM,SFR 内部RAM(@R0,@R1),栈操作、
10000101 + 11111110 --------------------(1)10000011 结果是:(A)=83H,CY=1,AC=1,OV=0。
;结果送入A中
ANL A, #data ; A与立即数data按位'与',结果送入A中
ANL direct, A ; direct中值与A中的值按位‘与’,结果送
入 direct中
ANL direct, #data ; direct中的值与立即数data按位‘与’,结
XRL direct,#data;direct中的值与立即数 ;data按位‘异或’,结果 送入direct中。
位操作指令
(一)位传送指令 MOV C, BIT MOV BIT, C
这组指令的功能是实现位累加器(CY) 和其它位地址之间的数据传递。
(二)位变量修改指令 1、位清0指令 CLR C ;使CY=0 CLR bit ;使指令的位地址等于0。例:CLR P1.0 ;
指令系统
MCS—51系列单片机的指令系统按其功 能可归纳为五大类: 1、数据传送类指令 (29条) 2、算术运算类指令 (24条) 3、逻辑运算类指令 (24条) 4、控制转移指令 (17条) 5、布尔(位)处理类指令
寻址方式与空间的关系
• 寄存器寻址 • 直接寻址 • 寄存器间接寻址
R0~R7,A,B,DPTR RAM,SFR 内部RAM(@R0,@R1),栈操作、
10000101 + 11111110 --------------------(1)10000011 结果是:(A)=83H,CY=1,AC=1,OV=0。
MCS-51单片机指令系统
数据传送类(29条)
相当于C语言中的赋值语句 MOV 目的操作数 源操作数
算数运算类(24条)
逻辑运算类(24条)
1、以累加器A为目的的操作数的指令 MOV A,#data;data→A MOV A,Rn;(Rn)→A,n=0~7 MOV A,@Ri;((Ri))→A,i=0,1 (源操作数:立即数寻址、寄存器寻址、寄存器间接寻址、直接寻址方式)
2、以Rn为目的操作数的指令 【MOV Rn, #data;data→Rn】 (源操作数:累加器A、片内RAM单元、SFR内容,立即数) 传送到当前工作寄存器组R0~R7的某个寄存器
3、以直接地址为目的操作数的指令 【MOV direct, #data;data→direct】 (源操作数:累加器、片内RAM单元、工作寄存器,立即数) 传送到由direct所指的片内存储单元
JBC bit,re1;若(bit)=1,则(PC)+rel→PC; 0→bit;否则,(PC)+3→PC
6、堆栈操作指令
进栈 【PUSH direct;(SP)+1→SP,(dirsct)→(SP)】 出栈 【POP direct;(SP)→(dirsct),(SP)-1→SP】
MCS-51指令系统中有两条读程序存储器中表格数据的指令。 因为对程序存储器只能读不能写,所以查表指令数据传送都是单向的, 即从程序存储器到累加器中。
相当于C语言中的赋值语句 MOV 目的操作数 源操作数
算数运算类(24条)
逻辑运算类(24条)
1、以累加器A为目的的操作数的指令 MOV A,#data;data→A MOV A,Rn;(Rn)→A,n=0~7 MOV A,@Ri;((Ri))→A,i=0,1 (源操作数:立即数寻址、寄存器寻址、寄存器间接寻址、直接寻址方式)
2、以Rn为目的操作数的指令 【MOV Rn, #data;data→Rn】 (源操作数:累加器A、片内RAM单元、SFR内容,立即数) 传送到当前工作寄存器组R0~R7的某个寄存器
3、以直接地址为目的操作数的指令 【MOV direct, #data;data→direct】 (源操作数:累加器、片内RAM单元、工作寄存器,立即数) 传送到由direct所指的片内存储单元
JBC bit,re1;若(bit)=1,则(PC)+rel→PC; 0→bit;否则,(PC)+3→PC
6、堆栈操作指令
进栈 【PUSH direct;(SP)+1→SP,(dirsct)→(SP)】 出栈 【POP direct;(SP)→(dirsct),(SP)-1→SP】
MCS-51指令系统中有两条读程序存储器中表格数据的指令。 因为对程序存储器只能读不能写,所以查表指令数据传送都是单向的, 即从程序存储器到累加器中。
MCS51-指令系统
指令系统符号规定
addr16 :16位目标地址,用于LCALL和LJMP指令中 rel :8位带符号数的补码偏移量,用于SJMP指令和所 有条件指令中 bit :RAM或专用寄存器中的直接寻址位 A :累加器 B :专用寄存器,用于MUL(乘法)和DIV(除法)指令中 C :进位标志或进位位或布尔处理器中的累加器
MCS-51单片机指令系统
指令格式及常用符号 寻址方式 指令系统
指令
机器指令:计算机能直接识别和执行的 指令 操作码 操作数
符号指令的书写格式
书写格式 操作助记符 [目的操作数][,源操作数][; 注释] 注意: 操作助记符不能缺少 操作数个数可为:1、2、3个 2个操作数的指令,目的操作数在左边
寄存器寻址方式
【例】若(R0)=30H, 执行MOV A,R0后,(A)=30H
00H 30H R0 操作数 在R0 RAM 30H ROM SFR ACC
E8H
MOV A,R0
直接寻址方式
在直接寻址方式中,含操作数的单元地址“直 接”出现在指令中,所以称直接寻址方式
能用于这种寻址方式的存储单元有:内部数据 RAM的低128字节、专用寄存器、内部数据RAM 地址空间子集的128位(位地址空间)、专用寄 存器地址空间子集的128位(位地址空间)
ROM
变址寻址方式
MCS-51指令系统
0 3FH 8 7FH
(7段共阴数码管显示代码)
1 06H 9 6FH 2 3 4 5 6 7 5BH 4FH 66H 6DH 7DH 07H A B C D E F 77H 7CH 39H 5EH 79H 71H
NUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H MOV DPTR,#NUMTAB ;DPTR 就成为了基址寄存器
5. 变址间接寻址
● 教学目标:
介绍变址间接寻址方式
介绍变址间接寻址的应用
● 重点、难点:
掌握变址间接寻址的概念及算法
掌握变址间接寻址在7段数码管的应用
5.1概念
• 变址间接寻址是将指令中指定变址寄存器和基址寄存 器的内容相加形成真正的操作数在程序存储器中的地 址。 A作为变址寄存器,PC或DPTR作为基址寄存器 o MOVC A,@A+DPTR ;以DPTR为例
作业:
作业与预习
的区别
MOVX A, @DPTR 与MOVC A, @A+DPTR 预习:37页 7.位寻址
7. 位寻址
● 教学目标:
介绍位寻址方式
介绍位寻址的应用
● 重点、难点:
掌握位寻址的概念及算法
掌握位寻址在运算中的作用
7.1概念
(7段共阴数码管显示代码)
1 06H 9 6FH 2 3 4 5 6 7 5BH 4FH 66H 6DH 7DH 07H A B C D E F 77H 7CH 39H 5EH 79H 71H
NUMTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H MOV DPTR,#NUMTAB ;DPTR 就成为了基址寄存器
5. 变址间接寻址
● 教学目标:
介绍变址间接寻址方式
介绍变址间接寻址的应用
● 重点、难点:
掌握变址间接寻址的概念及算法
掌握变址间接寻址在7段数码管的应用
5.1概念
• 变址间接寻址是将指令中指定变址寄存器和基址寄存 器的内容相加形成真正的操作数在程序存储器中的地 址。 A作为变址寄存器,PC或DPTR作为基址寄存器 o MOVC A,@A+DPTR ;以DPTR为例
作业:
作业与预习
的区别
MOVX A, @DPTR 与MOVC A, @A+DPTR 预习:37页 7.位寻址
7. 位寻址
● 教学目标:
介绍位寻址方式
介绍位寻址的应用
● 重点、难点:
掌握位寻址的概念及算法
掌握位寻址在运算中的作用
7.1概念
第三章MCS51的指令系统
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.
从硬件角度来看CISC处理的是不等长指令集,它必须对不等 长指令进行分割,因此在执行单一指令的时候需要进行较多 的处理工作。
而RISC执行的是等长精简指令集精简指令集,CPU在执行指 令的时候速度较快且性能稳定。因此在并行处理方面RISC明 显优于CISC,RISC可同时执行多条指令,它可将一条指令 分割成若干个进程或线程,交由多个处理器同时执行。由于 RISC执行的是精简指令集,所以它的制造工艺简单且成本低 廉。
MOV A,#data
#data→(A) 立即数送到累加器A中
MOV A,#30H
MOV A,#0A2H
MOV A,Rn
(Rn)→(A) Rn中的内容送到累加器A中
MOV A,R4
MOV A,R7
MOV A,@Ri
((Ri))→(A) Ri内容指向的地址单元中的内容送到累加器A
MOV A,@R1
MOV A,@R0
虽然MCS-51单片机的算术逻辑单元ALU仅能 对8位无符号整数进行运算,但利用进位标志C, 则可进行多字节无符号整数的运算。
利用溢出标志,还可以对带符号数进行补码运 算。需要指出的是,除加、减1指令外,这类 指令大多数都会对PSW(程序状态字)有影响。 这在使用中应特别注意。
MCS-51单片机指令系统教程(1)
2.1:MCS-51指令系统的概述
MCS-51共有111条指令,指令的长度和执行时 间因不同的指令而各不相同。
2.1.1 2.1.2 2.1.3 2.1.4
指令格式 指令的三种表示形式 指令的字节数 指令的分类
继续
2.1.1 指令格式:
指令格式:既指令的结构形式。
操作码 OP
操作数或操作数地址 DATA 或 ADDRESS
MOV A,R7 ;将寄存器R7中的内容送累加器A中。
MOV 20H,R0 ;将寄存器R0中的数据送内存20H单元
INC R1
;将寄存器R1中的内容加一
ADD A,R3 ;A的内容与寄存器R3的内容相加送A
寄存器寻址方式的指令大多是单字节指令。指令本身并不带 有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7寄存器,所以rrr=111,既指令的机器码为: 0EFH
ROM n 74H n+1 30H
累加器A
返回
MOV A,#30H 指令执行流程
DPTR
ROM
90H 20H 00H
MOV DPTR,#2000H指令的存储和执行
2.2.4 寄存器间接寻址
指令中含有保存操作数地址的寄存器Ri。 MOV A,@Ri ( i=0、1)
CPU首先根据指令中寄存器名Ri找到操作数地址,然后再 从该地址中找到操作数 x。 如:MOV R0,#30H ;立即数送R0寄存器
MCS-51共有111条指令,指令的长度和执行时 间因不同的指令而各不相同。
2.1.1 2.1.2 2.1.3 2.1.4
指令格式 指令的三种表示形式 指令的字节数 指令的分类
继续
2.1.1 指令格式:
指令格式:既指令的结构形式。
操作码 OP
操作数或操作数地址 DATA 或 ADDRESS
MOV A,R7 ;将寄存器R7中的内容送累加器A中。
MOV 20H,R0 ;将寄存器R0中的数据送内存20H单元
INC R1
;将寄存器R1中的内容加一
ADD A,R3 ;A的内容与寄存器R3的内容相加送A
寄存器寻址方式的指令大多是单字节指令。指令本身并不带 有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7寄存器,所以rrr=111,既指令的机器码为: 0EFH
ROM n 74H n+1 30H
累加器A
返回
MOV A,#30H 指令执行流程
DPTR
ROM
90H 20H 00H
MOV DPTR,#2000H指令的存储和执行
2.2.4 寄存器间接寻址
指令中含有保存操作数地址的寄存器Ri。 MOV A,@Ri ( i=0、1)
CPU首先根据指令中寄存器名Ri找到操作数地址,然后再 从该地址中找到操作数 x。 如:MOV R0,#30H ;立即数送R0寄存器
第3章 MCS-51 单片机的指令系统
MOV A,@R0; (A)=40H
MOV R1,A; (R1)=40H
MOV B,@R1; (B)=10H MOV @R1,P1; (40H)=0CAH MOV P2,P1; (P2)=0CAH
1.4 内部数据传送指令的使用 例:MOV @R1,R3; Direct 直接地址 A @Ri 间接地址
MOV A,@R0;
结果:(A)=20H;
2 与P2口配合,用Ri指示低8位地址,可寻址片外数 据存储器或I/O的64K区域
例:(P2)=20H ,(R0)=10H,(2010H)=30H MOVX A, @R0; 结果:(A)=30H 3 DPTR 间接寻址寄存器,可寻址片外程序存储器、数 据存储器、I/O的64KB区域. 例:(DPTR)=4000H,(4000H)=50H
例:rel=75H ,CY=1
2002H:JC rel;(如CY=1,则跳转到PC+rel处去执行程序) 结果:程序转向(PC)+2+rel=2002H+2+75H=2079H 单元去执行 相对寻址用于访问程序存储器,只出现在转移指 令中。寻址不是寻找操作数的地址,而是要得到 程序跳转地址PC值。
七 位寻址
1 位寻址范围:内部RAM的位寻址区,共16个单元的 128位,单元地址为:20H-2FH,位地址为:00H-7FH ; 特殊功能寄存器SFR可供位寻址的专用寄存器11个, 实用位地址83位。 2 位地址在指令中的4种表达方式 2.1 直接使用位地址 MOV C,0D6H;
单片机教程3-MCS-51指令系统
THANKS FOR WATCHING
感谢您的观看
03
丰富的指令集,支持多种寻 址方式。
04
05
具有低功耗模式和空闲模式。
MCS-51单片机的应用领域
智能仪表
用于数据采集、处理和控制。
工业自动化
用于控制电机、阀门等设备。
智能家居
用于家电控制、安防监控等。
通信设备
用于调制解调器、路由器等设 备。
MCS-51单片机的历史与发展
01
1976年,Intel公司发布MCS-48系列单片机。
SUB
从目标操作数中减去另一个操作数,并将结果存储在目标操作数 中。
CMP
比较两个操作数的大小,并将结果存储在累加器中。
乘法指令
MUL
将累加器中的值与另一个操作数相乘,并将结果存储在目标操作数中。
MULA
将累加器中的值与另一个16位操作数相乘,并将结果存储在目标操作数中。
除法指令
DIV
将累加器中的值除以另一个操作数,并将商存储在累加器中,余数存储在寄存 器中。
DIVA
将累加器中的值与另一个16位操作数相除,并将商存储在累加器中,余数存储 在寄存器中。
Βιβλιοθήκη Baidu
05 控制指令
程序控制指令
无条件跳转指令
如`AJMP`、`SJMP`、`LJMP`等,用于改 变程序的执行流程,直接跳转到指定地 址。
MCS51系列单片机指令系统及汇编语言程序设计课件
第18页,共52页。
“异或”操作指令(6条) XRL A,dir XRL A,#data XRL A,Rn
XRL A,@Ri
XRL dir,A XRL dir,#data 例:R0=23H,(23H)=32H,A=53H,指令XRL A,@R0执行后,A=61H
求反指令(1条) CPL A ;累加器A中的内容按位取反
➢ 布尔变量操作类指令(共17条)
第10页,共52页。
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
MOV A,dir
MOV A,#data
MOV A,Rn
MOV A,@Ri
例:R1=20H,(20H)=55H,指令MOV A,@R1执行后,A=55H。
以寄存器Rn为目的操作数的指令(3条)
INC Rn
INC DPTR
第16页,共52页。
减1指令(4条)
DEC A DEC dir DEC @Ri
DEC Rn
十进制调整指令(1条)
DA A ;把A中按二进制相加后的结果调整成按BCD数相加的结果
第17页,共52页。
3.逻辑操作类指令(共24条)
逻辑操作类指令共有24条,主要包括“与”、“或”、“异或”、求反、清0、左右 移位等逻辑操作。
累加器A与片外数据存储器RAM传送指令(4条)
MOVX @DPTR,A
“异或”操作指令(6条) XRL A,dir XRL A,#data XRL A,Rn
XRL A,@Ri
XRL dir,A XRL dir,#data 例:R0=23H,(23H)=32H,A=53H,指令XRL A,@R0执行后,A=61H
求反指令(1条) CPL A ;累加器A中的内容按位取反
➢ 布尔变量操作类指令(共17条)
第10页,共52页。
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
MOV A,dir
MOV A,#data
MOV A,Rn
MOV A,@Ri
例:R1=20H,(20H)=55H,指令MOV A,@R1执行后,A=55H。
以寄存器Rn为目的操作数的指令(3条)
INC Rn
INC DPTR
第16页,共52页。
减1指令(4条)
DEC A DEC dir DEC @Ri
DEC Rn
十进制调整指令(1条)
DA A ;把A中按二进制相加后的结果调整成按BCD数相加的结果
第17页,共52页。
3.逻辑操作类指令(共24条)
逻辑操作类指令共有24条,主要包括“与”、“或”、“异或”、求反、清0、左右 移位等逻辑操作。
累加器A与片外数据存储器RAM传送指令(4条)
MOVX @DPTR,A
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
① 标号:给该条语句起个名字,以便在其它语句中
寻找该条语句,它代表该条语句所在的地址。
注:
标号由1~6个字符数字串组成,第一个必须是字母;
不一定每句都有标号,标号不产生目标代码; 汇编语言中已经有确切定义的符号不能作为标号; 同一标号在一个程序中只能定义一次; 标号后面必须跟冒号。
ROM SFR 30H 20H
05H 48H
48H
2035H
+
DPL DPH ACC
19
6. 相对寻址
主要用于转移指令,它是把指令中给出的相对地址 偏移量 rel 与 PC 当前值相加,得到程序转移的目标 地址。
15
4. 寄存器间接寻址
把操作数所在的地址存放在指定的寄存器中,而 操作数本身则存放在该地址所对应的存储单元中 的寻址方式。 间接寻址寄存器前用“@”表示前缀。 能够用于寄存器间接寻址的寄存器有 R0 、 R1 、 DPTR和SP(SP不用间接寻址符“@”)。 [例3-4]: MOV A,@R0 ; A←( ( R0 ) )
5
② 操作码助记符:规定指令进行何种操作,是指令
中不能空缺的部分,一般采用具有相关含义的英语 单词或缩写表示。
③ 操作数:说明被操作的数的源及目的。
注: 操作数可以是数的本身或其所在地址; 十六进制数以A~F打头的数前面要加0,以区别于标号。
④ 注释:为便于阅读理解程序,对语句所作的解释
说明,不产Hale Waihona Puke Baidu目标代码,用分号开始表示注释。
((x))
以X中的内容为地址的存储单元中的内容
7
4、指令分类
MCS-51汇编语言有111种指令,42种操作码助记 符用来描述33种操作功能。
按功能分为
数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条
8
按字节数分为
单字节指令:49条 双字节指令:45条 三字节指令:17条
ROM
PC PC E5H
操作码 直接地址 ACC
20H
……
RAM
PC
……
62H
20H
…… 62H ……
14
3. 寄存器寻址
在指定的寄存器中存放操作数的寻址方式。 这 类 寄 存 器 包 括 工 作 寄 存 器 R0~R7 、 A 、 B 、 DPTR。
[例3-3]: MOV A,R0 ; 把工作寄存器R0中的内容传送到 累加器A中。
• 上述指令的功能是, DPTR 的值与累加器 A的内容 相加,形成操作数的地址。
18
[例3-7]: 将程序存储器ROM中2035H单元的内容读入 累加器A中: MOV DPTR,#2030H ;DPTR ←#2030H MOV A, #05H ; A ←#05H MOVC A,@ A+DPTR ;A←(2035H)
16
5. 变址寻址
以16位寄存器(PC或 DPTR)的内容作为基址,以 累加器 A 的内容作为偏移量,将两者进行相加得到 的和作为操作数地址。
变址寻址只能对程序存储器进行寻址,分为两种:
以PC的当前值为基址
以DPTR的内容为基址
17
[例3-5]: MOVC A,@ A+PC ;A←((A)+(PC)) • 上述指令的功能是, PC 的当前值与累加器 A 的内 容相加,形成操作数的地址。 [例3-6]: MOVC A,@ A+DPTR ;A←((A)+(DPTR))
6
3、指令系统中有关符号说明
符号 Rn @Ri direct 含义 当前R0-R7 R0 R1(i=0,1) 8位直接地址(内部RAM的低128个单元的地址) 或指SFR
#data8/16
Addr11/16 rel bit / @ (x)
8位常数(立即数)16位常数(立即数)
11位目的地址,16位目的地址 转移指令8位偏移量(补码) -128~ +127 位地址 对该位内容取反 间接寻址符号(前缀) X存储单元中的内容
寻址方式
3
一、指令概述
1、概念
指令:是指示单片机完成特定操作的命令。 指令系统:是单片机能够执行的全部命令的集合。 汇编语言指令:用助记符、符号地址、标号等表示的 书写程序的语言。
2、指令的格式
[标号:] 操作码助记符 [目的操作数,] [源操作数] [;注释] 如:START: MOV A, #01H ; A ←#01H 标号 操作码助记符 操作数 注释
单周期指令:64条 双周期指令:45条 四周期指令:2条
按运算速度分为
9
二、MCS-51的寻址方式
寻址方式:寻找指令中操作数的地址,并把操作数取 出来的方法。 51单片机一共七种寻址方式: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
10
1、立即寻址
它是操作数直接在指令中给出的寻址方式。 这种操作数称为立即数,立即数有8位和16位两种, 立即数可以是十进制,也可以是十六进制,还可 以二进制。立即数前面带“#”。
注:立即数只能作为源操作数。
[例3-1]: MOV A, #20H MOV A, #10000111B MOV A,#50 MOV DPTR,#1808H
指令中直接给出操作数所在地址的寻址方式。 可用符号“direct”表示指令中的直接地址,寻址范 围是内部RAM的低128字节和SFR.
[例3-2]: MOV A,20H ;将片内RAM20H单元中的内容送 入累加器A,70H为直接地址。
13
MOV A, 20H; A←(20H) 执行结果:(A)=62H 分析 执行
;A←#20H ;A←#10000111B ;A←#50 ;DPTR←#1808H
11
MOV A, #20H;A←#20H 即把20H这个数据送入累加器A中。 执行结果:(A)=20H
分析
PC PC PC 74H 20H …… 操作码 立即数 执行
ACC
20H
MOV A, #20H执行示意图
12
2. 直接寻址
《微型计算机原理及接口技术》
授课专业:自动化 授课学时: 60学时
1
第三章 MCS-51单片机指令系统
1
3.1 指令系统概述
3.2 数据传送类指令 3.3 算术运算类指令 3.4 逻辑运算类指令 3.5 控制转移类指令
2
3 4 5 6
3.6 位操作类指令
2
§3.1 指令系统概述
学习内容
1
2
指令概述
① 标号:给该条语句起个名字,以便在其它语句中
寻找该条语句,它代表该条语句所在的地址。
注:
标号由1~6个字符数字串组成,第一个必须是字母;
不一定每句都有标号,标号不产生目标代码; 汇编语言中已经有确切定义的符号不能作为标号; 同一标号在一个程序中只能定义一次; 标号后面必须跟冒号。
ROM SFR 30H 20H
05H 48H
48H
2035H
+
DPL DPH ACC
19
6. 相对寻址
主要用于转移指令,它是把指令中给出的相对地址 偏移量 rel 与 PC 当前值相加,得到程序转移的目标 地址。
15
4. 寄存器间接寻址
把操作数所在的地址存放在指定的寄存器中,而 操作数本身则存放在该地址所对应的存储单元中 的寻址方式。 间接寻址寄存器前用“@”表示前缀。 能够用于寄存器间接寻址的寄存器有 R0 、 R1 、 DPTR和SP(SP不用间接寻址符“@”)。 [例3-4]: MOV A,@R0 ; A←( ( R0 ) )
5
② 操作码助记符:规定指令进行何种操作,是指令
中不能空缺的部分,一般采用具有相关含义的英语 单词或缩写表示。
③ 操作数:说明被操作的数的源及目的。
注: 操作数可以是数的本身或其所在地址; 十六进制数以A~F打头的数前面要加0,以区别于标号。
④ 注释:为便于阅读理解程序,对语句所作的解释
说明,不产Hale Waihona Puke Baidu目标代码,用分号开始表示注释。
((x))
以X中的内容为地址的存储单元中的内容
7
4、指令分类
MCS-51汇编语言有111种指令,42种操作码助记 符用来描述33种操作功能。
按功能分为
数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条
8
按字节数分为
单字节指令:49条 双字节指令:45条 三字节指令:17条
ROM
PC PC E5H
操作码 直接地址 ACC
20H
……
RAM
PC
……
62H
20H
…… 62H ……
14
3. 寄存器寻址
在指定的寄存器中存放操作数的寻址方式。 这 类 寄 存 器 包 括 工 作 寄 存 器 R0~R7 、 A 、 B 、 DPTR。
[例3-3]: MOV A,R0 ; 把工作寄存器R0中的内容传送到 累加器A中。
• 上述指令的功能是, DPTR 的值与累加器 A的内容 相加,形成操作数的地址。
18
[例3-7]: 将程序存储器ROM中2035H单元的内容读入 累加器A中: MOV DPTR,#2030H ;DPTR ←#2030H MOV A, #05H ; A ←#05H MOVC A,@ A+DPTR ;A←(2035H)
16
5. 变址寻址
以16位寄存器(PC或 DPTR)的内容作为基址,以 累加器 A 的内容作为偏移量,将两者进行相加得到 的和作为操作数地址。
变址寻址只能对程序存储器进行寻址,分为两种:
以PC的当前值为基址
以DPTR的内容为基址
17
[例3-5]: MOVC A,@ A+PC ;A←((A)+(PC)) • 上述指令的功能是, PC 的当前值与累加器 A 的内 容相加,形成操作数的地址。 [例3-6]: MOVC A,@ A+DPTR ;A←((A)+(DPTR))
6
3、指令系统中有关符号说明
符号 Rn @Ri direct 含义 当前R0-R7 R0 R1(i=0,1) 8位直接地址(内部RAM的低128个单元的地址) 或指SFR
#data8/16
Addr11/16 rel bit / @ (x)
8位常数(立即数)16位常数(立即数)
11位目的地址,16位目的地址 转移指令8位偏移量(补码) -128~ +127 位地址 对该位内容取反 间接寻址符号(前缀) X存储单元中的内容
寻址方式
3
一、指令概述
1、概念
指令:是指示单片机完成特定操作的命令。 指令系统:是单片机能够执行的全部命令的集合。 汇编语言指令:用助记符、符号地址、标号等表示的 书写程序的语言。
2、指令的格式
[标号:] 操作码助记符 [目的操作数,] [源操作数] [;注释] 如:START: MOV A, #01H ; A ←#01H 标号 操作码助记符 操作数 注释
单周期指令:64条 双周期指令:45条 四周期指令:2条
按运算速度分为
9
二、MCS-51的寻址方式
寻址方式:寻找指令中操作数的地址,并把操作数取 出来的方法。 51单片机一共七种寻址方式: 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
10
1、立即寻址
它是操作数直接在指令中给出的寻址方式。 这种操作数称为立即数,立即数有8位和16位两种, 立即数可以是十进制,也可以是十六进制,还可 以二进制。立即数前面带“#”。
注:立即数只能作为源操作数。
[例3-1]: MOV A, #20H MOV A, #10000111B MOV A,#50 MOV DPTR,#1808H
指令中直接给出操作数所在地址的寻址方式。 可用符号“direct”表示指令中的直接地址,寻址范 围是内部RAM的低128字节和SFR.
[例3-2]: MOV A,20H ;将片内RAM20H单元中的内容送 入累加器A,70H为直接地址。
13
MOV A, 20H; A←(20H) 执行结果:(A)=62H 分析 执行
;A←#20H ;A←#10000111B ;A←#50 ;DPTR←#1808H
11
MOV A, #20H;A←#20H 即把20H这个数据送入累加器A中。 执行结果:(A)=20H
分析
PC PC PC 74H 20H …… 操作码 立即数 执行
ACC
20H
MOV A, #20H执行示意图
12
2. 直接寻址
《微型计算机原理及接口技术》
授课专业:自动化 授课学时: 60学时
1
第三章 MCS-51单片机指令系统
1
3.1 指令系统概述
3.2 数据传送类指令 3.3 算术运算类指令 3.4 逻辑运算类指令 3.5 控制转移类指令
2
3 4 5 6
3.6 位操作类指令
2
§3.1 指令系统概述
学习内容
1
2
指令概述