1.冯诺依曼计算机(以运算器为核心)
冯诺依曼计算机的读取指令过程
1.将指令所在地址赋给程序计数器PC
2.PC内容送到地址寄存器AR,PC+1
3.将AR寄存器中的内容通过地址总线送到内存中,经地址译码器译码,选中内存的相应单元
4.CPU控制发出读命令
5.在读命令的基础下,将所选单元内容(指令操作码)经数据总线送到数据寄存器DR
6.指令译码----将指令送到指令寄存器IR,再送到指令译码器ID
冯诺依曼计算机特点和不足
特点
1.程序存储,共享数据,顺序执行
2.属于顺序处理机,适合确定的算法和数值数据的处理
不足
1.与存储器大量数据交互,对总线要求高
2.执行顺序由程序决定,对大型复杂任务较困难
3.以运算器为核心,处理效率低
4.由PC控制执行顺序,难以实现并行处理
2.计算机中数的表示与运算
原码 反码 补码 (二进制)
1.正数的补码真值与原码相同,负数补码的真值为该负数补码的补码
2.负数的补码为 反码+1
3.补码10000000代表着-128
进制转换
1.整数部分除于进制取余,小数部分乘以进制取整(10进制转其他进制)
2.按位*进制的n次方,整数从0开始,小数从-1开始(其他进制转10)
3.三位二进制表示一位八进制,四位二进制表示一位16进制
3.8086/8088微处理器
特点
1.采用并行流水线的工作方式----设置指令预取队列
2.对内存空间实行分段管理----将内存分为4个段并设置地址段寄存器,实现对1MB空间的寻址
3.支持协处理器
8088/8086最小模式下的主要引脚信号(20位地址信号,8/16位数据信号)
1.AD0 -- AD7 低8位地址和低8位数据信号分时复用,地址传输单向,数据双向
2.A16 --A19 高4位地址信号,与状态信号分时复用
3.A8 --A15 8位地址信号
4.中断请求和响应信号
INTR:可屏蔽中断请求输入端
NMI:非屏蔽中断请求输入端
!INTA:中断响应输出端
5.8088/8086 : IO/M =0 (访问内存/访问接口)
6.8088内部包括执行单元EU和总线接口单元BIU
7.指令预取队列 (6个字节) 实现了指令的并行执行
内部寄存器的类型
分为8个通用寄存器,4个段寄存器,2个控制寄存器
通用寄存器
1.数据寄存器: AX BX CX DX
(2级作用)
AX:累加器: 所有I/O接口都通过AX与接口传送信息,多用于存放中间运算结果
BX:基址寄存器: 间接寻址中用于存放基地址
CX:计数寄存器: 用于循环或串操作中存放计数值
DX:数据寄存器: 间接寻址的I/O指令中存放I/O端口地址
在32位乘除法运算时,存放高16位
2.地址指针寄存器: SP BP
(2级作用)
SP 堆栈指针寄存器: 内容为栈顶的偏移地址
BP 基址指针寄存器: 用在访问内存时存放内存单元的偏移地址
3.变址寄存器: SI DI
(2级作用)
SI 源变址寄存器
DI 目标变址寄存器
(变址寄存器在指令中常用于存放数据在内存中的地址)
控制寄存器
1.IP 指令指针寄存器: 内容为下一条要取指令的偏移地址
2.FLAGS 标志寄存器: 存放运算结果的特征
6个状态标志位 (CF SF AF PF OF ZF)
CF (Carry Flag): 进位标志位,加减法时最高位有进位(借位)则 CF=1
OF (Overflow Flag): 溢出标志位,当算数超出了有符号数的可表达范围时 OF=1
ZF (Zero Flag): 零标志位,当运算结果为零时 ZF=1
SF (Sign Flag): 符号标志位,当运算结果最高位为1时 SF=1
tips:有待商榷(最高位不包含符号位),针对16位和8位运算都成立
PF (Parity Flag): 奇偶标志位,运算结果第八位中"1"的个数为偶数时 PF=1
AF (Auxiliary Carry Flag): 辅助进位标志位,加减操作,若bit3向bit4有进位(借位) AF=1
tips:针对8位运算,若为16位则取其低8位
3个控制标志位 (IF TF DF)
TF (Trap Flag): 陷阱标志位, TF=1 时使CPU处于单步执行指令的工作方式
IF (Interrupt Enable Flag): 中断允许标志位, IF=1 时使CPU可以响应可屏蔽中断请求
DF (Direction Flag): 方向标志位,在数据串操作时确定操作方向
段寄存器
作用:存放相应逻辑段的段基地址
8086/8088内存中逻辑段的类型
1.代码段:存放指令代码
CS(寄存器): 代码段寄存器,存放代码段的段基地址
2.数据段:存放操作的数据
DS(寄存器): 数据段寄存器,存放数据段的段基地址
3.附加段:存放操作的数据
ES(寄存器): 附加段寄存器,存放数据段的段基地址
4.堆栈段:存放暂时不用但是需要保存的数据
SS(寄存器):堆栈段寄存器,存放堆栈段的段基地址
tips:段寄存器的值表明相应逻辑段在内存中的位置
4.内存单元的编址
每个内存单元在逻辑上由两部分构成
1.段(基)地址:
指示存储单元在整个内存空间中处于哪个区域(段),逻辑段地址的第一个单元被称为 段首(地址)
2.段内地址(相对地址/偏移地址):
指示存储单元在段中的相对位置(与段中第一个单元的距离)
3.物理地址 = 段基地址 * 16 (二进制左移四位) + 偏移地址
逻辑段与逻辑地址
1.内存的分段是逻辑段,不是物理段
2.每个内存单元可有多个逻辑地址,但只有唯一物理地址
3. 逻辑段尾地址 = 段基地址*16 + FFFFH
堆栈及堆栈段
1.栈顶==栈底 ---->空栈 栈顶==栈首---->满栈
2.栈顶=段基地址*16 (段首) + 偏移地址
5.8088系统总线
按层次结构分
1.CPU总线
2.系统总线
3.外部总线
总线的基本功能
1.数据传送
2.仲裁控制
3.出错处理
4.总线驱动
总线性能指标
1.总线带宽(B/S):
单位时间总线传送数据量
总线带宽 = 位宽 * 工作频率
2.总线位宽(bit):
能同时传送的数据位数
3.总线的工作频率(MHZ):
总线带宽 = (位宽/8) * (工作频率/每个存取周期的时钟数)