寻址就是寻找指令中操作数或操作数所在的地址。所谓寻址方式,就是如何找到存放操作数的地址,把操作数提取出来的方法。通常指源操作数的寻址方式。
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单片机的时钟设置
推荐阅读
史海拾趣
为了进一步扩大市场份额,町洋开始进军国际市场。公司凭借其优质的产品和服务,逐渐在欧美等发达国家和地区打开了市场。为了更好地服务全球客户,町洋在全球设立了多个贸易与服务机构,构建了完善的销售网络和售后服务体系。
“未来电子”深知人才是企业发展的第一资源。因此,公司高度重视人才培养和团队建设工作。通过建立完善的培训体系、激励机制和晋升通道,公司吸引并留住了一大批优秀的研发、生产和销售人才。这些人才在各自的岗位上发挥出色,为公司的快速发展提供了有力保障。同时,“未来电子”还注重团队合作和跨部门协作,通过组织丰富多彩的团队建设活动,增强了员工的归属感和凝聚力。
随着社会对环境保护和可持续发展的关注度不断提高,Charcroft Electronics Ltd公司积极履行社会责任,推动绿色生产和可持续发展。公司采用环保材料和节能技术,减少生产过程中的环境污染和资源消耗。同时,公司还积极参与社会公益事业,为社会做出贡献,展现了企业的良好形象和社会责任感。
这些故事虽然基于假设,但反映了电子行业中企业成长的一般路径和关键要素。如果您需要更具体、更详细的故事,建议您查阅Charcroft Electronics Ltd公司的官方资料、新闻报道或行业分析报告,以获取更准确的信息。
在电子行业的早期,Charcroft Electronics Ltd公司以其对新兴技术的敏锐洞察力和创新研发能力脱颖而出。公司不断投入研发资源,开发出一系列具有竞争力的电子元器件产品,这些产品以其优异的性能和稳定性赢得了市场的广泛认可。同时,公司还积极与高校和研究机构合作,共同探索新的技术应用领域,为公司的长远发展奠定了坚实的基础。
Elma在美国和美洲拥有广泛的客户群,覆盖电信、工业控制、医疗电子、国防和航空航天等多个行业。其产品线包括外壳、背板、系统平台、机柜、高品质开关和编码器等多种零件,能够满足不同行业客户的多样化需求。这种跨行业的布局使得Elma能够在多个领域保持竞争力。
随着全球对环境保护意识的增强,G-Mag在2010年决定实施绿色转型战略。公司投入大量资源研发环保型电子产品和制造工艺,如开发可降解材料用于产品包装、优化生产线以减少能源消耗和废弃物排放等。同时,G-Mag还积极推广循环经济理念,与上下游企业合作建立废旧电子产品回收体系。这些举措不仅提升了G-Mag的品牌形象,还为其赢得了更多消费者的青睐和政府的支持。在绿色转型的推动下,G-Mag实现了可持续发展与经济效益的双赢。
来源:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=657257&bbs_page_no=1&bbs_id=9999 终于调通了!哈哈: 我也拿出来跟大家分享一下! 里面的内容什么都不用该,就该一下前面宏定义就可以了! 只需调用gettemp();就可以了!出口 ...… 查看全部问答∨ |
|
【网络通信中国】随着信息技术的迅速发展,无线远程监控技术得到了越来越广泛的应用,采用先进的GPRS技术的无线监控管理系统,集计算机、通信、机电、自动控制等多种先进技术于一体,成功实现了对无线分布式系统的实时监控管理和灵活部署,解决了传 ...… 查看全部问答∨ |
|
我现在手里有一块s3c2410(arm920t,flash:16m,sdrom:64m)的开发板,现在用PPCBOOT2.0.0引导LINUX启动一切正常。我现在想把用这块开发板,运行vxworks,应该如何做呢,请高手帮忙,谢谢!!!!急… 查看全部问答∨ |
|
在用stm32f103vc 100pin做项目的时候,遇到一个问题。 我们想用103vc的fmsc挂5个外设。这5个外设的地址有4个只需要2根地址线,另外一个需要10根地址线。它们的数据线都是8位的。 因为用的103vc 100pin的,所以它的A0~A15和D0~D15是复用的, ...… 查看全部问答∨ |
RT.不知道为什么.如果不用TIM2计时.直接用DMA串口接收.是没问题的.但是用TIM2延时一阵子.就不能收到了... 大家帮帮忙,有必要我就上程序… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- Nexperia有奖直播|电动汽车中车规功率MOSFET和氮化镓器件的介绍及应用
- 直播|基于英特尔® Agilex™ FPGA F-Tile的以太网硬核IP详解及如何使用oneAPI对FPGA编程
- ADI直播:MEMS技术与产品解析
- ADI有奖下载活动之20:基于NDIR和PID的ADI气体探测器解决方案和新产品
- 免费申请|兆易创新GD32L233尝鲜体验,开启节能“芯”时代!
- 下载文档看视频有礼:获得更高效的PCIe一致性测试文档
- 有奖直播:TI最新C2000实时控制器,在功率变换应用中实现高性能的成本优化型设计
- 电源技术专辑第1期:快充参考设计大集合!
- 跟帖留言赢好礼:60年回眸——聊一聊示波器的前世今生!