MCS51单片机的指令系统

合集下载

MCS-51的指令系统

MCS-51的指令系统

6、位寻址方式
对相应的位进行位寻址。 相应的位进行位寻址。 C, 如:MOV C,40H 寻址范围: 寻址范围: (1)片内RAM中20H~2FH中的128个位地址 )片内RAM中20H~2FH中的128个位地址 (00H~7FH ) 。 (2)SFR中的11个(83个位)可进行位寻址的 SFR中的11个(83个位)可进行位寻址的 寄存器中的位地址寻址(4种表示法) 寄存器中的位地址寻址(4种表示法)
第3章 MCS-51的指令系统 章 的指令系统
3.1 指令系统概述
单片机所能执行的命令的集合就是它的指令系统 基本指令111条,按在存储器所占的字节来分: 基本指令 条 按在存储器所占的字节来分:
(1)单字节指令49条 1 49 (2)双字节指令45条 (3)三字节指令17条
按指令的执行时间来分: 按指令的执行时间来分:
虽然MCS−51单片机的寻址方式有多种,但指令 − 单片机的寻址方式有多种 单片机的寻址方式有多种, 虽然 对哪一个存贮器空间进行操作是由指令的操作码和 寻址方式确定的。总的来说,具有以下几点原则: 寻址方式确定的。总的来说,具有以下几点原则:
存贮器只能采用立即寻址和 (1)对程序存贮器只能采用立即寻址和基寄存器加变址寄存器 ) 程序存贮器只能采用立即寻址 间接寻址寻址方式。 间接寻址寻址方式。 只能采用直接寻址方式 (2)对特殊功能寄存器空间只能采用直接寻址方式(可以用符 ) 特殊功能寄存器空间只能采用直接寻址方式( 号来代表地址),不能采用寄存器间接寻址方式。 ),不能采用寄存器间接寻址方式 号来代表地址),不能采用寄存器间接寻址方式。 只能采用寄存器间接寻址方式 高 只能采用寄存器间接寻址方式, (3)内部 )内部RAM高128B只能采用寄存器间接寻址方式,不能采 用直接寻址方式。 用直接寻址方式。 既能采用寄存器间接寻址方式 寄存器间接寻址方式, (4)内部 )内部RAM低128B 既能采用寄存器间接寻址方式,又能采 低 直接寻址方式。 用直接寻址方式。 指令访问。 (5)外部扩展的数据存贮器只能采用 )外部扩展的数据存贮器只能采用MOVX指令访问。 指令访问

MCS51单片机指令系统

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指令系统

《单片机原理及应用》第三章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指令系统的编程 技巧与注意事项
编程技巧
利用汇编语言编写程序
汇编语言是与硬件直接交互的语言,使用汇编语言编写程序可以更直 接地控制硬件,提高程序的执行效率。

单片机第3章 MCS-51 单片机的指令系统

单片机第3章 MCS-51 单片机的指令系统

