产品选型

单片机单元地址 跟电师傅学单片机(9):单片机四种寻址方式图文新解

小编 2025-08-04 产品选型 23 0

跟电师傅学单片机(9):单片机四种寻址方式图文新解

头条号:电工人家,专门请电师傅讲解单片机应用技术,倾力奉献,机会难得,力求做到图文并茂、通俗易懂。欢迎电工电子爱好者关注和阅读,留言讨论,共同学习与提高,分享和普及电知识。

课前一语:每个成功者,都要穿越不为人知的黑暗。强者不是没眼泪,只能是含着眼泪向前跑。虽然泪水和汗水的化学成分相似,但前者只能为我们换来同情,后者却可以为我们赢得成功。

单片机80C51提供了七种寻址方式,前面已经讲了三种,现将余下的四种介绍如下:

四:寄存器间接寻址方式

寄存器间接寻址示意图

单片机指令中的寄存器里面的内容作为操作数的地址,通过地址找到操作数。即操作数是通过寄存器间接得到的,就是要转个弯才能找到操作数。因此称为寄存器间接寻址。指令中的寄存器前面加“@”显著标志。

通过“1”号箱间接找信的地址“2”号箱,找到“2”号箱才能拿到放在里面的信。

通过寄存器“R0”间接找到操作数的地址3AH,找到地址3AH才能找到放在里面操作数65H。

3AH只是个地址,65H才是操作数哦!

例如:

MOV A,@R0;将寄存器R0里面的内容3AH作为一个地址,根据这个地址找到单元中存放的内容65H送到累加器A。

注意:

单片机 寄存器间接寻址只能用以下3种寄存器:R0,R1,DPTR。其它的不具备间接寻址功能。

五:变址寻址方式

变址寻址示意图

基址+变址寻址方式是以DPTR或PC作为基址寄存器(16位寄存器),以累加器A(8位寄存器 )作为变址寄存器,并以两者相加形成的新16位地址作为操作数的地址。指令中的寄存器前面加“@”显著标志。

例 如:

单片机查表指令:查找关键数据

MOVC A,@DPTR+A;把DPTR和A相加作为新的16位地址0302H,根据这个地址得到程序存储器内的内容(操作数)88H送回累加器A中。

MOVC A,@A+PC;以PC作为基址寄存器,以累加器A作为变址寄存器,并以两者相加形成的新16位地址作为操作数的地址。根据这个地址找到操作数送回累加器A。

注意:

MOV指令中加了1个“C”:说明只能到程序存储器中去取数,不能到数据存储器里取数。

六:相对寻址方式

相对寻址示意图

单片机相对寻址和前面5种寻址方式不同,前面5种寻址方式都是找操作数。

相对寻址不是找操作数,不需要是个具体的数据。

是以PC的内容作为基础地址,加上指令中给定的偏移量作为转移地址,它只适用于双字节转移指令。称为单片机相对寻址方式。

例如:

SJMP 03H;

SJMP:跳转,转移。

单片机PC指针下正在指向2003H,本来是一步一步的往下执行。如果想直接跳到2006H处去取指令,就要加上差值03H。

当前PC值与目的PC值的相对差(相对偏移量),现在程序运行的当前地址和将要执行指令的地址之前的差值:

2006H-2003H=03H

将要执行指令的地址:

PC+03H=2003H+03H=2006H

七:位寻址方式

单片机位寻址只有16个单元可以位寻址:从20H~2FH,请看下图:

单片机位寻址地址表

位寻址示意图

在单片机位寻址区内,单片机CPU不仅具有字节寻址能力,而且还可以对16个单元中每一位(一共有128个位)进行寻址。称为位寻址。

例如:

SETB 3DH;将单片机位寻址区的27H单元的D5位:3DH置1。

51单片机学习笔记(51单片机的地址空间)一

MCS-51单片机在物理结构上有四个存储空间

1,片内程序存储器(片内ROM) 类似电脑上的硬盘(只不过很小)

2,片外程序存储器(片外ROM)

3,片内数据存储器(片内RAM)

4,片外数据存储器(片外RAM)

在逻辑上(用户的角度上)MSC-51单片机有三个存储空间

