2.2 存储器组织
物理地址PA = 段起始地址 +
偏移地址
= ( 段寄存器 ) × 16 + 偏移地址
= ( 段寄存器 ) × 10H + 偏移地址
2
复习: 8088的存储器组织
• 段地址:只取段起始地址高16位值,存放于段寄存
器(CS、DS、ES、SS);
• 偏移地址:段内某内存单元物理地址相对段起始地址
的偏移值,通常来自于IP、SP、SI和DI中。
•当往内存写一个字数据时,写入规则是:
低字节到低地址单元 ,高字节到高地址单元
例 : 将字数据2F1EH写入从01000H开始的内存单元
( 01000H ) = 2F1EH
同一地址既可看作字节单元地址, 又可看作字单元地址。
10
内存单元物理地址的几种表示方法:
PA = 21000H = 2000:1000 = DS:BX
BH,BL
CH,CL DH,DL
21
数据寄存器特有的习惯用法
• AX:累加器。多用于存放中间运算结果。使用频 度最高,用于算术、逻辑运算以及与外设传 送信息等;(Accumulator) • BX:基数寄存器。常用做存放存储器地址;( Base) • CX:计数寄存器。用于在循环或串操作指令中存 放循环次数或重复次数;(Count) • DX:数据寄存器。在32位乘除法运算时,存放高 16位数;在间接寻址的I/O指令中存放 I/O端 口地址。(Data)
31
符号标志SF(Sign Flag)
• 运算结果最高位为1,SF = 1;否则SF = 0
3AH + 7CH=B6H,最高位D7=1:SF = 1 84H + 7CH=(1)00H,最高位D7=0:SF = 0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
32
奇偶标志PF(Parity Flag) • 当运算结果最低字节中“1”的个数为 零或偶数时,PF = 1;否则PF = 0
由EU设置,反映ALU算术或逻辑运算结果的某些特征;
3个控制标志位(IF,TF,DF):用来控制微处理器
的某些操作,可以由指令设置。
15
12
11
10
9
8
7
6
5
4
3
2
1
0
OF DF IF TF SF ZF
AF
PF
CF
29
进位标志CF(Carry Flag)
• 当运算结果的最高有效位有进位(加 法)或借位(减法)时,进位标志置1, 即CF = 1;否则CF = 0。
20
数据寄存器(4个)
•它们又可分为8个8位寄存器,用来存放8位数据, 可以独立寻址,独立使用。即: –AX(Accumulator)累加器 AH,AL
• 8088含4个16位数据寄存器,AX、BX、CX、DX, 常用来存放16位的数据和地址。
–BX( Base)基数寄存器
–CX(Count)计数寄存器 –DX(Data)数据寄存器
段地址 偏移地址
8
逻辑地址——段地址:偏移地址
高地址
段尾
某逻辑段 64KB 某寻址单元 地址偏移量(xxxxH) 段首(xxxx0H)
低地址
9
2.3.3 内存单元内容的存放及表示
一个内存单元存放一个字节信息
( 01000H ) = 1EH
( 01001H ) = 2FH
内存 …... 01000H 1E 01001H 2F 01002H …...
PA = ( CS ) × 10H + ( IP )
= FFFF H × 10H + 0
= FFFF0H
4
[例]
• 已知CS=1055H,DS=250AH, ES=2EF0H,SS=8FF0H,DS 10550H 段有一操作数,其偏移地址为 0204H, 1)画出各段在内存中的分布; 250A0H 2EF00H 2)指出各段首地址; 3)该操作数的物理地址=?
5CE5AH 5CE5BH 存储器 34H 12H
(5CE5AH)=1234H
14
练习
4. 一台微型计算机的字长为16位,地址 总线 16 位,如果采用字节编址,那么它 可以访问的最大存储空间是多少字节? 试用16进制数表示该机的地址范围。
解:216=64KB
0000H~0FFFFH
10000H
15
指令指针寄存器(Instruction Point) 标志寄存器(Flag Register)或处理器状态 字(PSW)
27
指令指针IP(Instruction Point)
• IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 • 它与代码段寄存器CS联用,确定下一条 指令的物理地址 • 计算机通过CS : IP寄存器来控制指令序 列的执行流程
通 用 寄 存 器
8088
指 针 寄存器
数据段寄存器 Data Segment 附加段寄存器 Extra Segment 堆栈段寄存器 Stack Segment 代码段寄存器 Code Segment 指令指针寄存器 Instruction Pointer 状态标志寄存器 Processor Status Word
• SI(Source Index):源变址寄存器,存放源 操作数地址的偏移量; • DI(Destination Index ):目的变址寄存器,存 放目的操作数地址的偏移量; • 常用于指令的间接寻址或变址寻址。
SI、DI其段基址由段寄存器DS提供。
26
3.控制寄存器(2个)
• 系统中有两个16位控制寄存器:
顺序执行程序时,CPU每取一个指令字节, IP自动加1,指向下一个要读取的字节,用户程 序不能使用该寄存器,它由BIU自动修改。
28
标志寄存器
• FLAGS (Flag Register) :标志寄存器
是一个16位寄存器,其中只有9位用作标志位。
6个状态标志位(CF,SF,AF,PF,OF,ZF):
CS 4个通用寄存器: AX、BX、 DS CX、DX SS 输入/输出 4个专用寄存器: BP 、SP、 控制电路 ES SI、DI IP 外 1个标志寄存器 部 内部暂存器 算术逻辑单元:16 位加法器 总 线 执行部件控制系统: 接收从总线接口单元的指 令队列中取来的指令代码,译 1 2 3 4 8位 码和向 EU 内各有关部分发出 指令队列 时序命令信号,协调执行指令 规定的操作。
3AH + 7CH=B6H,没有进位:CF = 0
AAH + 7CH=(1)26H,有进位:CF = 1
30
零标志ZF(Zero Flag) • 若运算结果为0,则ZF = 1; 否则ZF = 0
3AH + 7CH=B6H,结果不是零:ZF = 0 84H + 7CH=(1)00H,结果是零:ZF = 1
3AH + 7CH=B6H=10110110B 结果中有5个1,是奇数:PF = 0 PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作
33
溢出标志OF(Overflow Flag) • 若算术运算的结果有溢出,OF=1; 否则 OF=0
3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0
23
堆栈及堆栈操作
• 堆栈是用于暂时存放重要信息的特殊内存 区域。堆栈由SS指示堆栈段的开始,SP指 示偏移地址。 • 堆栈采用先进后出FILO(First In Last Out) 的操作原则。 • 对于8088,每当一个字数据压入堆栈,SP 减2,当从堆栈弹出一个字时SP加2。
24
变址寄存器(2个)
16位
地址 加法 器
执行部件20位 (EU)
把EU的操作结果存储 标志寄存器 到指定的 M或I/O口。
执行部件(EU)
总线接口部件(BIU)
复习:8088的存储器组织
最大存储空间:00000H~FFFFFH (地址线20条) 分成若干个最大64KB的段(寄存器只有16位) 8088存储器组织:一个完整1MB存储体。
21000H 2000:1000H DS:BX 内存 …... 0Fh FFh 56h …...
用(
)表示内存单元的内容:
( 21000H ) = 0FH ( 2000:1001H ) = 0FFH ( DS:BX ) = 0FH
11
练习
1. 8088CPU中,若(DS)=6100H,则当 前数据段的起始地址是什么?末地址是什么? 段的起始地址: 61000H 段的末地址: 61000H + ( 10000H – 1 ) = 61000H + 0FFFFH = 70FFFH
解: 操作数的物理地址为: 250AH×10H + 0204H = 252A4H 地址252A4H = 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 B 8FF00H SS CS DS ES
20根地址线: A19 A17
A12
A0
5
各个逻辑段重叠的实例
6
各个逻辑段独立的实例
16
AH BH CH DH SI DI
AL BL CL DL
AX BX CX DX
累加器 Accumulator 基数寄存器 Base 计数寄存器 Count 数据寄存器 Data 变 址 寄存器
数 据 寄存器
BP SP DS ES SS CS IP PSW
源变址寄存器 Source Index 目的变址寄存器 Destination Index 基址指针寄存器 Base Point 堆栈指针寄存器 Stack Point
存储器组织
Tony vopo123@
TM
5
5
异常优先级
如果同时发生两个或更多异常,一个固定的 优先级系统决定它们被处理的顺序:
异常类型
优先级
复位
1(最高优先级)
数据中止
2
FIQ
3
优 先
IRQ
4
级 降
预取中止
5
低
未定义指令
6
SWI
7(最低优先级)
Tony vopo123@
TM
6
6
ARM的存储数据类型
ARM指令系统属于RISC指令系统。标准的ARM指令每条都是 32位长,有些ARM核还可以执行Thumb指令集,该指令集是 ARM指令集的子集,每条指令只有16位。
ARM处理器一般支持下列6种数据类型: (1) 8位有符号字节类型数据; (2) 8位无符号字节类型数据; (3) 16位有符号半字类型数据; (4) 16位无符号半字类型数据; (5) 32位有符号字类型数据; (6) 32位无符号字类型数据;
Tony vopo123@
TM
11
11
ARM存储器管理单元MMU
实现虚拟地址空间到物理存储空间的映射; 存储器访问权限的控制; 设置虚拟存储空间的缓冲特性。
Tony vopo123@
TM
12
12
ARM微处理器的应用选型
1.ARM微处理器内核的选择
用户如果希望使用WinCE或标准Linux等操作系统以减少 软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、 ARM922T、ARM946T、Strong-ARM都带有MMU功能。
主存储器与存储系统
主存储器与存储系统1、存储系统的组成1.1、存储器的分类按存储器在计算机系统中的作用分类:高速缓冲存储器:高速缓冲存储器(Cache)位于主存和CPU之间,用于存放正在执行的程序段和数据,以便CPU能高速地使用它们。
Cache的存储速度与CPU的速度相匹配,但存储量较小,价格较高,一般制作在CPU芯片中主存储器:主存用来存放计算机运行期间所需要的程序和数据,CPU可直接随机地进行读写访问。
主存有一定容量,存储速度较高。
由于CPU要频繁地访问主存,所以主存的性能在很大程度上影响了整个计算机系统的性能辅助存储器:辅助存储器又称为外部存储器或后援存储器,用于存放当前暂不参与运行的程序和数据以及一些需要永久性保存的信息。
辅存设在主机外部,容量极大且成本很低,但存储速度较低,而且CPU不能直接访问它。
辅存中的信息必须通过专门的程序调入主存后,CPU才能使用1.2、存储系统的层次结构为了解决容量、存储速度和价格之间的矛盾,通常把各种不同的存储容量、不同存储速度的存储器,按一定的体系结构组织起来,形成一个统一整体的存储系统由高速缓冲存储器、主存储器、辅助存储器构成的三级存储系统可以分为两个层次,其中高速缓存和主存之间称为Cache-主存存储层次(cache存储系统),主存-辅助存储层次(虚拟存储系统)Cache存储系统是为解决主存速度不足而提出来的。
在Cache和主存之间,增加辅助硬件,让它构成一个整体。
从CPU看,速度接近Cache的速度,容量是主存的容量。
Cache存储系统全部用硬件来调度,对应用程序员和系统程序员都是透明的虚拟存储系统是为解决主存容量不足而提出来的。
在主存和辅存之间,增加辅助的软硬件,让它们构成一个整体。
从CPU看,速度接近主存的速度,容量是虚拟的地址空间。
虚拟存储系统需要通过操作系统来调度,对系统程序员是不透明的,但对应用程序员是透明的2、主存储器的组织2.1、主存储器的基本结构主存通常由存储体、地址译码驱动电路、I/O和读写电路组成存储体是主存储器的核心,程序和数据都存放在存储体中地址译码驱动电路实际上包含译码器和驱动器两部分。
第2章51系列单片机系统结构2.2存储器组织
字节 地址 80H
复位后 初值 FFH
I/O 端口 0(P0 口)
*I/O 端口 1(P1 口)
P1
P1.7 A7H
90H
FFH
*I/O 端口 2(P2 口)
P2
P2.7 B7H P3.7
A0H
FFH
*I/O 端口 3(P3 口) 串行数据缓冲 *串行控制 电源控制及 波特率选择 从地址寄存器 从地址掩蔽寄存器
(1) 工作寄存器区。该区域容量为32个字节,分为 四个区,每区8个字节,对应R0~R7寄存器名。 因此,R0的物理地址可能是00H,也可能是08H、 10H 或18H;同理,R1的物理地址可能是01H, 也可能是09H、11H或19H。 任何时候都只能选择四个工作寄存器区中的一个区 作为当前工作寄存器区,当前工作寄存器区由程序 状态字寄存器PSW的b4(RS1)、b3(RS0)位确定,具 体情况4、b3位 当前区 寄存器R7~R0地址 00 0区 07H~00H 01 1区 0FH~08H 10 2区 17H~10H 11 3区 1FH~18H 由于复位后PSW的b4、b3位为00,因此复位后将选择0 区作为当前工作寄存器区。 修改PSW的b4、b3位即可选择不同的工作寄存器区,这 有利于快速保护现场,提高程序执行效率和中断的响应速 度。
SFR 寄存器名 累加器 B 寄存器 助功能寄存器 助功能寄存器 1 时钟控制寄存器 堆栈指针 数据指针低 8 位 数据指针高 8 位 *程序状态字 符号 b7 Acc B AUXR AUXR1 CKCON SP DPL DPH PSW D7H Cy AFH EA BFH IP — IPH — E7H F7 — — —
哈佛体系结构的程序存储器与数据存储器都拥有自己独立 的总线和寻址空间(典型的如DSP,TI的C5000系列)
存储器与寄存器设计
存储器与寄存器设计1. 导言在计算机系统中,存储器和寄存器是两个重要的组成部分。
存储器用于存储数据和指令,而寄存器则用于临时存放和处理数据。
本文将重点论述存储器和寄存器的设计原则和方法。
2. 存储器设计存储器是计算机系统中用于存储数据和指令的设备。
其设计需要考虑容量、速度、稳定性和可靠性等因素。
2.1 存储器类型常见的存储器类型包括随机存取存储器(RAM)、只读存储器(ROM)、闪存等。
在设计存储器时,需要根据应用需求选择合适的类型。
2.2 存储器组织结构存储器的组织结构分为层次式结构和平坦式结构。
层次式结构包括高速缓存、主存储器和辅助存储器,其中高速缓存用于提高读写速度。
平坦式结构指主存储器和辅助存储器直接相连,适用于较小规模的系统。
2.3 存储器管理存储器管理是指对存储器进行分配和回收等操作。
常用的存储器管理方式有静态存储器管理和动态存储器管理。
静态存储器管理通过编译器确定存储器的分配和回收时机,而动态存储器管理由操作系统负责管理。
3. 寄存器设计寄存器是计算机系统中用于临时存放和处理数据的设备。
其设计需要考虑存储容量、读写速度和位宽等因素。
3.1 寄存器的种类常见的寄存器种类包括通用寄存器、特定用途寄存器和状态寄存器等。
通用寄存器用于存放临时数据,特定用途寄存器用于特定计算操作,状态寄存器用于存放处理器的状态信息。
3.2 寄存器位宽寄存器的位宽决定了其可以存储的最大数据量。
在设计寄存器时,需要根据计算需求选择合适的位宽,以提高计算效率。
3.3 寄存器读写速度寄存器的读写速度对计算机系统的性能有重要影响。
为提高读写速度,可采用并行读写、预取和流水线等技术。
4. 存储器与寄存器协同设计存储器和寄存器在计算机系统中紧密配合,提供高效的数据存储和处理能力。
在存储器和寄存器的设计过程中,需要考虑它们的互联和数据传输等问题。
4.1 存储器与寄存器的接口存储器和寄存器通过总线进行数据传输。
在设计存储器与寄存器的接口时,需要考虑数据传输的稳定性和速度。
存储器组织结构
(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中存放余数。
§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。
图2-10 堆栈的压入与弹出
(5) 数据指针DPTR(83H,82H)
• DPTR是一个16位的特殊功能寄存器,其高位 字节寄存器用DPH表示(地址83H),低位字节 寄存器用DPL表示(地址82H)。DPTR既可以作 为一个16位寄存器来处理,也可以作为两个独 立的8位寄存器DPH和DPL使用。
2019年12月3日3时8分
27
2019年12月3日3时8分
• CY(PSW.7): 进位标志位。在执行加法(或减法)运算 指令时,如果运算结果最高位(位7)向前有进位(或借 位),则CY位由硬件自动置1;如果运算结果最高位无 进位(或借位),则CY清0。CY也是89C51在进行位操作 (布尔操作)时的位累加器,在指令中用C代替CY。
ARM体系结构
ARM9TDMI处理器一个显著的特点是采用 指令和数据分离访问的方式,即采用了指令 缓存(I-Cache)和数据缓存(D-Cache)。 这样可以把指令访问和数据访问单独安排1级 流水线。
2015/9/28
9
ARM9处理能力的提高是通过增加时钟频率和减少指令执行周期实 现的。 (1)时钟频率的提高 ARM9采用了五级流水线,而ARM7采用的是三级流水线,ARM9增 加的流水线设计提高了时钟频率和并行处理能力。五级流水线能够将各 条指令处理分配到5个时钟周期内,在每个时钟周期内同时有5条指令在 执行。在同样的加工工艺下,ARM9 TDMI处理器的时钟频率是ARM7 TDMI的2倍左右。 (2)指令周期的改进 指令周期的改进有助于处理器性能的提高。性能提高的幅度依赖于 代码执行时指令的重叠。 ① load指令和store指令 指令周期数改进最明显的是load指令和store指令。 ② 互锁(interlock)技术 当指令需要的数据因为以前的指令没有执行完,将产生管道互锁。管
操作系统的保护模式 指令或数据预取操作中止时的模 式,该模式下实现虚拟存储器或 存储器保护 当执行未定义的指令时进入该模 式 响应普通中断时的处理模式
未定义模式 IRQ模式
Und Irq
FIQ模式
Fiq
响应快速中断时的处理模式
2015/9/28
21
处理器工作模式
ARM微处理器的运行模式可以通过软件改变,也可以通 过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在 用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的6种模式称为非用户模式或特 权模式; 除去用户模式和系统模式以外的5种又称为异常模式, 常用于处理中断或异常,以及访问受保护的系统资源等情 况。
C54-2.2-2.3-ARM7存储器组织
ARM7局部总线
ARM7定义了局部总 同步的
EmbededICE-RT 扫描调试访问端口
线的接口时序
存储器接口
存储器 控制器
存储器
存储器管理接口
各芯片厂商制定了自己 的接口时序
协处理器接口
一般在两者之间加入存储器控制器
ARM7将存储器看作是从0开始的线性递增的字节集合: ▪ 字节0到3保存第1个存储的字 ▪ 字节4到7保存第2个存储的字 ▪ 字节8到11保存第3个存储的字 ▪ 依此类推
▪ 位于地址A+2的半字:包含的字节位于地址A+2和A+3;
▪ 位于地址A的字: 包含的半字位于地址A和A+2;
A可被4整除
ARM两中存储格式: ▪ 大端格式(Big-endian) ▪ 小端格式(Little-endian)
0x8008
0x8004 0x8002 0x8000
B3
半字
B2
字
B1
B0
32位字:0x11223344
一个基于ARM内核的芯片可以只支持大端模式或小 端模式,也可以两者都支持。
在ARM指令集中不包含任何直接选择大小端的指令, 但是一个同时支持大小端模式的ARM芯片可以通过硬 件配置(一般使用芯片的引脚来配置)来匹配存储器 系统所使用的规则。
注意:如果实际的存储器格式与芯片的存储器格式 不符时,只有以字节为单位的数据存取才正确,否则 将出现不可预期的结果。
信号及时序(局部总线);
并把存储空间映射成一个线性字节空间
ARM存储结构特点
(4) 现实的芯片在外部总线与处理器核的局部总线 之间有一个存储器管理部件将局部总线的信号和 时序转换为外部总线信号和时序;
寄存器结构、存储器管理
IP
EIP
标志寄存器EFLAGS (Flags) CPU的控制标志和运算结果状态标志。
FLAG
EFLAG
D16
ID
VIF
AC
VM
RF
D21
D31
VIP
D18
A
P
C
D
I
T
S
Z
D0
D11
D14
NT
IOPL
O
IOPL
1. 8086/8088CPU的功能结构
3.双字数据 32位,类同字的存储
存贮器的逻辑地址 将1MB空间,小于等于216=64K连续的存储器为一段,分为多个段。每个段可以独立寻址。 段地址:段的起始地址,(段的编号)是该段的最低地址。 偏移地址:段内地址的顺序编号。 段地址:段内偏移地址的表示方法称逻辑地址。 如, 2000H:100H 8086/8088存储器组织及其寻址
辅助进位标志AF(Auxiliary Carry Flag)
3AH+7CH=B6H,D3有进位:AF=1
01
运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0
02
这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中, 用户一般不必关心
03
方向标志DF(Direction Flag) 设置DF=0,存储器地址自动增加; 设置DF=1,存储器地址自动减少 CLD指令复位方向标志:DF=0 STD指令置位方向标志:DF=1 用于串操作指令中,控制地址的变化方向:
00000H
00001H
……
……
FFFFFH
FFFFEH
01023H
第2章 C8051F单片机的结构与原理
4352(4096+256)字节的片内RAM
可寻址64K字节地址空间的外部数据存储器接口 硬件实现的SPI、SMBus/ I2C 和两个UART 串行接口
5个通用的16位定时器/计数器
具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA) 片内看门狗定时器(Watchdog)、VDD 监视器和温度传感器
针,用于寄存器间接寻址。可分为DPL和DPH两个8 位来用。 PSW(Program Status Word)8位程序状态字,存放程序运行 的状态信息。
20
PSW的各位定义 (1)
R/W R/W R/W R/W R/W R/W R/W
CY AC F0 RS1 RS0 OV F1
R
PARITY 位0
•00:只用片内(4KB); 01:不带块选择的分片方式 •10:带块选择的分片方式;11:只用片外
位1、0(EALE1、EALE0),ALE宽度选择(仅时复用有效)
•00 ~ 11:1 ~ 4个SYSCLK周期
26
外部数据存储器工作模式
只用内部存储器
不带块选 择的分片
带块选择 的分片
只用外部存储器
4
调试环境示意图
Silicon Labs 提供一 个集成开发环境 (IDE),包括编辑 器、宏汇编器、调试 器和编程器。
5
2.1.2 CIP-51内核
C8051F系列单片机内核采用与MCS-51兼容的CIP-51。 标准8051中,除MUL和DIV以外所有指令都需要12或24个系
统时钟周期,最大系统时钟频率为12-24MHz。
19
常用的特殊功能寄存器
ACC (Accumulator)累加器:存放运算操作数和结果。 B (B Register)寄存器:乘除法中与ACC配合使用。 SP(Stack Pointer)8位堆栈指针:复位值为0x07,使用时根 据需要可重新赋值。数据入栈,SP加1,与80X86相反。
存储器组织
存储器组织1. 存储容量8086有20根地址总线,因此,它可以直接寻址的存储器单元数为220=1Mbyte2. 物理地址8086可直接寻址1Mbyte的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。
3. 存储器的分段及段地址由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。
规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,由指令提供该单元相对于相应段起始地址的16位偏移量。
这样,系统的整个存储空间可分为16个互不重叠的逻辑段,如图1-9所示。
存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如图1-10所示(P14)。
图1-9 存储空间段结构图1-10 分段逻辑结构4. 偏移地址偏移地址是某存储单元相对其所在段起始位置的偏移字节数,或简称偏移量。
它是一个16位的地址,根据指令的不同,它可以来自于CPU中不同的16位寄存器(IP、SP、BP、SI、DI、BX等)。
5. 物理地址的形成物理地址是由段地址与偏移地址共同决定的,段地址来自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址计算物理地址的表达式如下:物理地址=段地址×16+偏移地址例如:系统启动后,指令的物理地址由CS的内容与IP的内容共同决定,由于系统启动的CS=0FFFFH,IP=0000H,所以初始指令的物理地址为0FFFF0H,我们可以在0FFFF0H单元开始的几个单元中,固化一条无条件转移指令的代码,即转移到系统初始化程序部分。
6. 存储器分段组织带来存储器管理的新特点首先,在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64Kbyte的范围内,这样可以减少指令的长度,提高指令运行的速度;其次,内存分段为程序的浮动分配创造了条件;第三,物理地址与形式地址并不是一一对应的,举例:6832H:1280H,物理地址为695A0H。
