历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2018年10月10日 | 单片机的几种寻址方式

发布者:cw57324588 来源: eefocus关键字:单片机  寻址方式 手机看文章 扫描二维码
随时随地手机看文章

寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。通常指源操作数的寻址方式。

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

1、寄存器寻址

寄存器寻址是指操作数存放在某一寄存器中,指令中给出寄存器名,就能得到操作数。寄存器可以使用寄存器组R0~R7中某一个或其它寄存器(A,B,DPTR等)。

例如:

MOV A,R0 ;(R0 )→A

MOV P1,A ;(A)→P1

ADD A, R0 ;(A) (R0) →A

单片机的几种寻址方式

2、直接寻址

在指令中直接给出操作数所在的存储单元的地址,称为直接寻址方式。在8051中,使用直接寻址方式可访问片内RAM的128个单元以及所有的特殊功能寄存器(SFR),对于特殊功能寄存器,既可以使用他们的地址,也可以使用他们的名字。

例如:

MOV A, 3AH ;(3AH) →A

又如:

MOV A, P1 ;(P1口) →A

也可写为:

MOV A, 90H ; 90H是P1口的地址。

单片机的几种寻址方式

单片机的几种寻址方式

3、立即数寻址

指令操作码后面紧跟的是一字节或两字节操作数,用 # 号表示,以区别直接地址。例如:

MOV A, #3AH ;3AH→A

MCS-51系列单片机有一条指令,要求操作码后面紧跟的是两个字节立即数,即

MOV DPTR, #DATA16

4、寄存器间接寻址

寄存器中的内容是一个地址,由该地址单元寻址到所需的操作数.

例如: MOV R1,#30H ;(R1)← 立即数30H

MOV @R1,#0FH ;(30H)←立即数0FH

MOV A,@R1 ;(A)←((30H))=#0FH

注意:

“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。

例如,指令MOV A,@R0执行的操作是将R0的内容作为内部RAM的地址,再将该地址单元中的内容取出来送到累加器A中,如图所示。

单片机的几种寻址方式

5、变址寻址 ,也称为: 基址寄存器 变址寄存器间接寻址

以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器,以累加器 A 为变址寄存器,两者中的“内容”形成一个16位的“地址”,该“地址”所指的存储单元中的内容才是操作数。用变址寻址方式只能访问程序存储器,访问的范围为64KB,当然,这种访问只能从ROM中读取数据而不能写入。

例如: MOVC A, @A DPTR ;((A) (DPTR))→A

设:A中已存有#30H,DPTR中已存有#1000H

MOVC A,@A DPTR;(A)←((A) (DPTR))

操作:将30H 1000H=1030H单元中的数放进累加器A

单片机的几种寻址方式
6、相对寻址

相对寻址只出现在相对转移指令中。相对转移指令执行时,是以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。这里所说得PC的当前值是执行完相对转移指令后的PC值,一般将相对转移指令操作码所在的地址称为源地址,转移后的地址称为目的地址。于是有:目的地址=源地址 2(相对转移指令字节数) rel

51单片机指令系统中相对转移指令既有双字节的,也有三字节的。

单片机的几种寻址方式

7、位寻址

采用位寻址方式的指令,操作数是8位二进制数中的某一位。指令中给出的是位地址,是片内RAM某个单元中的某一位的地址。位地址在指令中用bit表示。

例: CLR P1.0 ;(P1.0) ← 0

SETB ACC.7 ;(ACC.7)← 1

CPL C ;( C )← NOT( C )

位地址常用下列三种方式表示;

(1)直接使用位地址表示。对于20H~2FH的16个单元共128位,位地址分布是00H~7FH。

(2)对于特殊功能寄存器,可以直接用寄存器名字加位数表示,如PSW.3、ACC.5等。

(3)对于定义了位名字的特殊位,可以直接用其位名表示,例如:CY、AC等。

寻址方式及对应存储器空间

寻址方式寻址空间
立即数寻址程序存储器ROM、数据存储器RAM
直接寻址片内RAM低128B,特殊功能寄存器
寄存器寻址通用寄存器R0---R7,其他寄存器A、B、DPTR
寄存器间接寻址

片内RAM低128B【@R0、@R1、SP(仅PUSH、POP)】

片外RAM(@R0、@R1、@DPTR)

变址寻址程序存储器、数据存储器、(@A PC、@A DPTR)
相对寻址程序存储器256B(PC 偏移量)
位寻址片内RAM的20H---2FH字节地址、部分特殊功能寄存器

寻址方式中常用符号注释

(1) Rn(n=0~7) 当前选中的工作寄存器R0~R7 。

(2) Ri(i=0,1) 当前选中的工作寄存器组中,可作为间址寄存器

的两个工作寄存器R0、R1。

(3) #data 8位立即数。

(4) # data16 16位立即数。

(5) direct 8位片内RAM单元(包括SFR)的直接地址。

(6) addr11 11位目的地址,用于ACALL和AJMP指令中。

(7) addr16 16位目的地址,用于LCALL和LJMP指令中。

(8) rel 补码形成的8位地址偏移量。

(9) bit 片内直接寻址位地址。

(10)@ 间接寻址方式中,表示间址寄存器的符号。

