第一章 计算机基础
一、微机基本知识
1、微处理器、微型计算机和微型计算机系统的概念
微处理器:cpu
微型计算机:只有硬件系统没有软件系统也叫裸机
微型计算机系统:既包含硬件系统又包含软件系统
2、微机组成
运算器、控制器、存储器、输入设备、输出设备
读:把存储器的东西放cpu里
写:把cpu的东西放在存储器里
三大总线:地址(AB)、数据(DB)、控制(CB)
3、主板结构
4、总线类型及其功能
片内总线:cpu内部的总线。
系统总线:连接cpu与其它内部之间的连线;包含:地址、数据、控制。(地址是单向的)
外部总线:连接各个外设
注:地址总线是单向的,数据和控制总线是双向的
地址(寻址),数据(字长),控制(指令条数)
5、微机读取一条指令的工作过程
将要获取的地址取出放到地址寄存器,然后根据地址取出内存中对应地址的数据进行指令译码
二、数据表示
1、数值及转换
2、无符号数和有符号数及逻辑运算
(1)原码、反码、补码
①原码
二进制数的最高位表示符号,0正1负。数值部分用二进制数绝对值表示
8位二进制原码范围:-127~+127;16位二进制原码范围:-32767~+32767
②反码
符号位不变,其余位按位取反
8位二进制反码范围:-127~+127;16位二进制反码范围:-32767~+32767
注:‘0’有两种表示方法,[+0]反:00000000;[-0]反:11111111
③补码
符号位不变,在反码的基础上+1
8位二进制反码范围:-128~+127;16位二进制反码范围:-32768~+32767
注:[+0]补=[-0]补=00000000
正数的原码反码补码都一样,负数的原码反码补码正常求
(2)真值与机器数
用+或-表示正负的数叫真值,用0和1表示正负的数叫机器数
(3)逻辑运算符
与:两者都是真结果为真
或:只要一个为真结果就为真
非:取反
异或:相等为0不等为1
3、BCD码和ASCII码的表示
(1) BCD码:四位二进制表示一位十进制数
(2) ASCII码:美国信息交换标准代码
三、微机组成电路
1、基本门电路符号
与
或
异或
非
2、寄存器、存储器、触发器之间的关系
若干个触发器一个寄存器
若干个寄存器一个存储器
第二章 16位微处理器
一、8086/8088微处理器(第三代)
1、16位微处理器概述
- 微处理器 :是微型计算机的运算及控制部件,也称中央处理单元(cpu)
- cpu功能:指令控制、操作控制、时序控制、数据加工
- 8086特点:
(1)数据总线16位,地址总线20位
(2)133条指令,指令长度1~6字节 变字节
- 8086和8088的区别:
(1)8088 有 8 位数据总线,有 8 个地址/数据复用引脚,不需要BHE
8086 有 16 位数据总线,有 16 个地址/数据复用引脚
(2)8086中M/IO*代替8088中IO/M*(8086IO低电平,8088M低电平)
(3)8086指令队列6字节,8088指令队列 4字节
2、8086cpu内部结构
(1)执行部件(EU)
功能:负责指令执行
①通用寄存器
• 数据寄存器
AX:累加、 BX:寻址、 CX:计数、DX:数据(可分高8位,低8位)
高8位:AH、BH、CH、DH
低8位:AL、BL、CL、DL
• 地址寄存器
SP:堆栈指针、 BP:基址指针、SI:源变址寄存器、DI:目的变址寄存器
注:SP指向栈顶,BP指向堆栈中的任何区域
在串操作中,SI与DS联用,DI与ES联用
②算术逻辑运算单元(ALU)及标志寄存器(FR)
ALU:只包含加法器
FR:微处理器状态字PSW
③内部控制逻辑电路
(2)总线接口部件(BIU)
功能:负责与M、I/O端口传送数据
①段地址寄存器
CS:代码段、DS:数据段、ES:附加段、SS:堆栈段
②地址加法器
用来产生20位物理地址
③指令指针寄存器(IP)
存放当前要执行的下一条指令的偏移地址;也叫程序计数器PC
④指令队列
8086指令队列6字节,8088指令队列4字节。
指令队列:先进先出;堆栈:先进后出
⑤I/O控制逻辑
是系统总线(AB、DB、CB)的控制电路
(3)EU与BIU
EU与BIU之间是通过指令队列联系的
3、寄存器结构
(1)通用寄存器
AX、BX、CX、DX(可分高8位,低8位)
(2)指针与变址寄存器
SP、 BP、SI、DI
(3)段寄存器与指令指针寄存器
CS、DS、SS、ES ;IP
(3)标志寄存器
标志寄存器flags:16位,仅定义了9位,其中6位状态位,3位控制位
4、8086存储器的逻辑地址和物理地址
段的起始地址:16进制后1位为0,二进制后四位为0
一个段的大小64K
cpu可以用不同的段地址和偏移地址形成同一个物理地址
注:堆栈存取原则“先进后出、后进先出”
8086/8088的堆栈属于向下生长型,在堆栈段SS用SP指向栈顶
5、加电或复位
8086CPU在加电或复位后CS=0FFFFH(十六进制字母开头在前面写0),IP=0000H
即开机后执行的第一条指令在FFFF0H
6、存储器结构
地址码为一个不带符号的整数表示,从0到,即00000H~FFFFFH
8086/8088CPU能直接寻址的地址范围:00000H~FFFFFH(1M)
二、8086/8088CPU引脚
1、8086CPU工作模式
(1)8086最小组态配置图
①8282/8283:8位地址锁存器。而8086是20位地址所以需要3片
②8286/8287:数据收发器。低16位的传输,需要2片
③8284:时钟发生器。ready和reseat经过时钟发生器在进入CPU
(1)8086最大组态配置图
①8288:总线控制器
②8289:总线裁决器
2、8086CPU引脚信号
注:WR、RD可以都等于1,但不能都等于0
3、8086存储器的分体结构
(1)奇偶存储体
A0=0偶,A0=1奇
(2)BHE*和A0组合对应的操作
注:偶存储体连低8位,奇存储体连高8位
(3)数据存放格式
存储器两个连续字节组成一个字,存入时按照高高低低原则
三、8086/8088总线的工作周期
1、概念
(1)什么是总线操作
CPU通过总线对外的操作
(2)总线操作主要有
M/IO的读写、中断响应操作、总线请求及响应工作
(3)时序
• 是指信号高低电平变化及相互间的时间顺序关系
• 总线时序描述CPU引脚如何实现总线操作
• CPU时序决定系统各部件间的同步和定时
• 描述总线操作的微处理器时序有:指令周期、总线周期、时钟周期
时钟周期:是CPU的基本时间计量单位,=1/主频
总线周期:CPU通过总线对存储器或I/O进行一次数据交互的过程
指令周期:CPU取一条指令并执行该指令的时间
指令周期包含若干总线周期,而后者又包含若干时钟周期
一个总线周期至少需要四个时钟周期,即T1、T2、T3、T4
总线周期中的时钟周期也叫“T状态”
等待时钟周期TW:在T3和T4之间插入
空闲时钟周期Ti:在2个总线周期之间插入
2、最小模式下的读/写周期
T1:传地址
T2:读/写指令和数据收发指令
T3:低16位出现CPU要读/写的数据或等待数据的出现
T4:将数据读/写入CPU
T1:M/IO*、A19/S6~A16/S3、AD16~AD0、BHE*/S7可高可低
ALE在T1状态下必高,其余状态低
DT/R*一直高电平
DEN*在T1状态下传的是地址而不是数据所以高电平
T2:M/IO*、A19/S6~A16/S3、AD16~AD0、BHE*/S7可高可低
WR写指令低电平有效
DEN*发送数据低电平有效
T3:ready检测
五、8086/8088系统的中断
1、中断操作
暂停现行的主程序,转去执行中断服务子程序,完成中断事件后,返回断点继续执行主程序
2、中断源和中断类型
中断源:引起中断的原因或事件
3、中断向量与中断向量表
中断向量:是中断处理子程序的入口地址
中断向量表:地址范围为00000H~03FFFH,一个中断向量占4个存储单元
4、专用中断
系统写好的,先存偏移地址再存段基址,数值越小优先级越高,由高到低:
INT 0 除法错中断、INT 1 单步中断、INT 2 非屏蔽中断、INT 3 断点中断、INT 4 溢出中断
5、可屏蔽中断响应条件
INTR有请求、IF=1
6、中断响应
8086的中断响应需要2个总线周期
第一个总线周期:CPU收到外界中断请求,IF为1,会给INTA响应
第二个总线周期:把中断类型码给CPU
7、中断优先级
有比当前优先级更高的中断请求,转去执行高优先级的中断
第三章 8086/8088指令系统
一、8086/8088指令系统的格式与寻址方式
1、格式
[标号] 操作码 操作数 [注释]
2、寻址方式
二、传送类指令
除串操作外不允许2个操作数都是存储器
MOV指令的几点说明:
• 不允许2个操作数同时是段寄存器或存储器
• 立即数不能直接传送到段寄存器中
• 目的操作数不能是CS、IP
•类型相同(字节、字)
•MOV不影响标志寄存器的值
三、数据操作类指令指令
1、算数运算指令
2、逻辑运算和移位指令
四、串操作指令
五、控制类指令
第四章 汇编语言的程序设计
一、基本概念
1、机器语言、汇编语言、汇编程序
(1)机器语言:直接用二进制表达指令的计算机语言
(2)汇编语言:采用助记符等表达指令的计算机语言
(3)汇编语言源程序:汇编语言编写的程序
(4)汇编程序:将汇编语言源程序翻译成机器代码的程序
2、汇编语言的语句格式
[名字项] 操作项 操作数 [注释]
名字项:可省,是某些数据或存储器地址的临时符号名。由1~31个字符组成,可以是A~Z、
a~z、 0~9、?、@、_等。但一个字符必须是字母,一些保留字不能做名字
源程序.asm 目标模块.obj 可执行文件.exe
3、汇编语言的基本语法
(1)常量、变量、标号
常量:几进制数、字符串常量(以ASCII码形式存放)
变量:有三个属性。段属性(SEGMENT)、偏移属性(OFFEST)、类型属性
TYPE):表示占多少个字节,DB字节、DW字、DD双字
标号:表示一条指令所在的地址,三种属性。段属性、偏移属性、距离属性:NEAR
(近)段内转移,FAR(远)段间转移
(2)运算符和表达式
①表达式
②运算符
③运算符的优先级(由高到低)
•()中的表达式
• LENGTH、SIZE
• PTR、OFFEST、SEG、TYPE、THIS、段前缀
• HIGH、LOW
• *、/、MOD、SHL、SHR
• +、-
• EQ、NE、LT、LE、GT、GE
• NOT
• AND
二、伪指令
1、伪指令的格式
变量名 定义符 操作数 [注释]
2、常用伪指令
寄存器设置为0的方法
MOV AX,0/0000H //直接MOV 0
SUB AX,AX //做减法
AND AX,0000H //任何与0做与运算都为0
XOR AX,AX //相同为0,异或
三、汇编语言程序的结构
1、汇编语言源程序的结构(用到哪个定义哪个)
2、汇编语言和DOS操作系统之间的接口
MOV AH,4CH
INT 21H
程序完成后会自动返回DOS状态
第四章 存储器系统
一、概述
1、半导体存储器的分类
2、半导体存储器的组成
存储体、地址译码器、控制逻辑电路、数据缓冲器
3.三级存储系统结构
由高到低依次为:cpu cache高速缓冲存储器 内存 外存
cache:提高cpu访问速率
内存:能直接与cpu进行交互
外存:cpu不能直接访问,先进入内存由内存进入cpu
内存和外存弥补主存容量的不足
二、半导体存储器与CPU连接
1、存储器片选信号的处理方法
全译码法、部分译码法、线选法
2、74L138
第六章 中断控制器8259A
• ICW:中断控制字
• IOW:中断操作字
• ISR:中断服务寄存器
• IMR:中断屏蔽寄存器
• IRR:中断请求寄存器
一、可编程中断控制器8259A简介
• 中断系统解决当前高速CPU与低速外设信息交互之间的矛盾
• 管理可屏蔽中断
1、8259A基本功能
• 一片8259A可管理8级中断,可扩展至64级
• 每一级中断都可单独被屏蔽或允许
• 提供中断向量号,有多种工作方式可通过编程选择
2、8259A芯片结构
(1)中断请求寄存器IRR
• 保存IR0 ~ IR7
• Di位为1表示IRi引脚有中断请求,为0表示无请求
(2)中断服务寄存器ISR
• 保存正在被8259A处理的中断请求信号
• Di位为1表示IRi中断正在服务中,为0表示没有被服务
(3)中断屏蔽寄存器IMR
• 保存IRi的屏蔽信息
• Di位为1表示IRi中断被屏蔽,为0表示允许
3、8259A的外部引脚
二、8259A芯片的工作方式
1、中断触发方式
2、8259A中断类型码的形成
• 一片8259A引入的8级中断请求类型码是连续的
• 中断类型码是用户可定义的
3、设置优先权方式
4、中断结束方式
8259A利用中断服务寄存器ISR判断
• ISR相应位为1正在进行中断,结束时该位清0
三、8259A芯片的级联使用
• 一个主片若干的(最多8个)从片
• 主CAS0~CAS2连从片的CAS0~CAS2
• 从片的中断请求信号INT连主片的中断请求输入端IR
• 主片的INT连CPU的中断请求输入断IR
• 从片使能端SP/EN*接地,主片接电源VCC 使能端为0从片为1主片
四、8259A芯片控制字及工作方式
1、8259A编程两部分
2、8259A两个内部端口地址
第七章 输入/输出接口
一、I/O接口概述
• 为什么需要I/O接口电路
微机的外设多种多样,工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大,因此它们不能与CPU直接相连,必须经过中间电路再与系统相连,这部分电路被称为I/O接口电路
• 什么是I/O接口电路
I/O接口是位于系统与外设间,用来协助完成数据传送和控制任务的逻辑电路。PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路
1、I/O接口交换的信息
2、I/O端口的寻址方式
8086采用I/O端口独立编址
3、8086/8088的I/O编程
• 8086寻址外设地址线16条AD15~AD0,端口最多65536个(64K),端口号为0000H~FFFFH
• 每一个端口用于传送1个字节(8位)的外设数据
• 两种寻址方式
直接寻址:00H~FFH前256个端口
间接寻址:全部64K个端口,先放DX
4、输入/输出的控制方式
二、并行通信与并行接口
串行:传输线数量少 中低速度 远距离传输
并行:传输线数量多 速度快 近距离传输
三、可编程并行通信接口芯片8255A
3种工作方式 3个8位数据端口 可以实现中断方式和查询方式的数据传送
1、8255A内部结构
(1)8255A对外设一侧有3个8位数据端口,即数据端口A、B、C
• 端口A/B/C:对应1个8位数据输入锁存器和1个8位数据输出锁存器/缓冲器
• A口和B口做数据端口 C口作为A口和B口的联络线
(2)对CPU来讲,8255A有4个CPU可访问的8位端口
• A口、B口、C口、控制口
(3)8255A引脚
2、8255A芯片的控制字及其工作方式
(1) 三种工作方式
• 方式0:基本输入输出(适用于无条件传送和查询方式)
• 方式1:选通输入输出(适用于查询和中断方式)
• 方式2:双向选通传送(适用于与双向传送数据的外设、查询和中断方式)
注: 用户可用软件来分别定义3个端口的工作方式,可使用的控制字有工作方式控制字和置 位/复位控制字
• A口支持方式0 1 2 , B口支持0 1,C口仅支持0
• C口中A组控制高四位PC4~PC7(上半口)
B组控低四位PC0~PC3(下班口)
(2)2个控制字
• 方式选择控制字
• 置位/复位控制字
只对C口进行控制但写入到控制口
3、打印机各控制信号的意义
DATA STROBE:数据选通信号。打印机要有一个宽度为0.5us的脉冲,作为数据选通信号,由PC4输出
BUSY:打印机的状态信号。高电平有效,此时打印机“忙”,不能接受新的输出数据。由PC2读入
DRIVE RIGHT:8255A给外设的启动信号。此信号驱动纸带前进一步,并读一个字符。由PC5输出
DATA READY:纸带读入器的状态信号。高电平表示纸带读入器已将数据准备好,由PC3读入
四、串行通信及串行接口
• 串行通信的3种传输方式:全双工、半双工、单工
1、串行通信线路的工作方式
串行通信分为同步通信和异步通信
①同步通信
• 把许多字符组成一个信息组(帧为传输单位,每帧信息包括成百上千个字符)
• 同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂
• 在传送时要加上同步字符,在没有信息帧要传输时,要填上空字符,因为同步传输不允许 有间隙
②异步通信
• 字符为传输单位,每个字符作为一个独立的信息单位(1帧数据)
• 异步通信数据格式也叫异步通信帧格式
起始位为0,后有5~8个信息位,后有校验位(奇偶校验或不设),最后是1~2位的停止位
2、传输速率
也叫波特率,每秒传输多少位二进制位
五、可编程串行接口芯片8251A
串行,应用于长距离的传输,采用异步通信或同步通信
第八章 可编程计数/定时器8253
一、可编程计数/定时控制器8253
1、8253定时计数器
• 3个独立的16位计数器通道
• 每个计数器有6中工作方式
• 按二进制或十进制(BCD码)计数
• 8253可与8086/80888CPU相连构成完整的定时、计数或脉冲发生器系统
2、8253内部结构和引脚
(1)读/写控制电路
• 可接收的控制信号如下:
① A1A0:端口选择信号
3个独立通道和1个控制字寄存器构成4个端口
A1A0=00 通道0 A1A0=01 通道1 A1A0=10 通道2 A1A0=11 控制字寄存器
② CS*:片选信号
③ RD*、WR*:读写控制命令
(2)通道0~通道2(计数器)
• 采用二进制计数时,最大计数值是FFFFH,最大初值0000
• 采用BCD码计数时,最大计数值是9999,最大初值0000
• 计数初值公式:
(3)控制字寄存器
8253的方式选择控制字
二、8253的工作方式
有6种工作方式,由方式控制字确定
• 方式0 计数结束产生中断
• 方式1 可编程单脉冲发生器 只产生1个负脉冲NCLK
• 方式2 频率发生器(分频器) 每四个时钟周期一个负脉冲
• 方式3 方波发生器
• 方式4 软件触发方式
• 方式5 硬件触发方式
1、计数开始的时刻
任一种方式,只有在计数值后才能开始计数
方式0、2、3、4在写入计数值后,计数自动开始
方式1、5需外部触发,才开始计数
2、计数值n与输出波形的关系
3、6种工作方式的比较
• 只有方式0是在写入控制字后OUT为低,其它均为高
• 方式0,1,4计数初值仅一次有效,方式2,3,5能自动重装
• 一般方式0,1,4,5选作计数器用(输出一个电平或一个脉冲),而方式2,3选作定时器用 (输出周期脉冲或周期方波)