内容正文:
8088系统的存储器
计 算 机 原 理
-第17课时-
(电工版第五版)
学习目标
理解8088存储器的分段机制,掌握物理地址计算公式(段地址×16+偏移地址),熟悉堆栈操作原理及存储空间分配,建立对x86架构内存管理的基础认知。
能够熟练完成逻辑地址到物理地址的转换计算,能精准分析堆栈操作中SP指针的变化规律及数据入栈出栈的流向,具备基础的内存寻址实操与调试分析能力。
通过探究8088存储器管理机制,体会早期计算机硬件设计的精巧构思与历史局限,培养系统架构思维和底层逻辑分析能力,激发探索计算机体系结构的科学兴趣与创新意识。
1
2
3
知识目标
技能目标
素质目标
目录
8088存储器结构与分段
堆栈操作与专用区域
8088存储空间分配
综合案例与实操演练
教学引入
揭秘时刻:答案就藏在巧妙的“地址分段与组合”技术中,这是 x86 架构的经典设计!
地址映射核心概念
物理地址
存储器单元的实际物理标识,由20位二进制数构成,可寻址范围恰好覆盖1MB的内存空间,且每个物理地址唯一对应内存中的一个字节单元。它是CPU与内存硬件交互的最终地址,直接指向数据存储的物理位置,是内存访问的“真实坐标”。
逻辑地址
程序运行时使用的虚拟地址,由16位段地址和16位偏移地址两部分组成。它并非内存的真实地址,而是CPU通过分段机制计算的“虚拟坐标”。CPU会将段地址左移4位后与偏移地址相加,最终转换为20位的物理地址,实现对内存的间接访问,是程序编写与运行的基础地址形式。
8088存储器结构与分段
第一部分
知识讲授
8088存储器结构
知识讲授
8088内部结构
8088内部结构(逻辑上的划分):执行单元(execution unit,EU)、总线接口单元(bus interface unit,BIU)
执行单元:执行程序
总线接口:用于访问内存和访问接口
知识讲授
8088存储空间
8086/8088有20根地址线,可直接对1M个存储单元进行访问。
每个存储单元都有1个20位的地址。这1M个存储单元对应的地址为00000H-FFFFFH
① 20条AB,寻址1M空间
② 按字节组织,每个字节唯一地址。
字节: 顺序存放
③ 字: 低位字节放在低地址中,高位字节放在高地址中
④ 双字: 低位字是偏移量, 高位字是段地址
⑤ 规则字: 低位字节存放在偶数地址
⑥ 非规则字: 低位字节存放在奇数地址
知识讲授
存储器的段结构
8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64 KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。
知识讲授
物理地址计算
01 物理地址合成公式
核心计算:物理地址 = 段地址 × 16 + 偏移地址
原理:“×16”等价于二进制左移4位,将16位段地址扩展为20位地址的高16位,与16位偏移地址相加后,合成20位物理地址(覆盖1MB寻址空间)。
特性:段起始地址必为16字节(1小段)的整数倍;逻辑段支持分离、部分重叠或完全覆盖,程序仅需提供逻辑地址,由CPU自动完成物理地址转换。
知识讲授
逻辑地址
逻辑地址:由于采用了存储器分段管理方式,8080/8088 CPU在对存储器进行访问时,根据当前的操作类型(取指令或存取操作数)以及读取操作数时指令所给出的寻址方式,CPU就可确定要访问的存储单元所在段的段地址以及该单元在本段内的偏移地址
如果当前的(IP)=1000H,那么,下一条要读取的指令所在存储单元的物理地址为:
(CS)*10H+(IP)=1000H*10H+1000H=11000H
如果某操作数在数据段内的偏移地址为8000H,则该操作数所在存储单元的物理地址为
(DS)*10H+8000H=2A0FH*10H+8000H=320F0H
背诵记忆
序号 核心考点 记忆要点与核心解析
01 物理地址计算 公式:段地址×16 + 偏移地址,等价于段地址左移4位后相加。
记忆:“左移四位加偏移”,是实模式下地址转换的核心规则,需熟练掌握计算逻辑。
02 代码段寄存器(CS) 全称Code Segment,存放代码段基址,配合IP指针确定下一条指令地址。
记忆:“C”代表Code,是程序指令的“导航仪”,决定CPU执行代码的位置。
课堂练习
单选题
01. 若段地址为2000H,偏移地址为1000H,则物理地址是( )?
A. 21000H B. 20010H C. 30000H D. 20100H
02. 8088 CPU中,决定当前指令物理地址的寄存器对是?
(请写出对应的寄存器名称)
【答案】 01. A; 02. CS(代码段寄存器)和 IP(指令指针寄存器)
【解析】1. 物理地址计算公式:物理地址 = 段地址 × 16 + 偏移地址。代入数值:2000H × 16 = 20000H,加上偏移地址1000H,最终得到21000H。
2. CPU在取指令阶段,默认由代码段寄存器CS提供段基址,指令指针寄存器IP提供偏移地址,二者结合生成指令的物理地址,从而找到要执行的指令。
堆栈操作
第二部分
知识讲授
堆栈操作
知识讲授
存储器堆栈结构
堆栈是计算机中遵循“后进先出”(LIFO)规则的特殊存储区域,在8088微处理器系统中依托内存空间实现,最大支持64KB寻址范围。它由段寄存器SS与堆栈指针SP协同管理,栈底位于逻辑段最高地址端,数据压入时向低地址方向延伸,且所有操作均以16位(字)为基本单元,是实现程序调用、中断处理与现场保护的核心基础。
01. 核心机制:后进先出 (LIFO)
遵循“先进后出,后进先出”原则。栈底固定在逻辑段的最高地址处,每次压入数据时,堆栈向低地址方向“生长”,栈顶指针SP随之减小。
02. 地址管理:SS 与 SP 双寄存器
SS寄存器存储堆栈的段基址,SP寄存器始终指向栈顶的偏移地址。物理地址计算公式为:物理地址 = SS × 16 + SP,精准定位栈顶位置。
03. 操作规范:16位字长原子性
8088堆栈仅支持“字”(16位)操作,不支持单字节操作。压栈(PUSH)时SP自动减2,出栈(POP)时SP自动加2,确保数据的完整性与对齐。
知识讲授
进栈和出栈操作过程:
知识讲授
堆栈操作指令
指令格式及操作: PUSH src ;(SP) ←(SP)-2, ((SP)+1:(SP)) ←(src)。
压入堆栈指令
指令格式及操作: POP dst ; (dst) ←((SP)+1:(SP)), (SP) ←(SP)+2。
弹出堆栈指令
背诵记忆
序号 名称 核心说明与记忆要点
01 堆栈存储结构 遵循“后进先出(LIFO)”原则,由段寄存器SS和指针寄存器SP协同管理。
记忆技巧:类比“水桶装水”,最后倒入的水最先倒出,多用于中断现场保护与临时数据暂存。
02 堆栈操作(PUSH/POP) 压栈PUSH:SP先减2(地址向下生长),再写入数据;出栈POP:先读取数据,再将SP加2。
口诀:“压栈先减后存,出栈先取后加”,操作方向与内存地址增长方向相反。
课堂练习
单选题
01. 8088堆栈操作时,栈指针寄存器SP的变化量是( )?
A. +1 B. -1 C. ±2 D. ±4
02. 复位后,8088 CPU的CS和IP初始值分别是多少?指向哪里?
提示:该地址为系统加电或复位后执行的第一条指令入口。
【例题1答案】C 【例题2答案】CS=0FFFFH,IP=0000H
【解析1】:8088属于16位处理器,堆栈操作以“字”(2字节)为单位。压栈(PUSH)时SP自动减2,出栈(POP)时SP自动加2,因此SP变化量为±2。
【解析2】:硬件复位时,CPU内部寄存器强制初始化,CS被置为0FFFFH,IP为0000H。计算物理地址:0FFFFH×16 + 0000H = 0FFFF0H,这是ROM BIOS的系统启动入口地址。
8088存储空间分配
第三部分
知识讲授
8088存储空间分配
知识讲授
8088存储空间分配
例如: 8086CPU有地址总线20位,寻址能力为 =1M字节。
当存储器按字节编址时,若地址总线为n位,CPU寻址范围是 字节
知识讲授
RAM存储区分配
8088处理器的1MB内存空间中,RAM区占据00000H至0BFFFFH的连续地址段,总计768KB容量。这一区域是系统运行的核心载体,被细分为功能独立的四个关键区块,分别承载中断控制、BIOS数据、用户程序与显示输出的核心数据,是微型计算机硬件与软件交互的基础。
00000H - 003FFH | 中断向量表 (1KB)
存储256个中断服务程序入口地址,是系统响应软硬件中断的索引核心,直接决定中断处理的跳转路径。
00400H - 004FFH | BIOS数据区 (0.5KB)
存放硬件配置参数(如内存容量、磁盘信息)及BIOS运行时的动态数据,为系统初始化与硬件管理提供依据。
00500H - 9FFFFH | 用户程序区 (638.5KB)
系统最大的RAM分区,用于加载应用程序、存储临时数据及作为堆栈空间,是软件运行的主要工作舞台。
0A0000H - 0BFFFFH | 显示缓冲区 (128KB)
即显存区域,缓存屏幕待显示的字符或图形像素数据,CPU写入数据后由显卡读取并输出至显示器呈现。
FrameBuffer 帧缓冲参数示意
图中展示了显示缓冲区映射到屏幕的关键时序参数,包含水平/垂直分辨率定义了画面的像素规模,而行/帧回扫与同步信号则保障了图像输出的稳定性与连续性,是显卡驱动显示器的底层逻辑基础。
知识讲授
ROM存储区分配
ROM(只读存储器)是计算机中存储固化程序的核心区域,占据0C0000H至0FFFFFH共256KB的地址空间。它负责承载系统启动、硬件基础交互及扩展功能的关键代码,是计算机从通电自检到加载操作系统的底层基石,数据断电后不会丢失。
01 基本ROM区(40KB) | 0F6000H - 0FFFFFH
存放计算机最核心的BIOS(基本输入输出系统)与BASIC解释程序,包含系统上电自检(POST)、硬件初始化及启动引导的关键指令,是计算机开机运行的第一道程序载体。
02 附加ROM区(216KB) | 0C0000H - 0F5FFFH
用于硬件扩展的专属空间,可插接各类扩展卡并写入其驱动固件(如显卡、网卡、SCSI控制器);也可加载汉字库芯片(汉卡)等定制化程序,极大提升了系统的硬件适配性与功能扩展性。
硬件实体:主板上的ROM芯片
图中展示的是主板上的BIOS ROM芯片特写,作为ROM存储区的物理载体,它直接焊装或插接在主板上。早期多采用EPROM(需紫外线擦除重写),现代则普遍使用Flash ROM(电可擦写),支持通过软件更新固件,始终承担着连接硬件底层与操作系统的关键桥梁作用,保障系统从通电到就绪的完整启动流程。
背诵记忆
序号 核心名称 说明与记忆要点
01 RAM存储区分配 硬件组成速记:主板搭载 CPU,内存硬盘电源配套;集成声卡显卡网卡,散热支架整机配齐。
02 ROM存储区分配 设备应用场景:家用办公工控云终端,教学下载数字标牌;商超政务医疗军工,微型计算机全域适用。
课堂练习
经典例题
01. 在8088系统架构中,专门用于存放屏幕显示数据的内存区域是哪一个?
A. 00000H-003FFH(中断向量表) B. 00400H-004FFH(BIOS数据区)
C. 0A0000H-0BFFFFH(显示缓冲区) D. 0FFFF0H-0FFFFFH(系统启动区)
02. 计算机启动时执行的基本输入输出系统(BIOS),被固化存放在______区域中。
【参考答案】 1. C; 2. 主板基本ROM区(物理地址:0F6000H - 0FFFFFH)
【解析】1. 显示缓冲区(VRAM)是显卡与CPU交互的关键,地址0A0000H-0BFFFFH用于实时存储屏幕像素信息,直接决定显示内容;2. BIOS作为硬件初始化的核心固件,存储在主板的只读存储器(ROM)中,断电后数据不丢失,其高地址映射区(0F6000H起)负责开机自检(POST)与硬件资源的基础配置。
师生互动
01
分组讨论:地址重叠的编程影响与利弊辨析
8088的分段机制虽解决了16位寄存器寻址1MB空间的难题,却引发了“地址重叠”现象——同一物理地址可被多个逻辑地址映射。请结合底层编程视角思考:这会对内存寻址、程序加载及数据访问带来哪些实际影响?该特性是提升了内存利用灵活性的优势,还是增加了寻址复杂度与冲突风险的劣势?
知识拓展| 实模式与保护模式
为什么要学?
理解实模式是掌握保护模式的基础,更是洞悉现代操作系统内存管理、进程隔离与虚拟内存机制的关键。它是区分CPU寻址能力、理解系统底层安全与资源调度逻辑的核心切入点。
01 实模式:物理直连
• 基础机制:8086/8088的原生模式,段地址直接映射物理基址,仅支持1MB寻址空间。
• 关键局限:无内存隔离与保护,程序可直接访问任意物理地址,易引发系统崩溃。
02 保护模式:安全扩展
• 地址转换:段寄存器指向描述符表,通过描述符获取基址、限长与访问权限。
• 核心优势:实现内存隔离、权限管控与虚拟内存,支撑多任务OS与现代软件生态。
💡 演进意义:从实模式到保护模式,是CPU从单任务裸机运行迈向多任务、高安全计算时代的技术分水岭,也是理解计算机体系结构的必修课。
知识小结
课后任务
布置作业:
1. 绘制8088存储器完整思维导图(含分段寻址、段寄存器、堆栈操作、内存分区)。
2. 完成地址换算、堆栈SP变化计算题。
3. 查阅初代IBM PC内存硬件资料。
谢谢观看
THANKS
$