导图社区 二、微处理器结构及微型计算机工作原理
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第二章、微处理器结构及微型计算机工作原理
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第八章 中断和异常
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第六章 半导体存储器
社区模板帮助中心,点此进入>>
英语词性
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
【华政插班生】文学常识-两宋
民法分论
日语高考動詞の活用
二、微处理器结构 及微型计算机工作原理
微型计算机结构及工作原理
80X86系列微处理器的功能结构
8086
DB-16/AB-20
直接寻址能力1MB/2^20字节
8088
DB-8/AB-20
内部结构
BIU 总线接口单元
EU 执行部件
工作方式
实模式
80286以上的微处理器所采用的8086的工作模式
寻址机制、中断处理机制、物理地址的形成(段加偏移)均和8086相同
寻址空间
寻址空间为1MB,并采用分段方式,每段大小为64KB(2^16) 所以段基址才需要左移4位
存储器中保留两个专用区域
初始化程序区:FFFF0H~FFFFFH
中断向量表区:00000H~003FFH 1K字节的空间,256个入口地址,每个入口地址占4字节
实模式是为建立保护式做准备的工作模式
虚地址保护模式
保护模式是支持多任务的工作模式,提供了一系列的保护机制
虚拟8086/V86模式
它是既有保护功能又能执行8086代码的工作模式,是一种动态工作模式
串行处理、流水/并行处理
微处理器的编程结构
分为程序可见寄存器/程序不可见寄存器。8086中无不可见
通用寄存器
数据寄存器 EAX、EBX、ECX、EDX
EAX(Accumulator)作为累加器,它是算术运算的主要寄存器
EBX(Base)用作基址寄存器使用,计算内存储器地址时,经常用来存放基址
ECX(Count)可作计数寄存器,在循环LOOP指令和串处理指令中用作隐含计数器
EDX(Data)可以作为数据寄存器使用,双字长运算时,与AX组合使用,DX存高16位
地址指针与变址寄存器
在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址
地址指针寄存器(ESP-stack pointer 、 EBP-base pointer )
变址寄存器(ESI 、 EDI)
一般与DS联用,用来确定数据段中某一存储单元的地址,ESI , EDI具有自动增量和自动减量功能
段寄存器
实模式下和保护模式下功能是不相同的
代码段寄存器CS (Code Segment)
定义一个64K字节存储器段的起点
数据段寄存器DS (Data Segment)
附加段寄存器ES (Extra Segment)
堆栈段寄存器SS (Stack Segment)
堆栈段寄存器SS定义堆栈段的首地址
由堆栈段寄存器SS和堆栈指针寄存器(ESP/SP)确定堆栈段内的存取地址
段寄存器FS和GS
仅对80386及更高型号的微处理器有效
控制寄存器
EIP—Instruction Pointer指令指针寄存器—存储代码段的偏移
PSW—(Processor States Word Program)程序状态字寄存器 由条件码标志EFLAG、控制标志构成
实模式下的存储器寻址
实模式下的存储器地址空间
1M字节单元--00000H~FFFFFH
专用
00000H~003FFH,1K中断向量表区
FFFF0H~FFFFFH,16个字节单元保留给系统的初始化代码 当处理器加电或复位(Reset)时,CPU执行的第一条指令就是起始于地址FFFF0H的
通用00400H~FFFEFH,用来存储一般的程序指令和数据
存储器分段技术
为什么
20位地址信息
实模式下CPU中所使用的寄存器均是16位的,内部ALU也只能进行16位运算
怎么做
将1M字节的存储空间分成许多逻辑段,每段最长64K字节单元,可以用16位地址码进行寻址
段寄存器中存放的是段起始地址的高16位,称之为“段基值”(segment base value)
补充
各个逻辑段在实际的存储空间中可以完全分开,也可以部分重叠,甚至完全重叠
段的起始地址的计算和分配通常是由操作系统完成的,并不需要普通用户参与
物理地址与逻辑地址
段基值:偏移量 物理地址=段基值×16+偏移量(offset)
同一个物理地址可以由不同的逻辑地址来构成
实模下各个逻辑段只能起始于存储器中16字节整数倍的边界。通常称这16字节的小存储区域为“分段”或“节”(paragraph)
堆栈
定义
堆栈是存储器中的一个特定的存储区,它的一端(栈底)是固定的,另一端(栈顶)是浮动的,信息的存入和取出都只能在浮动的一端进行,并且遵循后进先出(Last In First Out)的原则
用途
主要用来暂时保存程序运行时的一些地址或数据信息 如:断点地址、通过堆栈“保存现场”和“恢复现场”、为子程序传递参数
结构
在存储器中实现,由堆栈段寄存器SS和堆栈指针寄存器SP定位 SS段基址---SP偏移量,SP总是指向栈顶
图示,注意SP增量减量
注意:向下生长,SS、SP都不是栈底;SP会跟着栈顶动
操作:压栈时, 先修改栈指针后压入,弹栈时, 先弹出后修改栈指针
标志寄存器
EFLAGS用于指示微处理器的状态并控制它的操作 虽为16位寄存器,但8086只定义了9位
9个标志位——O、D、I、T、S、Z、A、P、C 有6位(即CF、PF、AF、ZF、SF和OF)为状态标志; 其余3位(即TF、IF和DF)为控制标志。
状态位标志
OF(Overflow Flag)
SF(Sign Flag)
正负不要搞反,与原码是一样的
ZF(Zero Flag)
CF(Carry Flag)
最高有效位包括符号位
AF(Auxiliary Carry Flag)辅助进位标志
哪一位搞清楚,易错
半字节、第三四位
PF(Parity Flag)
偶数个1---1
控制标志
TF(Trap Flag)——debug,单步中断
IF(Interupt Flag)——IF=1, 允许外部可屏蔽中断
DF(Direction Flag)——DF=1,每次串处理操作后使变址寄存器SI和DI减量
浮动主题