当前位置:首页 > 内存 > 正文

内存储器和外存储器是统一编址的

  • 内存
  • 2024-07-27 06:50:21
  • 6920

一、内部、外部存储器统一编址是你想问“内部和外部存储器的统一寻址是什么意思?”内外存储器统一编址是指对计算机系统中的内部存储器和外部存储器的地址空间进行统一编址,使它们使用相同的地址。计算机系统中的所有存储器,包括主存、高速缓存和外部存储器,都是一个持久的地址空间,每个卷都可以通过唯一的地址进行寻址和访问。采用内部和外部存储器统一处理的计算机系统可以实现更高效的数据传输和存储管理。


二、分析at89s52单片机的存储器结构1、程序存储器
设计者编写的程序存储在微处理器的程序存储器中。
at89s52有64kb的程序存储器寻址空间,用于存储用户程序、数据、表格等信息。程序存储器的结构如图1所示。
图1at89s52程序存储器的结构
at89s52片内和片外程序存储器位于统一的逻辑空间,地址范围为0000h到ffffh,总范围为64k字节。当该引脚接高电平时,程序从片内程序存储器0000h开始执行,即访问片内存储器。当pc值超过片内ROM容量时,会自动转向片外程序存储空间执行。当该引脚接低电平时,系统强制执行片外程序存储器中从0000h开始存储的所有程序。
2.数据存储器
at89s52具有256字节的片上数据存储器。地址为00h~ffh。256个单位分为两部分。一是00h~7fh单元地址(共128字节)为用户数据RAM。从80h到ffh(也是128字节)的地址单元是特殊寄存器(sfr)单元。高128字节与特殊功能寄存器重叠,这意味着高128字节与特殊功能寄存器具有相同的地址,但物理上是分开的。
将00h~1fh的32个单元均分为4个块。每个块包含8个8位寄存器,均以r0~r7命名。这些寄存器称为通用寄存器。这四个块中的寄存器称为r0~r7。这四组通用寄存器可以通过psw的第3位和第4位(rs0和rs1)来选择。
内部数据存储器的20h-2fh单元是位寻址区域。它们可以用作具有字节寻址能力的通用单元,或者可以对它们的位进行寻址。位寻址区域的地址如表1所示。如图
表1ram位寻址区域地址表
3.中断服务程序的入口地址
在程序存储区中,就是断服务程序保存了一段中断服务程序的入口地址:一组特殊单元是0003h-0032h。每个单位都有自己的目的。它们分为6段,每段8字节,保留给中断服务程序。,称为中断向量区。at89s52中有8个中断源和6个中断向量。它们的定义如下表2所示。
表2中断服务程序入口地址
4.特殊功能寄存器sfr(special?functionregister)
特殊功能寄存器是指一组具有特殊用途的寄存器,也称为特殊用途寄存器。它们本质上是一些具有特殊功能的片内RAM单元,反映了单片机的运行状态,很多功能也是通过特殊功能寄存器来定义和控制的。
at89s52单片机内部高128(80~ffh)地址分配给特殊功能寄存器。该地址空间与片内数据存储器的高128字节地址完全重叠,但两者在物理硬件上完全独立。寻址方法就是用来区分这个完全重叠的地址空间的。当使用直接寻址访问该地址空间时,访问的是特殊功能寄存器;当使用间接寻址访问该地址空间时,访问的是数据存储。
AT89s52有32个特殊功能寄存器,离散分布在内部RAM的80h~ffh地址。这些寄存器的功能已被专门指定,用户不能修改其结构。
5.需要注意的几个问题
(1)地址重叠
单片机中的所有存储器都必须分配地址。可寻址地址范围为64kb。数据存储器和程序存储器都占用相同的地址。
在程序存储器中,片内和片外0000h~0ffffh的低4kb地址完全重叠,但我们用引脚来区分:=0时选择片外,=1时选择片外,选择片上,这样就完全区分了。
数据存储器中0000h~00ffh的256个单元地址完全重叠。片内和片内数据的访问通过不同的指令来区分:mov指令访问片内数据存储器,movx指令访问片外数据存储器。。
(2)程序存储器(ROM)和数据存储器(RAM)的区别
程序存储器(ROM)和数据存储器(RAM)的严格区别在于使用。为了区分,程序存储器只能存储程序指令和常量表,并且只有movc指令可以用来访问程序存储器中的数据。数据存储器存储数据,芯片内部和外部的操作指令分别通过mov和movx进行操作。
(3)位地址空间的区域划分
片内RAM中的20h~2fh这128位,以及sfr中的位地址,这些位寻址单元是相关位指令集构成了位处理器系统


三、51单片机片内外存储器统一编址是什么意思??微控制器51的内外存储器统一编址包括两部分:一是内外ROM统一编址,二是内外RAM统一编址。
首先说一下内部和外部ROM的统一寻址:
看单片机的P3.1,即EA引脚。这是一个内置的内存屏蔽控件。供需终端全年无休。当EA=0时,仅允许使用外部ROM。当EA为1时,片内ROM被使能。当PC(程序计数器)值超过0fffh时,自动切换到外部程序存储器中从1位0fffH开始执行程序,无论外部程序存储器中是否有0fffH。程序内存中有更多空间。这就是所谓的内部和外部ROM的统一寻址。
再说一下内外RAM的统一寻址:
内部存储器的寻址地址与外部存储器的寻址地址相交。例如,地址0f00既是片内寻址为0f00H的存储块的地址,也是片外寻址为0f00H的存储块的地址。他们的行动通过不同的指令来区分。例如,访问内置地址为0070H的内存块并将其值赋给累加器A,操作指令为movA,70H。要访问外部地址为0070H的存储块,将其值赋给累加器A,操作命令为movxA,70H。