1,片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC)

2,256B的片内数据存储器(片内RAM)地址空间 (MOV) :因为MSC-51单片机是8位的所以能够访问的最大地址空间为2^8次方 即256个字节

3,以及64K片外数据存储器(片外RAM)地址空间 (MOVX)

MSC-51单片机内部数据存储区划分 (以下内容部分来自网络,有自己的理解,可能有错,还望指出)

自己理解:因为MSC-51单片机是8位的,所以能够访问的空间地址编号只能有256个,即0~255,十六进制:0x00 ~0xFF。

地址空间划分:

1:0x00 ~ 0x1F (32个字节)

工作寄存器有4组,每组都是8个工作寄存器R0~R7,通过PSW程序状态字寄存器中的RS1,RS0两位选择使用哪一组,如果不选,默认选择第0组。

RS1 RS0 组合为 0 0时,选中第0组工作寄存器,RO~R7 地址为00H ~07H.

RS1 RS0 组合为 0 1时,选中第1组工作寄存器, RO~R7 地址为08H ~0FH.

RS1 RS0 组合为 1 0时,选中第2组工作寄存器, RO~R7 地址为10H ~17H.

RS1 RS0 组合为 1 1时,选中第3组工作寄存器, RO~R7 地址为18H ~1FH.

当使用R0-R7来表示操作数时,属于寄存器寻址方式

相关问答

【举例说明 单片机 地址 的四种表示方式】作业帮

[最佳回答]表示位地址是在汇编语言中才用的,而在keilc中是不用的.举例说明吧,如寄存器PSW中的8个位是可位寻址的,PSW的单元地址是D0H,其中的进位标志位Cy,可表...

mcs-51 单片机地址 区起始字节?

MCS-51单片机的内部数据存储器(RAM)共有128个字节,地址为00H~7FH。其中的20H~2FH单元是可作为可位寻址的一个区域,共128位,用位地址00H~7FH与之对应。位7FH...

51 单片机 00H到1FH工作区的寻址方式?

51单片机00H到1FH共32个存储单元,分4组,每组8个,都分别叫作R0到R74组中只有一组是工作状态,具体选哪一组,由PSW寄存器中的RS0和RS1两位决定寻址方式,可...

单片机 中什么是 单元 ?

在电子技术上,把单片机sram的最基本存储空间称为单元,每个单元可以存一个数据。单元由位组成,根据机型的不同,单元的位数也不一样:51单片机是8位,称为1个...

8051 单片机 的内部RAM可以分为几个不同的区域?各区域的 地址 范围及其特点?

共256个单元低128:(1)寄存器区。00h-1fh。。共分四组寄存器每组分别是(r0-r7)四组寄存器地址分别为00h-07h工作寄存器0组08h-0fh工作寄存器1组10h-17f...

51 单片机 的寄存器和RAM 地址 ?

51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4组,分别是0组:00H--07H单元、1组:08H--0FH单元、2组:10H--17H单元、3组:18H--1FH单元,....

8051 单片机 主程序从哪个 单元 开始存放?

在没有中断服务程序的前提下,主程序可以从0000H单元开始存放。如果有中断服务程序,一般主程序的起始地址是0100H。按照51单片机的编程规划,0000~00FFH被分配...

单片机 内字节 地址 为2AH 单元 的最低位的位 地址 是?

字节地址为2AH单元的最低位的位地址是:50H。算法如下2A.0H=00101010.000B截取最后7位得1010000B=50H字节地址为2AH单元的最低位的位地址是:50H。算法如下....

ram中知道位 地址 怎么求字节 地址 ?

要求解RAM中的字节地址,需要考虑RAM的存储结构和位宽。假设RAM的位宽是N(以比特为单位),字节地址为B,位地址为A(从0开始计数)。首先,需要计算字节地址...在...

单片机 填空求助1.MCS-51系列单片机为()位单片机.2.8051单片...

[最佳回答]1.MCS-51系列单片机为(8)位单片机.2.8051单片机有两种复位方式,既上电复位和手动复位.复位后SP=(07H),PC=(0000H),PSW=(00H),P0=(F...

猜你喜欢