8051单片机指令系统的7种寻址方式解析

合集下载

80C51单片机指令系统的7种寻址方式

80C51单片机指令系统的7种寻址方式

80C51单片机指令系统的7种寻址方式寻址方式就是寻找操作数或指令地址的方式。

寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。

寻址方式是计算机性能的具体表达,也是编写汇编语言程序的根底,必须非***悉并灵活运用。

对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。

若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。

80C51单片机指令系统共有7种寻址方式,包括:立即寻址、存放器寻址、直接寻址、存放器间接寻址、变址寻址、相对寻址和位寻址。

现以7条指令为例说明这7种寻址方式。

(1)立即寻址:将操作数直接写在指令中。

如指令①:MOV A,#3AH 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。

注意,立即数前面必须加“#”号,以区别立即数和直接寻址。

该指令的执行过程如图1所示。

图1 立即数寻址示意图(2)存放器寻址:是指将指令操作数存放于存放器中,存放器包括工作存放器R0~R7、累加器A、通用存放器B、地址存放器DPTR等。

如指令②:MOV A,R0 ;(A)←(R0)该指令将存放器R0中的数送入累加器A中,因为指令源操作数为存放器R0,所以称此寻址方式为存放器寻址。

如果程序状态存放器PSW的RS1RS0=00(选中第0组工作存放器,对应地址为(00H~07H),设RAM区00H 的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。

该指令执行过程如图2所示。

图2 存放器寻址示意图(3)直接寻址:是指把存放操作数的内存单元的地址直接写在指令中。

在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能存放器SFR区。

如指令③:MOV A,30H ;(A)←(30H)该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。

第3章 80C51系列单片机指令系统

第3章  80C51系列单片机指令系统

变址寻址示图
内部ROM 内部RAM
3AH 0046H 65H
操作数
寄存器
目的地
3AH 0046H
A
DPTR PC
基址寄存器 0012H
变址寄存器 34H
MOVC A, @A+DPTR
• 6.位寻址方式

80C51具有位处理功能,可以对数据位进行操作。 位寻址指令中应直接使用位地址,它属于直接寻址方式, 因此与直接寻址执行过程基本相同,但参与操作的数据 是1位,而不是8位。
指令一般由两部分组成,即操作码(表示指令的操作功能)和 操作数(参加操作的数据或数据地址)。 •由于计算机只能识别二进制数,所以计算机的指令均由二进制 代码组成。为了阅读和书写方便,常把它写成十六进制形式, 通常称这样的指令为机器指令。
• 机器语言级指令格式: • 1、单字节指令:对于单字节指令有两种情况:一种是 操作码、操作数均包含在这一个字节之内;另一种情况 是只有操作码无操作数;格式为: • 操作码 • 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 • 2、双字节指令:对于双字节指令,均为一个字节是操 作码,一个字节是操作数;格式为: • 操作码 操作数 • 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 • 3、三字节指令:对于三字节指令,一般是一个字节为 操作码,二个字节为操作数;格式为: • 操作码 第一操作数 第二操作数 • 如:“MOV 20H,#46H”所对应的机器语言指令为 “E52046H”。()
• 为了便于记忆和使用,制造厂家对指令系统的每一条指令都 给出了助记符。助记符是根据机器指令不同的功能和操作对 象来描述指令的符号。由于助记符是用英文缩写来描述指令 的特征,因此它不但便于记忆,也便于理解和分类。这种用 助记符形式来表示的机器指令称为汇编语言指令。计算机的 指令一般用汇编语言指令来表示。 • 80C51汇编语言指令格式如下: • [标号:] 操作码 [目的操作数]

单片机原理和应用教程第3版习题课后的答案解析

单片机原理和应用教程第3版习题课后的答案解析

《单片机原理及应用程序》(第三版)习题参考答案第一章1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么?在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二进制数的形式。

可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。

十六进制数可以简化表示二进制数。

2.(1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH(4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H3.(1) 0B3H (2)80H (3) 17.AH (4) 0C.CH4.(1)01000001B 65 (2) 110101111B 4315.(1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100(5) 10000001 11111110 111111116.00100101B 00110111BCD 25H7. 137 119 898.什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。

一般情况下,可分为系统总线和外总线。

系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。

地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。

在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。

控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。

CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。

8051单片机寻址方式

8051单片机寻址方式

8051单片机寻址方式8051单片机共有7种寻址方式。

寻址方式是指令中确定操作数的形式,用来确定操作数所处的存储空间。

1.立即寻址:在指令中直接给出操作数MOV A, #80H 8位操作数MOV A, #2000H 16位操作数2.直接寻址:指令中直接给出操作数地址(1)SFR,这一存储空间只能使用直接寻址MOV PSW, #50H(2)内部数据RAM,这一存储空间可以使用直接寻址和寄存器间接寻址MOV A, 30H3.寄存器寻址:以通用寄存器的内容作为操作数(通用寄存器包括A, B, DPTR, R0~R7)INC DPTR注意:A、B既是通用寄存器,也是SFR(直接寻址)4.寄存器间接寻址:以寄存器中的内容作为操作数的地址能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP区分内部数据RAM寻址和外部数据RAM寻址:外部数据RAM寻址指令上采用MOVX 对内部数据RAM寻址:使用8位的R0或者R1即可MOV @R0, A对外部数据RAM寻址:使用P2端口提供高8位地址,使用R0或者R1提供低8位地址;或者使用16位的DPTR提供地址MOVX A, @R1MOVX @DPTR, A5.变址寻址:以基址寄存器PC或者DPTR与变址寄存器A中的内容之和作为操作数的地址变址寻址只能对程序存储器中的数据进行寻址,由于程序存储器是只读的,因此变址寻址只有读操作,指令上采用MOVCMOVC A, @A+DPTRMOVC A, @A+PC6.相对寻址:用于修改PC的值,使得PC加上指令中给出的一字节的偏移量由于转移指令有两字节和三字节这两种形式,因此偏移量的范围分别为-126~+129和-125~+130SJMP 80H7.位寻址:以位地址中的内容为操作数SETB 20HMOV 32H, C总结一下各种寻址方式的使用场合:立即寻址:常数直接寻址:SFR和内部数据RAM寄存器寻址:寄存器区寄存器间接寻址:内部数据RAM和外部数据RAM变址寻址:程序存储器相对寻址:PC位寻址:位地址区。

单片机的几种寻址方式

单片机的几种寻址方式

单片机的几种寻址方式
寻址就是寻找指令中操作数或操作数所在的地址。

所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。

通常指源操作数的寻址方式。

MCS-51 系列单片机寻址方式共有七种:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

1、寄存器寻址
寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。

寄存器可以使用寄存器组R0~R7 中某一个或其它寄存器(A,B,DPTR 等)。

例如:
MOV A,R0 ;(R0 )→A
MOV P1,A ;(A)→P1
ADD A, R0 ;(A)+(R0) →A。

七种寻址方式.ppt

七种寻址方式.ppt
其中Ri中的内容为40H,把内部RAM中40H单元的内容送 到A。
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
MOVX A,@DPTR
(3)片外数据存储器的低256字节
例如:MOVX A,@Ri
(4)堆栈区
堆栈操作指令PUSH(压栈)和POP(出栈)使用堆 栈指针(SP)作间址寄存器
寄存器DPTR等。
1020
程序存储区 EA
片内RAM区
12
R2
4A
ACC
4A
MOV A,R2执行示意图
2.直接寻址方式 操作数直接以单元地址的形式给出: MOV A,40H 寻址范围: (1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出。例如: MOV A,80H 与 MOV A,P0是等价的。
地址 译码
寄存器区 内部控制信号
数据缓冲器 外部数据总线DB
指令 时钟及清零 寄存器
译码
外部控制总线CB
返回
D7 D6 D5 D4 D3 D2 D1 D0 27H 0 0 1 0 0 0 0 0
3F 3E 3D 3C 3B 3A 39 38
图4.9 SETB 3DH 指令执行示意图
7.相对寻址方式
在相对寻址的转移指令中,给出了地址偏 移量,以“rel”表示,即把PC的当前值加上偏 移量就构成了程序转移的目的地址:
目的地址=转移指令所在的地址 + 转移指令的字 节数 + rel
偏移量rel是一带符号的8位二进制数补码数 。
范围是:–128 ~ +127
向地址增加方向最大可转移(127+转移指令字节) 个单元地址,向地址减少方向最大可转移 (128-转移指令字节)个单元地址。

七种寻址方式及单片机执行过程

七种寻址方式及单片机执行过程


20E0

47
ALU
MOVC A,@A+DPTR执行示意图
6.位寻址方式 MCS-51有位处理功能,可以对数据位进行操作,例如: MOV C,40H 是把位40H的值送到进位位C。 寻址范围包括: (1)内部RAM中的位寻址区。位有两种表示方法,例如, 40H;另一种是单元地址加上位,例如,(28H).0,指 的是28H单元中的最低位。它们是等价的。 (2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法: a. 直接使用位地址。例如PSW.5的位地址为0D5H。
地址 译码
你知道PC 的作用吗?
寄存器区 数据缓冲器 内部控制信号 指令 寄存器 译码 外部数据总线DB
时钟及清零
外部控制总线CB
返回

MOV
A, 3AH
程序存储区
;把3AH单元的内容送A。
500 501
E5 3A 3A
片内RAM区 10
ACC
10
MOV
A, 3AH执行示意图
3. 寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“@” 访问内部RAM或外部数据存储器的低256个字节时,只 能采用R0或R1作为间址寄存器。例如: MOV A,@Ri ;i=0或1 其中Ri中的内容为40H,把内部RAM中40H单元的内容送 到A。 寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如: MOVX A,@DPTR
MOV A, #3AH
程序存储区 100 101 74 3A
;立即数3AH送累加器A
操作码 立即数
ACC 3A
MOV

MCS-51单片机寻址方式小结

MCS-51单片机寻址方式小结

MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结20__-08-2920:34:02|分类:エ程|标签:|字号大中小订阅MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。

寻址方式定义操作数存放(1)通用寄存器R0~R7;寄存器于寄存器中,(2)部分专用寄存器,例如累加器A、寄存器B以寻址指令中给出数据指针DPTR等名寄存器存放操作数的(1)内部RAM中的低128地址单元,地址范围为内存单元地址00H~FFH;直接寻址直接写在指令中立即数操作数直接寻址写在指令中(2)专用寄存器。

专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。

源操作数为立即数,立即数前面必须加“#”号,以区别立即数和直接地址(1)内部RAM的低128字节。

对内部RAM的低128字节单元的间接寻址,只能使用R0或R1做间将存放操作接寻址寄存器,其通过形式为@Ri(i=0或1);MOVP1,#55HMOVDPTR,#20__HMOVR1,20HMOVA,P1CLRAMOVP1,R4MOVA,R1寻址区域指令举例数的内存单元(2)外部RAM的64K字节。

对外部RAM的64KMOVA,@R0寄存器的地址放在寄字节的间接寻址,使用DPTR作间接寻址寄存器,MOVXA,@DPTR间接寻址存器中,指令其形式为@DPTR;MOVXA,@R0中只给出该寄(3)外部RAM的低256字节。

外部RAM的低256存器字节是一个特殊的寻址区,除了可以使用DPTR作间接寻址寄存器外,还可以使用R0或R1作间接寻址寄存器将基寄存器变址寻址与变址寄存器的内容相(1)变址寻址是专门针对程序存储器的寻址方式,所以只能对程序存储器进行寻址,寻址范围为64K字节;MOVCA,@A+PC加,结果作为操作数的地址(2)变址寻址指令只有2条:MOVCA,@A+PCMOVCA,@A+DPTR将程序计数器PC的当前内容与指令相对寻址中的操作数相加,其结果作为跳转指令的转移地址(1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,每个单元包括8个位,共按位进行的位寻址操作(2)特殊功能寄存器SFR中的11个寄存器可以位寻址,包括83个位计128个位,位地址为00H~7FH;MOVC,0D0HMOVC,0DOH.0MOVC,PMOVC,PSW.0专门为改变程序执行方向而设置的SJMP54H扩展阅读:课题MCS-51型单片机的寻址方式广告灯设计软件部分课题MCS-51型单片机的寻址方式授课方式:讲授教学目的:1.让学生了解汇编语言指令的格式;2.让学生掌握单片机指令的7种寻址方式。

单片机课后习题答案

单片机课后习题答案

单片机课后习题答案思考题与习题部分参考答案第1章答案1.解:MCS-51为主流产品。

MSP430的功能较强。

是一种特低功耗的Flash微控制器。

主要用于三表及超低功耗场合。

EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。

具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。

具有优越的数据处理性能,采用RISC结构设计。

PIC系列8位单片机是Microchip公司的产品。

CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。

Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。

其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。

AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU 直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。

端口有较强的负载能力,可以直接驱动LED。

支持ISP、IAP,I/O口驱动能力较强。

2.解:MCS-51单片机在片内集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O接口、串行I/O接口和中断系统等几大单元。

CPU是整个单片机的核心部件,由运算器和控制器组成。

运算器可以完成算术运算和逻辑运算,其操作顺序在控制器控制下进行。

控制器是由程序计数器PC (Program Counter)、指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)、定时控制逻辑和振荡器OSC等电路组成。

CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR 中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。

程序存储器(ROM)用于存储程序、常数、表格等。

第3章80C51系列单片机指令系统

第3章80C51系列单片机指令系统

注意:
① 变址寻址方式只能对ROM(包括片外、片内)寻址,因 此只能用于读取数据,而不能用于存放数据,主要用 于查表性质的访问 ② 变址寻址指令有:(单字节两周期指令)
MOVC
MOVC
A,@A+PC
A,@A+DPTR
PC值不变
JMP
@A+DPTR
→PC值变
③ A中的数是无符号数,范围00H~FFH
寻址方式与相应的存储器空间
寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 程序存储器ROM 片内RAM低128字节,特殊功能寄存器SFR,程序存储器ROM 工作寄存器R0~R7,A,AB,DPTR,Cy 片内RAM低128字节(@R0、@R1、SP),片外RAM(@R0、 @R1、@DPTR) 程序存储器(@A+PC,@A+DPTR) 程序存储器当前PC−128 B~+127 B(字节)范围(PC+rel)
7.bit
位地址。代表片内RAM中的可寻址位00H~7FH及SFR 中的可寻址位。
8.其他符号
DPTR:数据指针,可用作16位的地址寄存器。 A:累加器。 B:专用寄存器,用于乘、除指令中。 C:进位标志。 /bit:表示对该位取反操作。 (X):X中的内容。 ((X)):由X所指出的单元中的内容。
例如:下列指令均采用的是立即数寻址方式: MOV P1, #55H ;将立即数55H送到P1口 MOV 20H, #55H ;将立即数55H送到20H单元中 MOV A, #0F0H ;将立即数0F0H送到累加器A中 MOV R4, #0FH ;将立即数0FH送到寄存器R4中 MOV R0, #20H ;将立即数20H送到寄存器R0中 ANL A, #0FH ;累加器A的内容与立即数0FH进行逻辑“与”操作 ORL A, #0F0H ;累加器A的内容与立即数0F0H进行逻辑“或”操作

第3章 80C51单片机的寻址方式和指令系统

第3章 80C51单片机的寻址方式和指令系统
(1)数据传送类指令(29条);
(2)算术运算类指令(24条);
(3)逻辑运算及移位类指令(24条); (4)控制转移类指令(17条); (5)位操作类指令(17条)。
6
本节内容
3.1.1 汇编语言指令格式 3.1.2 机器码的三种格式 3.1.3 指令中常用符号说明
7
3.1.1 汇编语言指令格式
3.4.1 加法指令 3.4.2 减法指令 3.4.3 乘、除法指令
3.5 逻辑运算及移位类指令(24条)
3.5.1 逻辑与运算指令 3.5.2 逻辑或运算指令
3
第2章:80C51系列单片机基本结构及原理
3.5.3 逻辑异或运算指令 3.5.4 累加器清零、取反指令 3.5.5 循环移位指令
目录
3.6 控制转移类指令(17条)
解:指令执行过程如图3-3,结果:(A)= 60H 。 指令在ROM中的机器码为E8H,指令对应的机器码是:E8H=1110 1000B,二进 制的后三位000就是隐含的R0寄存器的编码,如果是R7其编码为111。 由于寄存器在CPU内部,所以采用寄存器寻址可以获得较高的运算速度。
31
32
能实现这种寻址方式的寄存器有: (1)工作寄存器 R0~R7 (4组工作寄存器均可) (2)累加器A (注:使用A为寄存器寻址,使用ACC为直接寻址) (3)寄存器B (注:以AB寄存器对的形式出现时为寄存器寻址,单独出现
一条完整的汇编语言指令通常由标号、操作码、操作数 (一般包括目的操作数和源操作数)及指令的注释构成。 指令格式: [标号:] <操作码> [操作数] [,操作数][;注释]
说明:
①在一条指令中,方括号中的内容可有可无,尖括号中的内容 必须有。

ch3 8051指令系统.

ch3  8051指令系统.

变址寻址示意图
累加器A 02H DPTR 0300H 0300H + 02H 0302H (DPTR) (A)
ROM 81
64 49 36
ALU
25
16 9
0302H
4
1 0
MOVC A,@A+DPTR
0300H

相对寻址
相对寻址是转移指令中使用的一种寻址方式。 执行指令时将当前PC值与指令中的8位偏移 量rel(补码)进行相加,形成实际转移的目标 地址。 例如:JZ 61H
3.2 寻址方式
寻址方式要解决什么问题?
8051指令系统共有7种寻址方式。


立即寻址 立即寻址是将操作数直接存放在指令中, 作为指令的一部分存放在代码段里。立即寻址 中的数,称为立即数。 例如:MOV A,#30H 直接寻址 直接寻址是将操作数的地址直接存放在指 令中。这种寻址方式的操作数只能存放在内部 数据存贮器和特殊功能寄存器中。 例如:MOV A,30H
查表指令举例1
ORG 8000H MOV A ,#40H MOVC A,@A+PC;(A)=? … ORG 8040H DB 41H 42H 43H 44H
(A)=44H
查表指令举例2
ORG 8000H … PUSH DPH PUSH DPL MOV A ,#03H MOV DPTR,#8040H MOVC A,@A+DPTR;(A)=? POP DPL POP DPH … ORG 8040H DB 41H 42H 43H 44H
例:分析下列指令
1、
2、 3、 4、 5、
MOV R0,#20H MOV @R0,#05H 与
MOV P1,#80H MOV R1,#82H MOV A,@R1 与

51单片机寻址方式

51单片机寻址方式

51单片机的寻址方式寻址方式:指定操作数所在单元的方法。

在我们学习的8051单片机中,有7种寻址方法,下面我们将逐一进行分析。

一、立即寻址用“#”作前缀MOV A,#20H在这种寻址方式中,指令多是双字节的。

立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。

例如:MOV A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。

MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。

这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。

二、直接寻址指令中直接给出操作数的地址。

MOV A,30H;这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。

MOV 30H,DPH在80C51单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器,具体的说就是:1、内部数据存储器RAM低128单元。

在指令中是以直接单元地址形式给出。

我们知道低128单元的地址是00H-7FH。

在指令中直接以单元地址形式给出这句话的意思就是这0-127共1 28位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。

2、位寻址区。

20H-2FH地址单元。

3、特殊功能寄存器。

专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。

例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是此指令也可以以 MOV 80H,#85H的形式表述。

直接寻址是唯一能访问特殊功能寄存器的寻址方式!大家来分析下面几条指令:MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中MOV A,direct ;将直接地址单元的内容送入A中MOV direct,direct;将直接地址单元的内容送直接地址单元MOV IE,#85H ;将立即数85H送入中断允许寄存器IE前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。

MCS-51单片机指令系统的寻址方式

MCS-51单片机指令系统的寻址方式

MCS-51单片机指令系统的寻址方式1、寄存器寻址寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器R0~R7。

由指令操作码的低3位指示所用的寄存器,寄存器A、B、DPTR和C 位(位处理机的累加器)也可作为寻址的对象。

2、直接寻址直接寻址是访问特别功能寄存器的唯一方法。

它也用于访问内部RAM(低128个字节)。

采纳直接寻址方式的指令是双字节指令,其中第一个字节是操作码,其次个字节是内部RAM或特别功能寄存器的直接地址。

3、寄存器间接寻址寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。

这种寻址方式是由指令指定某一寄存器的内容作为操作数的地址。

访问内部RAM或外部数据存储器的低256个字节时,可采纳R0或R1作为间址寄存器。

4、马上寻址采纳马上寻址方式的指令是双字节的。

第一个字节是操作码,其次字节就是操作数。

因此,操作数就是存放在程序存储器内的常数。

5、基址寄存器加变址寄存器间址寻址这种寻址方式用于访问程序存储器的一个单元,该单元的地址是基址寄存器(DPTR或PC)的内容与变址寄存器A的内容之和。

例如指令“MOVC A,@A+DPTR”,其中A的原有内容为05H,DPTR的内容为4000H,该指令执行的结果是把程序存储器4005H单元的内容传送给累加器A。

6、相对寻址相对寻址用于访问程序存储器,它只消失在相对转移指令中。

相对寻址是将程序计数器PC中的当前值与指令其次字节所给出的数据(该数据也称为偏移量)相加,其和为跳转指令的转移地址。

转移地址也称为转移目的地址。

偏移量是一有符号数,其取值范围为-128~+127。

7、位寻址位寻址是指对片内RAM的位寻址区(20H~2FH)和可以位寻址的专用寄存器进行位操作时的寻址方式。

这种寻址方式与直接寻址方式的形式和执行过程基本相同。

在进行位操作时,借助于进位C作为操作的位累加器,操作数直接给出该位的地址,然后依据操作码的性质对其进行位操作。

单片机指令系统-第3讲寻址方式

单片机指令系统-第3讲寻址方式

单片机指令系统-第3讲寻址方式单片机指令系统第 3 讲寻址方式在单片机的世界里,指令系统就如同它的语言规则,而寻址方式则是这套规则中至关重要的一部分。

简单来说,寻址方式决定了单片机如何找到操作数,也就是数据在存储器中的位置。

就好像我们在图书馆找一本书,需要知道它在哪个书架、哪一排,这就是“寻址”。

在单片机中,常见的寻址方式有以下几种:1、立即寻址立即寻址是最简单直接的一种方式。

在这种寻址方式中,操作数直接包含在指令中。

比如说,指令“MOV A, 50H”,这里的“50H”就是操作数,它直接跟在指令后面,单片机一看就知道要把 50H 这个值送到累加器 A 中。

这种方式的优点是指令执行速度快,因为操作数就在指令中,不需要再去别的地方找。

但缺点也很明显,就是能表示的操作数范围有限,通常只能是 8 位或 16 位的数值。

2、直接寻址直接寻址就稍微复杂一点了。

在这种方式下,操作数的地址直接出现在指令中。

例如,指令“MOV A, 30H”,这里的 30H 是操作数所在的地址,单片机通过这个地址就能找到存储在 30H 单元中的数据,并把它送到累加器 A 中。

直接寻址可以访问片内 RAM 的 00H 7FH 单元以及特殊功能寄存器(SFR)。

但要注意的是,对于 SFR,只能使用直接寻址方式进行访问。

3、寄存器寻址寄存器寻址就是操作数在寄存器中。

比如指令“MOV A, R0”,就是把寄存器 R0 中的内容送到累加器 A 中。

这种方式的优点是指令短,执行速度快,因为寄存器的访问速度通常比内存快得多。

在 8051 单片机中,寄存器寻址可以使用工作寄存器 R0 R7 以及部分特殊功能寄存器。

4、寄存器间接寻址寄存器间接寻址与寄存器寻址有点类似,但操作数的地址在寄存器中。

比如指令“MOV A, @R0”,这里的 R0 中存放的不是操作数,而是操作数的地址,单片机先从 R0 中取出地址,再根据这个地址找到操作数并送到累加器 A 中。

单片机指令的寻址方式及其应用

单片机指令的寻址方式及其应用

单片机指令的寻址方式及其应用在单片机程序设计中,寻址方式是指用于访问或者定位内存中数据或指令的方法。

单片机指令的寻址方式有多种,包括直接寻址、间接寻址、寄存器寻址、立即寻址等。

不同的寻址方式适用于不同的情况和需求,在实际应用中起到重要的作用。

一、直接寻址直接寻址是最简单和最常见的寻址方式之一。

在直接寻址中,指令中包含的是操作数的直接地址。

当单片机执行该指令时,直接从内存中取出该地址对应的数据或指令进行操作或执行。

直接寻址适用于需要直接操作内存数据的场景,通过指定地址可以直接读取或写入数据。

例如,假设有一条指令LOAD A, 0x10,表示将内存地址为0x10的数据加载到寄存器A中。

单片机在执行该指令时,会直接从内存的0x10地址中读取数据并将其存入寄存器A中。

直接寻址的优点是操作简单、直观,缺点是地址空间有限,不能处理较大范围的数据。

二、间接寻址间接寻址是通过指令中给出的地址,再根据该地址所指向的存储单元获取数据或指令。

间接寻址适用于需要通过指针或者索引来访问数据的场景。

例如,假设有一条指令LOAD A, [0x10],表示将从内存地址0x10所指向的地址中读取数据,并将其存入寄存器A中。

在执行该指令时,单片机会首先读取0x10地址中存储的数据,得到实际的数据地址,然后再根据该地址从内存中读取数据。

间接寻址的优点是灵活性高,可以通过间接地址来访问复杂的数据结构,但是需要多次访存,运行效率较低。

三、寄存器寻址寄存器寻址是指指令中直接使用寄存器作为操作数的寻址方式。

在寄存器寻址中,指令中给出的操作数就是寄存器中的值,可以直接对其进行操作。

例如,有一条指令ADD A, B,表示将寄存器A中的值与寄存器B中的值相加,并将结果存入寄存器A中。

寄存器寻址的优点是非常快速,因为数据直接存储在寄存器中,不需要额外的访存操作。

但是由于寄存器数量有限,只适用于数据量较小的情况。

四、立即寻址立即寻址是指指令中直接给出操作数的值的寻址方式。

经典:7种寻址方式

经典:7种寻址方式

15.12.2020
7
的确,这两条指令执行的结果是完全相同的, 都是将00H单元中的内容送到A中去,但是执行的过 程不同,执行第一条指令需要2个机器周期,而第二 条则只需要1个机器周期,第一条指令变成最终的目 标码要两个字节(E5H 00H),而第二条则只要一个 字节(E8H)就可以了。
15.12.2020
15.12.2020
6
3.2.3 寄存器寻址
Register Addressing
对选定的工作寄存器R0~R7、累加器A、通用寄存器B、 地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。
MOV AL,BL (8086CPU的寄存器寻址方式)
提一个问题:我们知道,工作寄存器就是内存单元 的一部分,如果我们选择工作寄存器组0,则R0就 是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗?
寄存器间接寻址
变址寻址 相对寻址
位寻址
15.12.2020
寻址空间(操作数存放空间) 程序存储器
片内RAM低128字节、SFR 工作寄存器R0~R7,A,B,DPTR 片内RAM:@R0,@R1,SP 片外RAM:@R0 ,@R1,@DPTR 程序存储器:@A+PC,@A+DPTR 程序存储器256字节范围内:PC+偏移量 片内RAM的位寻址区(20H~2FH字节地址) 某些可位寻址的SFR
第三章 MCS-51指令系统 Instruction Set
§3.1 概述
7种寻址方式,111条指令
字节数
单字节指令:49条 双字节指令:45条 三字节指令:17条
运算速度

1解:8051的指令系统由111条指令组成如果按字节数分类

1解:8051的指令系统由111条指令组成如果按字节数分类

1001.解:8051的指令系统由111条指令组成。

如果按字节数分类,有49条单字节指令46条双字节指令和16条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,以单周期指令为主。

8051的指令系统具有以下特点:(1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行I/O 口中的内容传送到内部RAM 单元中而不必经过累加器A 或工作寄存器Rn 。

这样可以大大提高传送速度和缓解累加器A 的瓶颈效应。

(2)用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A 中。

这为编成翻译算法提供了方便。

(3)在算术运算指令中设有乘法和除法指令(4)指令系统中一些对I/O 口进行操作的指令具有“读——修改——写”的功能。

这一功能指:在执行读锁存器的指令时,CPU 首先完成将锁存器的值通过缓冲器BUF2度入内部,进行修改、改变,然后重新写到锁存器中去。

这种类型指令包含所有的逻辑操作和位操作指令。

(5)8051单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。

布尔操作类指令有17条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转移指令。

2.解:MCS-51单片机指令系统按功能可分为5类:(1)数据传送指令 (2)算术运算指令(3)逻辑运算和移位指令 (4)控制转移指令(5)位操作指令MCS-51单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表:3.解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。

访问外部数据存储器,应采用寄存器间接寻址方式。

在0~255B 范围内,可用寄存器R0、R1间接寻址:MOVX A ,@R0 或 MOVX A ,@R1寻址方式 使用的变量 寻址范围 立即寻址 程序存储器直接寻址内部RAM 低128个字节; 特殊功能寄存器SFR寄存器寻址 R0~R7;A 、B 、DPTR 、C寄存器间接寻址 @R0、@R1、SP 内部RAM 、堆栈指针SP @R0、@R1、@DPTR 外部RAM变址寻址 @A+PC 、@A+DPTR 程序存储器 相对寻址 PC+偏移量 程序存储器位寻址内部RAM 低128B 位寻址区 可位寻址的特殊功能寄存器位2MOVX @R0,A 或MOVX @R1,A在0~64KB范围内,可用16位寄存器DPTR间接寻址:MOVX A,@DPTRMOVX @DPTR,A4.解:这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8051单片机指令系统的7种寻址方式解析
寻址方式:寻址就是寻找操作数的地址。

绝大多数指令执行时都需要操作数,因此就存在如何确定操作数地址的问题。

所谓寻址方式就是通过什么途径获取操作数的方式。

根据指令操作的需要,计算机总是提供多种寻址方式。

一般来说,寻址方式越多计算机的寻址能力就越强,但指令系统也就越复杂。

8051指令系统有7种寻址方式:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址,相对寻址,位寻址,下面分别介绍。

寄存器寻址
寄存器寻址:寄存器寻址就是操作数在寄存器中,因此指定了寄存器就得到了操作数。

采用寄存器寻址方式的指令都是一字节的指令,指令中以符号名称来表示寄存器。

例如:MOV A R1 这条指令的功能是把工作寄存器R1的内容传送到累加器A中,由于操作数在R1中,因此指令中指定了R1,也就得到了操作数。

寄存器寻址方式的寻址范围包括:工作寄存器组R0~R7,部分特殊寄存器ACC,B,DPTR 等。

直接寻址
直接寻址:直接寻址就是在指令中直接给出操作数所在单元的真实地址。

这里给出的操作数直接地址为8位二进制地址。

程序中一般用十六进制数表示。

例如:指令MOV A,30H 把内部RAM单元30H中的数据传送给累加器A,指令中30H就是操作数的直接地址。

直接寻址方式的寻址范围包括:内部数据存储器低128单元,特殊功能寄存器。

特殊功能寄存器在指令的表示中除了可以以直接地址形式给出外,还可以以寄存器符号形式给出,如对累加器A,在指令中可使用其直接地址OEOH,也可使用其符号形式ACC。

立即寻址
立即寻址:立即寻址方式就是实际操作数作为指令的一部分,在指令中直接给出,取指令时,可在程序存储器中直接取得操作数。

通常把出现在指令中的操作数称为立即数。

采用立即寻址方式的指令,在立即数前面加上。

相关文档
最新文档