存储器组织结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019年12月3日3时8分
14
2019年12月3日3时8分
三、寻址方式:
• 4、程序存储器的保留存储单元。 如表2-2所示。
2019年12月3日3时8分
15
2019年12月3日3时8分
三、寻址方式:
–(1)0000H~0002H三个单元:
• 用作上电复位后引导程序的存放单元。因 为复位后PC的内容为0000H,CPU总是从 0000H开始执行程序。将转移指令存放到 这三个单元,程序就被引导到指定的程序 存储器空间去执行。
二、编址:
• 容量为4KB。地址为0000H~0FFFH。 • 片外最多可扩至64KB ROM/EPROM,
地址为1000H~FFFFH。 • 片内外统一编址。
2019年12月3日3时8分
返回
11
2019年12月3日3时8分
三、寻址方式:
• 1、当 EA=“1”时:
–在0000~0FFFH范围内执行片内ROM中 的程序,当指令地址超过0FFFH 后就 自动转向片外ROM中取指令。
• 00H~1FH地址安排为4组工作寄存器区,每组有8个工作寄存器 (R0~R7),共占32个单元,见表2-4。通过对程序状态字PSW中 RS1、RS0的设置,每组寄存器均可选作CPU的当前工作寄存器组。 若程序中并不需要4组,那么其余可用作一般RAM单元。CPU复 位后,选中第0组寄存器为当前的工作寄存器。
2019年12月3日3时8分
12
2019年12月3日3时8分
三、寻址方式:
• 2、当 EA=”0”时:
–片内ROM不起作用,CPU只能从片 ROM/EPROM中取指令。可以从 0000H 开始寻址。
2019年12月3日3时8分
13
2019年12月3日3时8分
三、寻址方式:
• 3、片内ROM和片外ROM取指的速 度相同。
• 在其他指令中,B可作为一般通用寄存器或一个RAM 单元使用。
2019年12月3日3时8分
26
2019年12月3日3时8分
(3) 程序状态寄存器PSW(D0H)
• PSW是一个8位特殊功能寄存器,它的各位包 含了程序执行后的状态信息,供程序查询或判 别之用。各位的含义及其格式如表2-6所列。
• PSW除有确定的字节地址(D0H)外,每一位均 有位地址,见表2-6。
2019年12月3日3时8分
返回
8
2019年12月3日3时8分
§2.3.2 程序存储器地址空间
• 一、用途: • 二、编址: • 三、寻址方式:
2019年12月3日3时8分
ቤተ መጻሕፍቲ ባይዱ返回
9
2019年12月3日3时8分
一、用途:
• 用于存放编好的程序和表格常数。
2019年12月3日3时8分
返回
10
2019年12月3日3时8分
2019年12月3日3时8分
27
2019年12月3日3时8分
• CY(PSW.7): 进位标志位。在执行加法(或减法)运算 指令时,如果运算结果最高位(位7)向前有进位(或借 位),则CY位由硬件自动置1;如果运算结果最高位无 进位(或借位),则CY清0。CY也是89C51在进行位操作 (布尔操作)时的位累加器,在指令中用C代替CY。
2019年12月3日3时8分
返回
6
2019年12月3日3时8分
二、用户角度
• 2、64K的片外数据存储器地址空间。访 问片外RAM指令用MOVX。
2019年12月3日3时8分
返回
7
2019年12月3日3时8分
二、用户角度
• 3、256字节的片内数据存储器地址空间。 访问片内RAM指令用MOV。
上述三个存储空间地址是重叠的,89C51 的指令系统采用不同的数据传送指令符 号。
§2.4 CPU时序
§2.4.1 §2.4.2 §2.4.3
片内振荡器及时钟信号的产生 机器周期和指令周期 CPU取指、执行周期时序
2019年12月3日3时8分
返回
37
2019年12月3日3时8分
§2.4.1 片内时钟信号的产生
• 89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反 相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英 晶体及两个电容就可以构成稳定的自激振荡器。电容器C1和C 2通常取30 pF左右,可稳定频率并对振荡频率有微调作用。振 荡脉冲频率范围为fOSC=0~24 MHz。
• 工作寄存器区后的16字节单元(20H~2FH),可用位寻址方式访问 其各位。在89系列单片机的指令系统中,还包括许多位操作指令, 这些位操作指令可直接对这128位寻址。这128位的位地址为 00H~7FH,其位地址分布见图2-8。
2019年12月3日3时8分
23
2019年12月3日3时8分
2) 高128字节RAM——特殊功能寄存器(SFR)
(4) 栈指针SP(81H)
• 堆栈指针SP为8位特殊功能寄存器,SP的 内容可指向89C51片内00H~7FH RAM的 任何单元。系统复位后,SP初始化为 07H,即指向07H的RAM单元。
2019年12月3日3时8分
31
2019年12月3日3时8分
• 89C51在片内RAM中专门开辟出来一个区域,数 据的存取是以“后进先出”的结构方式处理的, 好像冲锋枪压入子弹。这种数据结构方式对于处 理中断,调用子程序都非常方便。
片内还有21个特殊功能寄存器(SFR), 它们同128字节RAM统一编址,地址为 80H~FFH。后面详细介绍。
2019年12月3日3时8分
返回
4
2019年12月3日3时8分
二、用户角度
图2-4 89C51存储器配置
2019年12月3日3时8分
5
2019年12月3日3时8分
二、用户角度
• 1、片内、外统一编址的64K程序存储器 地址空间。CPU访问片内、片外ROM指 令用MOVC。
2019年12月3日3时8分
21
2019年12月3日3时8分
图2-8 低128字节RAM区 2019年12月3日3时8分
图2-9 高128字节RAM区(SFR2区2 ,特
2019年1殊2月功3能日寄3存时器8区分)
1) 低128字节RAM
• 9C51的32个工作寄存器与RAM安排在同一个队列空间里,统一编 址并使用同样的寻址方式(直接寻址和间接寻址)。
图2-10 堆栈的压入与弹出
(5) 数据指针DPTR(83H,82H)
• DPTR是一个16位的特殊功能寄存器,其高位 字节寄存器用DPH表示(地址83H),低位字节 寄存器用DPL表示(地址82H)。DPTR既可以作 为一个16位寄存器来处理,也可以作为两个独 立的8位寄存器DPH和DPL使用。
• 堆栈的操作有两种: 一种叫数据压入(PUSH), 另一种叫数据弹出(POP)。
• 89C51的堆栈指针SP是一个双向计数器。进栈时, SP内容自动增值,出栈时自动减值。存取信息必 须按“后进先出”或“先进后出”的规则进行。
2019年12月3日3时8分
32
2019年12月3日3时8分
• 在图2-10中,假若 有8个RAM单元,每 个单元都在其右面编 有地址,栈顶由堆栈 指针SP自动管理。每 次进行压入或弹出操 作以后,堆栈指针便 自动调整以保持指示 堆栈顶部的位置。这 些操作可用图2-10 说明。
2019年12月3日3时8分
28
2019年12月3日3时8分
• RS0和RS1(PSW.3和PSW.4): 工作寄存器组选择控制位。 这两位的值可决定选择哪一组工作寄存器为当前工作寄 存器组。通过用户用软件改变RS1和RS0值的组合,以切 换当前选用的工作寄存器组。其组合关系如表2-7所列。
• 89C51上电复位后,RS1=RS0=0,CPU自动选择第0组为 当前工作寄存器组。
• 用作输出时,可以锁存数据;用作输入时,数据可以 缓冲。
• 图2-11所示为各个SFR所在的字节地址位置。空格部分 为未来设计新型芯片可定义的SFR位置。
2019年12月3日3时8分
35
2019年12月3日3时8分
图2-11 特殊功能寄存器SFR的位置
2019年12月3日3时8分
36
2019年12月3日3时8分
2019年12月3日3时8分
三、片内RAM:
• 片内数据存储器最大可寻址256个单元, 它们又分为两部分: 低128字节(00H~ 7FH)是真正的RAM区;高128字节 (80H~FFH)为特殊功能寄存器(SFR)区。 如图27所示。
• 高128字节和低128字节RAM中的配置及 含义如图2-8和图2-9所示。
2
2019年12月3日3时8分
1、程序存储器(ROM)
地址从0000H开始。 用于存放程序和表格常数。
2019年12月3日3时8分
返回
3
2019年12月3日3时8分
2、数据存储器(RAM)
地址为00H~7FH。
用于存放运算的中间结果、数据暂存以 及数据缓冲等。
这128B的RAM中有32个字节单元可指定为 工作寄存器。
• PSW.1: 为保留位。89C51未用,89C52为F1用户标志位。 • P(PSW.0): 奇偶校验标志位。每条指令执行完后,该位
始终跟踪指示累加器A中1的个数。如结果A中有奇数个1, 则置P=1;否则P=0。常用于校验串行通信中的数据传送 是否出错。
2019年12月3日3时8分
30
2019年12月3日3时8分
2019年12月3日3时8分
16
2019年12月3日3时8分
三、寻址方式:
–(2)0003H~002AH单元:
• 均分为五段,用作五个中断服务程序的入 口。中断矢量地址表如表2-3所示。
2019年12月3日3时8分
返回
17
2019年12月3日3时8分
§2.3.3 数据存储器地址空间
• 一、用途: • 二、片外RAM: • 三、片内RAM:
2019年12月3日3时8分
返回
18
2019年12月3日3时8分
一、用途:
• 用于存放运算的中间结果、数据暂存和 缓冲、标志位等。
2019年12月3日3时8分
19
2019年12月3日3时8分
二、片外RAM:
• 地址:0000H~FFFFH • 寻址:用MOVX指令
2019年12月3日3时8分
20
• 根据需要,可利用传送指令对PSW整字节操作或用位操 作指令改变RS1和RS0的状态,以切换当前工作寄存器组。 这样的设置为程序中保护现场提供了方便。
2019年12月3日3时8分
29
2019年12月3日3时8分
• OV(PSW.2): 溢出标志位。当进行补码运算时,如有溢 出,即当运算结果超出-128~+127的范围时,OV位由 硬件自动置1;无溢出时,OV=0。
• DPTR主要用于存放16位地址,以便对64 KB片 外RAM作间接寻址。
2019年12月3日3时8分
34
2019年12月3日3时8分
(6) I/O端口P0~P3(80H,90H,A0H,B0H)
• P0~P3为4个8位特殊功能寄存器,分别是4个并行I/ O端口的锁存器。它们都有字节地址,每一个口锁存 器还有位地址,每一条I/O线均可独立用作输入或输 出。
(二)、存储器
1、程序存储器(ROM) 2、数据存储器(RAM)
2019年12月3日3时8分
返回
1
2019年12月3日3时8分
一、物理结构(冯·诺依曼结构)
程序存储器ROM 89C51存储器
数据存储器ROM
片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器
2019年12月3日3时8分
返回
• 89C51片内高128字节RAM中,有21个特 殊功能寄存器(SFR),它们离散地分布在 80H~FFH的RAM空间中。访问特殊功 能寄存器只允许使用直接寻址方式。
• 这些特殊功能寄存器见图2-9。各SFR的 名称及含义如表2-5所列。
2019年12月3日3时8分
24
2019年12月3日3时8分
(1) 累加器ACC(E0H)
• 累加器ACC是89C51最常用、最忙碌的8 位特殊功能寄存器,许多指令的操作数 取自于ACC,许多运算中间结果也存放 于ACC。在指令系统中用A作为累加器 ACC的助记符。
2019年12月3日3时8分
25
2019年12月3日3时8分
(2) 寄存器B(F0H)
• 在乘、除指令中,用到了8位寄存器B。乘法指令的两 个操作数分别取自A和B,乘积存于B和A两个8位寄存 器中。除法指令中,A中存放被除数,B中放除数,商 存放于A,B中存放余数。
• AC(PSW.6): 半进位标志位,也称辅助进位标志。当 执行加法(或减法)操作时,如果运算结果(和或差)的低 半字节(位3)向高半字节有半进位(或借位),则AC位将 被硬件自动置1;否则AC被自动清0。
• F0(PSW.5): 用户标志位。用户可以根据自己的需要 对F0位赋予一定的含义,由用户置位或复位,以作为 软件标志。