大家好,又见面了,我是你们的朋友全栈君。
微机原理与接口技术
第01章 微机原理概述
基本知识
- CPU:中央处理单元(Central Processor Unit),处理器,能够分析和执行指令的部件,能分析和执行指令的芯片就是CPU
- MPU:微处理器,Micro Processor Unit,CPU集成芯片,比传统CPU功能性能简化,集成度高,价格低廉,性价比高
- 微型计算机(微机:MicroComputer):MPU 存储器 I/O接口 外设 软件系统,简称微机
- PC机(Personal Computer)
- 计算机的三种典型应用形态:
- 主板为各个部件(CPU、内存、硬盘、显卡、键盘、鼠标等)提供相应接口,并通过总线将它们连结。
- 主板含芯片组、BIOS芯片、CMOS芯片等
- CPU组成及其性能参量 ■ 组成 ◆ ALU(算术逻辑运算单元) ◆ 控制器 ◆ 寄存器(Register)组 ◆ Cache(高速缓存) ■ 性能参量 ◆ 外频:CPU外部输入的时钟频率(MHz) ◆ 主频:CPU内部工作频率(MHz) = 外频 * 倍频 ◆ CPU位数:CPU字长,通用寄存器位数。 □ 32位:例如386,PIII、PIV,i3,…等; □ 64位CPU:Itanium(安腾)
- Memory ■ 功能: ◆ 存放程序和数据 ■ 分类 ◆ RAM/ROM:掉电后所存储的数据丢失/不丢失 ◆ 主存(属于RAM型): □ 运行速度非常快,能与CPU直接交换信息 □ CPU将执行的指令是从内存中取得的 □ CPU访问内存通过系统的地址总线、数据总线、MEMR、MEMW 控制线来进行 ◆ 外存: 间接读写(软盘/硬盘/光盘/U盘等)
- 主板接口:P37
- CPU通过地址总线,数据总线,控制总线连接外部设备:
- 地址总线 通常为32位,即A31~A0,因此,可寻址的内存单元为2^32=4GB。I/O接口也是通过地址总线来寻址的,它可寻址64KB的外设端口。
- 数据总线 通常为32位,即D31~D0。数据在CPU与存储器和I/O接口之间双向传输。
- 控制总线 传送各种控制信号:有CPU到存储器和外设接口的控制信号:存储器请求(MREQ)、I/O请求(IORQ)、读信号(RD)、写信号(WR)等;有外设到CPU的信号:READY、INT等
IA- Intel Architecture(x86架构)
- CPU架构的概念 ■ 指令,寻址,内存接口,外部接口,扩展,……
- Inte Architecture 32 = I.A. 32位
- IA-32结构的最重要成就:向后兼容性
- IA-32结构起源:Inte 8088/8086
- IA-32结构同时包括16位处理器和32位处理器
- 个人计算机的标准平台,最成功的CPU架构
- 其他CPU架构: ■ 51单片机,ARM,MIPS,PowerPC,……
- I.A.结构向后兼容:“冯.诺依曼”结构 I.A.规范 ■ 内存储器:存有数据和程序 ■ 部件之间的交互遵循I.A.规范
计算机存储器模型
*(1)读操作
*(2)写操作
计算机指令执行过程:
汇编语言
寻址——寻找物理地址(PA)
寻址方式——寻找操作数的物理地址的方式
操作数的存放地点:
- (1)操作数在指令中 ■ 指令的操作数部分就是操作数本身。 ■ 也叫立即数
- (2)操作数存放在CPU寄存器中 ■ 指令的操作数部分是寄存器的编码 ■ 也叫寄存器操作数。
- (3)操作数存放在内存中 ■ 指令的操作数部分包含操作数所在的内存地址 ■ 也叫存储器操作数。
1.立即数寻址方式
举例:
代码语言:javascript复制MOV AL, 10 ;十进制数(D)
MOV AL, 00100101B ; 二进制数(B)
MOV AX, 263AH ; 十六进制数(H)
特点:
- 操作数直接存放在指令中,紧跟在操作码之后
2.寄存器寻址方式
举例:
代码语言:javascript复制INC SI
MOV AX,BX
特点:
- 指令中直接给出寄存器名,寄存器的内容即为操作数
- 不需要访问总线周期,因此指令执行速度比较快
- 16位操作数:AX、BX、CX、DX、SI、DI、SP、BP等
- 8位操作数:AH、AL、BH、BL、CH、CL、DH、DL等
3.存储器寻址方式
举例:
代码语言:javascript复制MOV AL, [2000H] ; AL ← PA=DSx16 2000
MOV AX,[SI] ; AX ← DSx16 [SI],[SI+1]
MOV BH,[BP] ; BH ← SSx16 [BP]
MOV AX, [BX 10H] ; EA=(BX) 10H
MOV AX, [BX SI] ; EA=(BX) (SI) ; DS段
特点:
- 指令直接或间接给出有效地址EA,物理地址PA需计算.
- 计算物理地址分2步 ■ (1)先计算有效地址EA(与寻址方式有关) ■ (2)再计算物理地址PA(与存放的段有关)
3.1 寄存器直接寻址方式
举例:
代码语言:javascript复制MOV AL,[2000H] ; AL ← PA=DSx16 2000
特点:
- 指令中直接给出有效地址EA:8位或16位位移量
- PA = (段寄存器)X 10H 指令中的EA
- 默认方式下:段寄存器是数据段DS
- 段跨越:指令增加段寄存器名前缀:CS,ES,SS等
段超越的例子:
代码语言:javascript复制MOV AX,ES:[2000H]
ES:MOV AX, [2000H]
3.2 寄存器间接寻址方式
举例:
代码语言:javascript复制MOV AX,[SI] ;AX ← DSx16 [SI],[SI+1]
MOV BH,[BP] ;BH ← SSx16 BP
MOV CX,ES:[BX] ;将ES段[BX][BX 1]内容送CL,CH
特点:
- 操作数的有效地址EA在寄存器中
- 对16位寻址,EA只能放在DI、SI、BX、BP中 ■ 若EA在DI、SI、BX中,默认段为数据段DS ■ 若EA在BP中,默认段为堆栈段SS ■ 支持段跨越
3.3 寄存器相对寻址方式
举例:
代码语言:javascript复制MOV AX, [BX 10H] ; EA=(BX) 10H
特点:
- 给定基址/变址寄存器和相对偏移量,两者之和为EA
- 寄存器BX、SI、DI默认是数据段DS
- 寄存器BP默认堆栈段SS
- 支持段跨越
3.4 基址变址寻址方式
举例:
代码语言:javascript复制MOV AX, [BX SI] ; EA=(BX) (SI) ;DS段
特点:
- 有效地址EA是基址寄存器与变址寄存器的和
- 默认段由基址寄存器决定
- 支持段跨越
3.5 相对基址变址寻址方式
特点:
- 有效地址EA是基址寄存器 变址寄存器 偏移量三者之和
- 基址寄存器可取BX或BP,变址寄存器可取SI或DI
- 段寄存器由基址寄存器决定 ■ 基址寄存器是BX,则默认段为DS ■ 基址寄存器是BP,则默认段为SS
第02章 微机原理(8088)
2.1 8088CPU的基本原理
8086/8088 CPU的特点
- 采用并行流水线工作方式
- 支持多处理器系统
- 片内无浮点运算部件,浮点运算由数学协处理器8087支持(也可用软件模拟) ■ 注:80486DX以后的CPU均将数学协处理器作为标准部件集成到CPU内部
- 对内存空间实行分段管理
8086/8088 MPU
相同点:
- 寄存器:16位
- 地址线:20根,1MB内存
差异:数据总线,指令队列
- 数据总线: ■ 8086:16根 ■ 8088: 8根(准16位机)
- 指令队列: ■ 8086:6字节 ■ 8088:4字节
8088内部结构:EU和BIU
- EU(Execute Unit,执行单元):负责执行指令或运算
- BIU (Bus Interface Unit,总线接口单元):负责读指令和数据
EU功能和内部构成
- 内部构成 ■ 1)ALU:执行基本运算和处理. ■ 2)一组通用寄存器 标志寄存器 ■ 3)EU控制系统:队列控制和时序控制
- 功能:负责执行指令或运算 ■ 从指令队列中取指令代码,译码,在ALU中完成数据的运算,结果的特征保存在标志寄存器中
BIU功能和内部构成
构成:
- 1)四个段寄存器 指令指针IP
- 2)地址加法器:段地扯和偏移地址相加,形成20位物理地址
- 3)指令队列缓冲器: 6或4字节
- 4)总线控制逻辑:内外总线接口
功能:
- 具有预取指令的功能 ■ 执行指令的同时从内存取下一条或几条指令放在队列中
- 指令执行顺序 ■ 顺序指令执行 ■ 执行转移指令后: 清除队列。从新地址取指并立即送往执行单元
8088工作原理:取指令-执行指令不断循环
8088并行工作方式:流水线
- 指令预取队列的存在使EU和BIU可同时工作
- 2级流水线
2.2 8088的运行(执行)环境
14个基本寄存器
- 8个通用寄存器 ■ General Registers ■ 数据和地址寄存器各4个
- 1个指令指针寄存器 ■ IP: Instruction Point
- 1个状态标志寄存器 ■ Flags Register
- 4个段寄存器 ■ Segment Registers ■ CS,DS,SS,ES
4个数据相关的寄存器:AX,BX,CX和DX
- 常用来存放参与运算的操作数或运算结果
- 16位数据寄存器,分为8个8位寄存器 ■ AX: AH,AL ■ BX: BH,BL ■ CX: CH,CL ■ DX: DH,DL
- 8位可以单独操作位
- 习惯使用 ■ AX:累加器。多用于存放运算结果及与外设信息等 ■ BX:基址寄存器。常用于存放内存地址 ■ CX:计数寄存器。循环或串操作存放循环或重复次数 ■ DX:数据寄存器。在32位乘除法运算存放高16位数
4个地址相关的寄存器:SP,BP,SI,DI
- SP,BP,SI,DI:段内寻址时存放偏移地址 ■ SP(Stack pointer)——堆栈指针寄存器 用来指示栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址 ■ BP(base pointer)——基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址 ■ SI——Source Index Register 源变址寄存器 ■ DI——Destination Index 目的变址寄存器
1个指令指针寄存器:IP
- 存储CPU将要执行的下一条指令的偏移地址
- CPU在执行完一条指令之后,会自动将下一条指令的偏移地址存入到IP中
1个状态标志寄存器:PSW
16位,包含9个标志位(6个状态位,3个控制位)
- 状态位:由算术、逻辑运算结果结果自动设置 ■ 作为条件转移指令的转移控制条件
- 控制位:由用户或程序直接或间接设置。
- 状态位的例子 ■ OF(Overflow Flag),溢出标志位 功能:标示符号数的运算结果是否溢出
- 控制位的例子 ■ DF(Direction Flag),方向位 功能:用于控制字符串操作的地址步进方向
4个段寄存器:CS,DS,SS,ES
段寄存器和其他寄存器组合起来指向某个内存单元
数据存放规律
堆栈
- 例子:子程序调用的过程
调用发生后,主程序在CPU中的运行环境被破坏调用返回时,必须恢复主程序之前的运行环境
堆栈(STACK):
- 在子程序调用和中断服务时存储参数和现场数据
- 特殊内存 ■ “后进先出”(LIFO)存储 ■ 堆栈一端固定(栈底),另一端活动(栈顶),数据只允许从栈顶存取(进或出) ■ 栈指针:指示栈顶位置(Stack Poniter,SP)
- 堆栈的伸展方向 ■ 栈底的地址大,栈顶的地址小
- 栈的操作(PC) ■ 入栈:将一个数存入栈顶,并改变SP (变小) ■ 出栈:从栈顶读出一个数据,并改变SP (变大)
入栈操作:
- PUSH SRC; SRC 代表寄存器或存储单元地址
- 功能:将寄存器或存储单元中的一个字压入堆栈
- 操作: ■ “先减后入”: SP-1→SP, 字高位→[SP] SP-1→SP, 字低位→[SP]
- 结果:SP-2, 数据高对高,低对低存放
出栈操作:
- POP DST ; DST 代表寄存器或存储单元地址
- 功能:将栈顶一个字传送到寄存器或存储单元中
- 操作 ■ “先出后加”: [SP]→字低位, SP 1→SP [SP]→字高位,SP 1→SP
- 结果:SP 2, 数据低对低,高对高存放
2.3 数字电路、常用门和IC芯片
三态门:
典型应用:数据传输方向控制、总线存取控制、模拟开关
触发器——D触发器
锁存器——D锁存器
功能表:
太难了而略过的内容:
锁存器74HC373:8D三态锁存器
Intel 8282:三态锁存器
异步清零的锁存器:74LS273
74LS244 ——缓冲器(实质是三态开关)
74LS245 ——缓冲器(实质是三态开关)
缓冲器—— Intel 8286 (实质是三态开关)
基本芯片–译码器
3-8译码器
2.4 8088微处理的外部结构
[PPT02 P60-87]
2.5 8088处理器时序和总线周期
[PPT02 P89-99]
2.6 IA-32发展历史
[PPT02 P101-115]
第03章 接口概念和原理
3.1 接口/端口的定义
- 任何两电路或设备间的连接电路都可称接口
- 接口是一组特殊控制电路,介于CPU与内存、CPU与外设之间
- 各种外设都必须通过接口才能和CPU(或总线)相连
■ 寻址:确定设备的地址,区分不同的设备; ■ 缓冲:适配外设与CPU的工作速度; ■ 转换:适配外设与CPU的信息格式、类型、幅度; ■ 时序:外设与CPU的工作时序。
- 接口电路的组成:由多类/多个寄存器构成 ■ 数据寄存器,暂存数据 ■ 状态寄存器,暂存状态 ■ 命令寄存器,暂存命令
定义: 端口:寄存器的另一称呼
- 端口**【PORT】** ■ 端口就是接口中的寄存器CPU,与外设信息交换场所 ■ 端口:可寻址(端口地址)
微机的端口
- 16根I/O线:地址空间216 = 64K
- IBM:A0~9线有效,地址空间210 = 1K:000H ~ 3FFH
- PC系统IO端口的分配 ■ 前256个端口:000h-0FFh,系统外设占用 ■ 后768个端口:100h-3FFh,常规外设占用
3.2 端口访问指令
3.3 接口/端口地址设计
第05章 定时器/计数器和8253A
定时(计时)
- 为CPU和外设提供时间标记或一段时间
- 时序,各种周期,时间片、系统时间、时间间隔、运行时间
8253A的结构和基本特点
- 有3个16位相互独立的计数器:T0, T1, T2
- 每个计数器都可以按照二进制或二-十进制计数
- 每个计数器可设置6种不同的工作方式
- 每个计数器可以预置计数初值(时间常数)
- 计数器的当前计数值可被CPU读出
略过:8253A
第06章 中断和8259A
略过:8259A
第07章 直接内存存取(DMA)
略过:8237A
第08章 并行接口和8255A
略过:8255A
第09章 串行接口和8251
略过:8251A
第10章 DA转换和AD转换
略过:ADC0809
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。