三、寄存器寻址
操作数在寄存器中。
寻址范围: 1 四组工作寄存器R0-R7共32个工作寄存器 例:MOV A,R0;(R0) (A) 2 特殊功能寄存器中有:A,AB,DPTR,CY
寄存器B只有在执行乘除法指令时,才是寄存器寻址方 式
四、寄存器间接寻址
间接寻址是由指令指定某一寄存器的内容作为操作数 的地址。该地址指定的单元内容作为被寻找的操作数。 MCS-51用于间接寻址的寄存器有R0、R1、堆栈指针SP、 数据指针DPTR 寻址范围: 1、内部RAM低128单元,地址范围00H-7FH,用Ri(i=0、 1)和SP作为间址寄存器 例:设(R1)=60H,(60H)=50H
累加器
Rn #data 立即数
寄存器
2 外部数据存储器(或I/O)的读写指令 2.1 用@DPTR进行间接寻址的指令
MOVX A, @DPTR; ((DPTR)) (A)
MOVX @DPTR,A; (A)
((DPTR))
DPTR为16位数据指针,该指令可寻址外部RAM64K范围 (0000H-FFFFH),地址低8位由P0口输出,地址高8位 由P2口输出,数据通过P0口读入或写出。
1.3 211个位地址空间。 内部RAM中可位寻址的20H-2FH对应的128个位地址和11 个SFR中83个可用的位地址空间 例:MOV A,30H;30H是单元地址 例:MOV C,30H;30H是位地址 二、立即寻址 操作数为立即数。立即数前加“#”,以区别地址 例:MOV A,#7AH; 7AH MOV DPTR,#1234H;12H (A) (DPH),34H (DPL)

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
例如: MOVX A, @R1 ;外部数据RAM中地址为P2R1的单元内容→A MOVX @DPTR,A ;A→外部数据RAM中DPTR为地址的单元
寄存器间接寻址的存储器空间包括:内部数据RAM和外部数据RAM。 内部数据RAM共用128字节,用一个字节的R0或R1可寻址整个空间。 外部数据RAM最大可达64K字节,仅用R0或R1无法寻址整个空间。在 MCS-51系列单片机指令中,对外部数据RAM作间接寻址有两种方法:第一种 由P2口提供高8位外部数据RAM地址,由R0或R1提供低8位地址,由此共同 寻址64K空间;第二种是用16位的DPTR作寄存器间接寻址。
3.1 MCS-51单片机的寻址方式
MCS-51单片机共有7种寻址方式:
➢ 立即寻址 ➢ 直接寻址 ➢ 寄存器寻址 ➢ 寄存器间接寻址 ➢ 变址寻址 ➢ 相对寻址 ➢ 位寻址
1. 立即寻址
立即寻址就是把操作数直接在指令中给出,即操作 数包含在指令中。立即操作数有8位和16位两种形式, 前面加“#”来表示。
CLR A ;0→A,累加器A中的内容清零 循环移位指令(4条)
RL A ;累加器A中的内容左移一位 RR A ;累加器A中的内容右移一位 RLC A ;累加器A中的内容连同进位位C左移一位 RRC A ;累加器A中的内容连同进位位C右移一位 例:A=16H,指令RR A执行后,A=0BH。
4.控制转移类指令 (共17条)

第3章MCS-51单片机的指令系统

第3章MCS-51单片机的指令系统

第3章MCS-51单片机的指令系统

本章内容

MCS-51单片机指令系统的格式

MCS-51单片机寻址方式

指令系统的分析

本章采用简单例程讲解解汇编语言指令功能

3.1 指令格式

指令:即命令,人们给计算机的命令

指令有两种表示方式:

机器码——机器语言(机器能直接识别)

助记符——汇编语言(供设计人员使用)机器码和助记符一一对应,汇编语言可汇编为机器语言,机器语言可反汇编为汇编语言。

3.1 指令格式

汇编语言格式:

[标号:] 操作码助记符[操作数] ;[注释]

START : MOV A , #20H; 把数20H送入累加器A 中INC A; (A)加一

汇编语言指令的形式:

(1)没有操作数:

RET,RETI,NOP

(2)有1个操作数:

INC A,DEC 20H,CLR C,SJMP NEXT

(3)有2个操作数:

MOV R7, #DATA,ADD A, R0,DJNZ R2, LOOP (4)有3个操作数:

CJNE A, #20H, NEQ

机器语言的形式:

(1)单字节指令:

INC DPTR 指令机器代码:A3

ADD A, R7 指令机器代码:2F

(2)双字节指令:

SUBB A, 2BH 指令机器代码:95 2B

ORL C, /27H 指令机器代码:A0 27 (3)三字节指令:

MOV 20H, #00H 指令机器代码:75 20 00

3.2 MCS-51 单片机的寻址方式

寻址方式:CPU执行指令时获取操作数的方式MCS-51单片机有7种不同的寻址方式:

(1)立即寻址方式

(2)直接寻址方式

(3)寄存器寻址方式

大学课件MCS51单片机指令系统与汇编语言程序设计

大学课件MCS51单片机指令系统与汇编语言程序设计

2.2.1 立即寻址
定义:将立即参与操作的数据直接写在指令中,这种寻址方 式称为立即寻址。 特点:指令中直接含有所需的操作数。该操作数可以是8位的, 也可以是16位的,常常处在指令的第二字节和第三字节的位 置上。立即数通常使用#data或#data16表示,在立即数 前面加“#”标志,用以和直接寻址中的直接地址(direc或 bit)相区别。 P41例
表该位地址。位地址n可以是绝对地址,也可以是符号地址。
(8)数据地址赋值伪指令DATA
格式:字符名称x DATA 表达式n
功能:把表达式n的值赋值给左边的字符名称x。n可以是数据或地址,
也可以是包含所定义的“字符名称x”在内的表达式,但不能是汇编符号。 DATA与EQU的主要区别是:EQU定义的“字符名称”必须先定义
后使用,而DATA定义的“字符名称”没有这种限制。所以,DATA伪指令 通常用在源程序的开头或末尾。
2.1.2 指令的分类
MCS-51指令系统有111条指令,可按下列几种方式分类: n 按指令字节数分类
单字节指令(49条)、双字节指令(46条)和三字 节指令(16条)。 2. 按指令执行时间分类
单机器周期指令(65条)、双机器周期指令(44条) 和四机器周期指令(2条)。 3. 按功能分类
2.2 MCS-51单片机的寻址方式
寻址方式:在计算机中,说明操作数所在地址的方法称为指令 的寻址方式。

MCS-51单片机指令系统

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。

MCS-51单片机指令系统

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指令系统中有两条读程序存储器中表格数据的指令。 因为对程序存储器只能读不能写,所以查表指令数据传送都是单向的, 即从程序存储器到累加器中。

MCS-51系列单片机的指令系统

MCS-51系列单片机的指令系统
这里需要注意三个问题, 一是:如果操作数是A,则是寄存器寻址,如果是ACC,则是直
接寻址,虽然二者都是指一个存储空间; 二是:对于特殊功能寄存器SFR和位地址空间,这是唯一的寻址
方式, 三是:对于片外的数据存储器地址空间不能使用直接寻址。 例如:MOV A,3AH 代表的意思就是将地址为3AH的存储单元
bit 位地址,针对片内数据存储器中的可位寻址的位使用; DPTR 数据指针,可用做16位的地址寄存器; (X) X指寄存器或十六进制数,则(X)为指向以X寄存器中的内
容为目标地址的单元或以十六进制数据为目标Байду номын сангаас址的单元; ← 数据传送的方向,将左边的内容送入右边; A 累加器; ACC 直接寻址方式的累加器; B 寄存器B; C 进位标志位,是布尔处理机的累加器,也称为位累加器。
任何一种处理器都必须经过设计人员对
其进行以指令为基础的程序设计才能够使得 处理器应用到系统中,完成相应的功能,也 就是说指令系统是所有处理器完成任务所具 备的最基本的条件,而不同机型的指令系统 是不同的,本章主要介绍51系列单片机的寻 址方式、指令格式及其功能。
在计算机指令系统的发展历史中,其指令系统是
单元,并且将其内容送入累加器A,结果A=05H。
相对寻址主要是针对跳转指令而言的。以程序寄存器PC作为 基址寄存器,指令中给出相对偏移量(rel),而实际目标地 址为PC的当前内容与偏移量之和。也就是说跳转去的目标指 令的地址是正在执行的指令地址加上偏移量。

第三章MCS51的指令系统

第三章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指令系统概述

MCS-51指令系统概述

MCS-51指令系统概述

1. 引言

MCS-51指令系统是一种被广泛使用的8位微控制器指令集架构。

它是Intel公司于1980年代开发的,旨在满足各种嵌入式系统的需求。MCS-51指令系统提供了丰富的指令集,包括数据操作、控制流程和

I/O操作等指令,可用于开发各种应用。

2. 指令格式

MCS-51指令系统的指令由不同长度的操作码组成,通常包括一个

或多个操作数。以下是MCS-51指令系统的指令格式:

[操作码] [操作数1] [操作数2]

其中,操作码表示要执行的操作,操作数用于指定相关数据或地址。

3. 数据操作指令

MCS-51指令系统提供了丰富的数据操作指令,方便对数据进行加载、存储和处理。以下是一些常用的数据操作指令:

•MOV:将一个操作数的值复制到另一个操作数。

•ADD:将两个操作数相加,并将结果存储在目标操作数中。

•SUB:将第二个操作数从第一个操作数中减去,并将结果存储在目标操作数中。

•INC:将操作数的值加1。

•DEC:将操作数的值减1。

4. 控制流程指令

MCS-51指令系统提供了各种控制流程指令,用于实现条件和无条件的控制流程。以下是一些常用的控制流程指令:

•JMP:无条件跳转到指定的地址。

•JZ:如果零标志位被设置,那么跳转到指定的地址。

•JC:如果进位标志位被设置,那么跳转到指定的地址。

•CALL:调用一个子程序,并将返回地址存储在堆栈中。

5. I/O操作指令

MCS-51指令系统提供了丰富的I/O操作指令,用于控制外设设备的输入和输出。以下是一些常用的I/O操作指令:

•MOV:将一个操作数的值复制到特殊功能存放器或外设设备存放器。

MCS-51单片机的指令系统

MCS-51单片机的指令系统

可以用做间接寻址的寄存器:R0和R1,数据指针 寄存器DPTR;用寄存器名前加“@”符号来表示。
13
5、变址寻址 、
变址寻址是以某个寄存器的内容为基本地址, 变址寻址是以某个寄存器的内容为基本地址,然后在这个 某个寄存器的内容为基本地址 基本地址基础上加上地址偏移量才是真正的操作数地址, 基础上加上地址偏移量才是真正的操作数地址 基本地址基础上加上地址偏移量才是真正的操作数地址, 并将这个地址单元的内容作为指令的操作数. 并将这个地址单元的内容作为指令的操作数 例如: 例如:MOVC A,@A+DPTR; ,
所有软件, 所有软件,都要翻译成计算机能直接识别和执行 的命令,才能由计算机去执行。 的命令,才能由计算机去执行。这种计算机能直 接识别和执行的命令称为指令 指令。 接识别和执行的命令称为指令。一台计算机所能 执行的全部指令的集合称为这台计算机的指令系 执行的全部指令的集合称为这台计算机的指令系 统。
10
2、寄存器寻址 、
寄存器寻址就是以通用寄存器的内容作为操作数,在指令 的助记符中直接以寄存器的名字来表示操作数位置。 在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。 例如 MOV A,R0 MOV A,R3
来自百度文库
11
3、直接接寻址 、
• 在指令中直接给出操作数地址,就属于直接寻址方式。此 时,指令的操作数部分直接是操作数的地址。 例如: 例如:MOV A,3AH;A ← 68H , ;

单片机教程3-MCS-51指令系统

单片机教程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单片机指令系统讲义

MCS51单片机指令系统讲义

无操作数:如 INC DPTR 10100011B
INC A
00000100B
【特点】:操作数隐含在操作码中。
含有操作数寄存器名称的单字节指令:
如:MOV A,R0
11101000B
MOV A,R1
11101001B
【特点】:寄存器名以三位数代码的形式在指令的后三位。
双字节指令(46条):
指令的操作码和操作数各占一个字节。 如:
04
03
02
01
00
返回前一次
2.2.3立即寻址
指令本身直接含有所需要的8位或16位的操作数。
将此数称为“立即数”(使用#标明)。如:
MOV A,#30H
;将(8位)立即数送累加器A
MOV DPTR,#2000H ;16位立即数送DPTR积存器
【注意】:MOV A,#30H MOV A,30H 两者的区别。 立即数寻址的指令长度为2或3个字节。
MOV A,#data
01110100B data
很明显:8位的操作数本身占据一个字节。
程序存储器
n 01110100 n+1 data
mov a,#data
双字节指令在程序存储器的存放示意图
三字节指令(16条):
指令中的操作数为双字节。如:
MOV DPTR,#data16 1001000B,data15-8,data7-0

MCS-51单片机的指令系统

MCS-51单片机的指令系统

3.3
算术运算类指令
(2)减1指令 DEC A DEC Rn DEC direct DEC @Ri 将源操作数减1再放回原来的存储单元.
3.3
算术运算类指令
3.乘法指令 MUL AB 把累加器A和寄存器B中的无符号8位整数 相乘,其16位积的低8位放在累加器A中, 高8位放在B中;


按指令的执行时间可分为以下三类: (1) 单周期指令(64条) (2) 双周期指令(45条)
(3) 四周期指令(2条)


第三章 MCS-51单片机的指令系统

按指令的功能可分为以下五类:
(1) 数据传送类指令(29条)
(2) 算术运算类指令(24条)
(3) 逻辑运算类指令(24条) (4) 控制转移类指令(17条) (5) 位操作类指令(17条)

数据传送类指令


例:设(SP)=60H,(ACC)=30H, (B)=70H。执行下列指令: PUSH ACC PUSH B 结果:(61H)=30H,(62H)=70H, (SP)=62H
3.2 数据传送类指令

POP direct 指令执行中,机器也自动进行两步操作: (1)direct ((SP)) (2)SP (SP)- 1
3.3 算术运算类指令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV A,40H MOV R1,A MOV P1,#0F0H MOV @R1,30H MOV DPTR,#1234H MOV 40H,38H MOV R1,30H MOV 90H,R1 MOV 48H,#30H MOV A,@R1
16
MOV P2, P1
•已知A=7AH, R0=30H, (30H)=A5H, PSW=81H
• 堆栈操作指令(2条)
PUSH direct POP direct
• 累加器与片外RAM传送指令(4条)
MOVX MOVX MOVX MOVX
A, @DPTR @DPTR, A A, @Rj @Rj, A
(16位地址指针, 寻址范围64K)
(8位地址指针,寻址 范围256字节) 10
•查表指令(2条)
MOVX访问片外RAM
1
•直接寻址
MOV A,69H
操作数的直接地址
直接寻址访问的存储空间:
• 特殊功能寄存器(只能用直接寻址访问) •片内RAM的低128字节(对于52系列片内 RAM高128字节,用寄存器间接寻址访问) • 位地址空间 • 程序存储器 如 LJMP addr16
2
• 变址寻址(基址寄存器+变址寄存器间接寻址)
第三章 MCS-51单片机的指令系统
第一节、寻址方式
• 立即寻址
MOV A,#0FFH
•寄存器寻址
操作数
MOV A,R0
寄存器内பைடு நூலகம்作为操作数
•寄存器间接寻址 MOV A,@R0
寄存器内容作为
R0 65H
操作数地址 注意:工作寄存器中仅
65H 47H
R0、R1可用于间接寻址,
A 47H
RAM
且MOV访问片内RAM,
PUSH DPL MOV DPTR,#7000H MOVC A,@A+DPTR POP DPL
POP DPH 13
结果:(A)=02H, (DPTR)=原值
•字节交换指令(3条)
XCH A,Ri XCH A,direct XCH A,@Rj
• 半字交换(1条)
XCHD A,@Rj;
• A半字节交换
SWAP A
14
第三章作业1
• 完成以下数据传送:
1、R1内容传送到R0
2、外部 RAM 20H 单元内容送内部RAM
20H 单元
3、外部 RAM 1200H 单元内容送R0
4、外部 R0M 2000H 单元内容送R0
5、外部 R0M 2000H 单元内容送外部 RAM
20H 单元
15
•在8051片内RAM中,已知 (30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H 说出顺序执行下列指令后的结果。
18
例: 设(A)=0C3H, (R0)=0AAH 执行 ADD A, R0
(A) : 1100 0011 + (R0): 1010 1010
1 0110 1101
进位 半进位
结果: (A)=6DH, 标志位: CY=1, OV=1, AC=0
19
•带进位加法指令(4条)
ADDC A, Ri ADDC A, direct ADDC A, @Rj ADDC A, #data
7
1、数据传送
• 数据传送到累加器A(4条)
MOV A,Ri MOV A, direct
MOV A, @Rj
MOV A, #data
•数据传送到工作寄存器 Ri (3条)
MOV Ri, A MOV Ri, direct MOV Ri, #data
注:无MOV Ri,Ri 传送指令 8
•数据传送到内部RAM或SFR(8条)
MOV MOVC MOV
A, #0DH A, @A+PC R0, A
结果:(A)=02H, (R0)=02H , (PC)=1004H
12
例2:用DPTR为基址寄存器查表
在ROM 中,表格为: 7010H:02H 7011H:04H 7012H:06H 7013H:08H
执行程序: MOV A,#10H PUSH DPH
• 特殊功能寄存器(SFR)只能采用直接寻址 • 片内RAM低128字节可采用直接寻址,也
可采用寄存器间接寻址 • 片内RAM高128字节只能采用寄存器间接
寻址(针对52系统) • 片外RAM只能采用 MOVX 指令访问
5
二、程序状态字PSW(D0H)
C AC F0 RS1 RS0 OV F1 P
MOVC A,@A+DPTR
DPTR 0251H +
A 12H
A 1EH
0263H 1EH
ROM/EPROM
3
•相对寻址
PC ROM 2000H 40 2001H 06 2002H
2008H
JC 06H
JC 06H ALU
2002H
• 位寻址
CLR 6FH
4
MCS-51单片机寻址原则
• 程序存储器只能采用直接寻址、相对寻址 和基址加变址的间接寻址方式
• C--进位标志 有进位(借)位C=1
无进位(借)位C=0
• AC--半进位标志
• F0, F1--用户标志
• RS1,RS0--工作寄存器指针
• OV--溢出标志 , 溢出OV=1
• P--奇偶标志,A中奇数个1时,P=1
6
第二节、MCS-51指令系统
8051指令系统有111条指令组成 • 数据传送:28条 • 算数运算:24条 • 逻辑运算:25条 • 位操作: 17条 • 控制转移: 17条
问执行以下各指令的结果
1、XCH A, R0 ;A=30H, R0=7AH
2、XCH A,@R0 ;A=0A5H,(30H)=7AH
3、SWAP A
;A=0A7H
17
2、算数运算指令
• 不带进位加法指令(4条) ADD A, Ri ADD A, direct ADD A, @Rj ADD A, #data
MOV MOV MOV MOV MOV MOV MOV MOV
direct, A direct, Ri direct, direct direct, @Rj direct, #data @Rj, A @Rj, direct @Rj, #data
9
• 16位数据传送指令(1条)
MOV DPTR, #data16
近程查表:
MOVC A, @A+PC 只能查指令所在地址以后256字节范围内的表格
远程查表:
MOVC A, @A+DPTR 查表范围可达64K
11
例1:ROM中有一表格为
1010H : 02H
1011H : 04H
1012H : 06H
1013H : 08H
执行程序: 1000H: 1002H: 1003H:
相关文档
最新文档