(11)/ 位操作指令中,表示对该位先取反再参与操作,但

不影响该位原值。

(12)(X) 表示X中的内容。

(13)((X)) 由X指出的地址单元中的内容。

(14) → 指令操作流程,将箭头左边的内容送入箭头右边的单元。


关键字:单片机  寻址方式 引用地址:单片机的几种寻址方式

上一篇:对单片机行业的一些理解
下一篇:实例讲解PIC单片机的时钟设置

推荐阅读

对于人工智能,此前科幻作家阿西莫夫曾制定一套“机器人三定律”,这可以说是一套通用定律。而自去年开始,一些公司从自身出发,制定了适用于本身的人工智能准则,比如微软,提出了人工智能安全6大准则,又比如谷歌,提出不利用人工智能作恶等多项标准。紧跟其后的,据外媒报道,索尼也制定了自己的一套人工智能伦理准则。“索尼必须在这项技术上表明明确...
苹果今年推出iPhone 11,首度调降售价,引发市场追捧,据传苹果将趁胜追击,可能在明年第一季推出较低售价iPhone SE2,主要规格将与iPhone 8相似。天风国际证券分析师郭明錤发布报告指出,苹果可能会推出较低售价iPhone SE2,其外观设计跟主要规格将与iPhone 8相似,但是中央处理器将采用最新款的A13处理器。一般预料,如果苹果即将推出的低价iPhone...
在英伟达(Nvidia)宣布收购Arm不到一个月,AMD迅速做出反应,被爆准备以逾300亿美元收购赛灵思(Xilinx),收购工作有可能最早在下周达成协议。外媒评论认为,AMD此举有可能是应对竞争对手英特尔和英伟达做出的快速反应,并且受到近期一系列并购交易的推动。英特尔在2015年以167亿美元收购了赛灵思的主要竞争对手Altera;前不久,英伟达以400亿美元的价格...
集微网消息, 之前据业内人士透露,苹果将 iPhone 的零部件订单削减了多达25%,但iPhone 13 供应链中的中国台湾地区的PCB制造商强调,他们来自苹果的订单势头仍然相当稳定。据digitimes 10月4日报道,PCB供应链消息人士称,由于 iPhone 13 机型的预购表现不错,而且现有 iPhone 用户的换机需求强劲,足以为新 iPhone 带来光明的销售前景,即使...

史海拾趣

问答坊 | AI 解惑

useful for beginer

d电容 的基本知识 等效串连电阻 漏电流 。。。。…

查看全部问答∨

DS18B20头文件!绝对好使!M16 8M 的!

来源:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=657257&bbs_page_no=1&bbs_id=9999 终于调通了!哈哈: 我也拿出来跟大家分享一下! 里面的内容什么都不用该,就该一下前面宏定义就可以了! 只需调用gettemp();就可以了!出口 ...…

查看全部问答∨

求救!!

我现在正在做这个的数控电源的论文,不知道这个电路和程序是否问题,哪位大侠能帮我看看,有问题话能不能帮我改改 ,谢谢!!!whf-205@163.com [ 本帖最后由 yeloulo 于 2010-1-15 13:27 编辑 ]…

查看全部问答∨

GPRS无线通信模块MC35i及其外围电路设计

【网络通信中国】随着信息技术的迅速发展,无线远程监控技术得到了越来越广泛的应用,采用先进的GPRS技术的无线监控管理系统,集计算机、通信、机电、自动控制等多种先进技术于一体,成功实现了对无线分布式系统的实时监控管理和灵活部署,解决了传 ...…

查看全部问答∨

求Wince下自制的软键盘源码,evc和C#的都行。

求Wince下自制的软键盘源码,evc和C#的都行。系统自带的控制有些不自由。…

查看全部问答∨

新手求救

我毕业设计弄MC68HC908GP32的设计  现在我串行输入电路(写人单片机的电路) 弄不出来 那里有啊 请高手指点哈!!!! 谢谢…

查看全部问答∨

VXWORKS移植问题,请高手帮忙

我现在手里有一块s3c2410(arm920t,flash:16m,sdrom:64m)的开发板,现在用PPCBOOT2.0.0引导LINUX启动一切正常。我现在想把用这块开发板,运行vxworks,应该如何做呢,请高手帮忙,谢谢!!!!急…

查看全部问答∨

怎么学红外线遥控呢?

各位高手:   小弟现在想自学红外线遥控,不知道是看书好呢还是看视频教程好!   请各位高手指点一下!看书的话看什么书?看视频教程的话在哪里下载的好一点?…

查看全部问答∨

请教关于stm32F103VC的fsmc问题

在用stm32f103vc 100pin做项目的时候,遇到一个问题。 我们想用103vc的fmsc挂5个外设。这5个外设的地址有4个只需要2根地址线,另外一个需要10根地址线。它们的数据线都是8位的。 因为用的103vc 100pin的,所以它的A0~A15和D0~D15是复用的, ...…

查看全部问答∨

是不是用完TIM2.再用串口DMA接受会有bug?

RT.不知道为什么.如果不用TIM2计时.直接用DMA串口接收.是没问题的.但是用TIM2延时一阵子.就不能收到了... 大家帮帮忙,有必要我就上程序…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved