第一章微型计算机基础报告.docx
《第一章微型计算机基础报告.docx》由会员分享,可在线阅读,更多相关《第一章微型计算机基础报告.docx(22页珍藏版)》请在冰豆网上搜索。
![第一章微型计算机基础报告.docx](https://file1.bdocx.com/fileroot1/2023-1/31/aafaf759-7a38-480f-bfd7-39f57ca20d66/aafaf759-7a38-480f-bfd7-39f57ca20d661.gif)
第一章微型计算机基础报告
第一章微型计算机基础
1.1微型计算机的常用术语
(1)、位和字节
位(bit)是计算机所能表示的最小最基本的数据单位,它指的是取值只能为0或1的一个二进制数值位,位作为单位时记作b。
字节(byte)由8个二进制位组成,通常用作计算存储容量的单位,字节作为单位时记作B。
KB是kilobyte(千字节)的缩写,1KB=1024B=
B;
MB是megabyte(兆字节)的缩写,1MB=1024KB=
B;
GB是Gigabyte(十亿字节)的缩写,1GB=1024MB=
B;
TB是Terabyte(太字节)的缩写,1TB=1024GB=
B。
(2)、字长
字长是微处理器一次可以直接处理的二进制数码的位数,它通常取决于微处理器数据总线的宽度。
微处理器的字长有4位、8位、16位和32位等等。
(3)、主频
主频也叫做时钟频率,用来表示微处理器的运行速度。
主频越高,表明微处理器运行越快,主频的单位是MHz。
(4)、微处理器的集成度
指微处理器芯片上集成的晶体管的密度。
最早Intel4004的集成度为2250个晶体管,PentiumIII的集成度已经达到950万个晶体管以上,集成度提高了3000多倍。
SSI(小规模集成电路)晶体管数100个以下
MSI(中规模集成电路)晶体管数100~3000个
LSI(大规模集成电路)晶体管数3000~30000个
VLSI(超大规模集成电路)晶体管数100000~100000000个
ULSI(甚大规模集成电路)晶体管数100000000以上
(5)、微处理器的运算速度
运算速度是计算机完成任务的时间指标。
用MIPS(MillionsofInstructionPerSecond)来表示,意思是计算机每秒能执行多少百万条指令。
1.2数制和码制
1.2.1十进制、二进制和十六进制
(1)、十进制(DecimalSystem)
人们习惯用十进制数,任何十进制数都可表示成:
式中,10称为十进制计数的基础(Base);
称为第
位的权(Weight),
是数字(Digit),允许使用的数字有:
0~9十个数。
在书写十进制数时,可在数字后加上“D”,例如1006D。
(2)、二进制(BinarySystem)
二进制的数字只有“0”和“1”,正好与数字电路中电平的“高”与“低”、开关的“通”与“断”两种状态相对应。
式中,2称为二进制计数的基础;
称为第
位的权,
是数字,允许使用的数字有:
0、1。
在书写二进制数时,在数字后面加上“B”,例如1001B。
(3)、十六进制(HexadecimalSystem)
人们在分析计算机硬件或软件设计时常使用十六进制,因为十六进制与二进制之间有简单的转换关系。
式中,16称为十六进制计数的基础;
称为第
位的权,
是数字,允许使用的数字有16个:
0-9、A、B、C、D、E、F。
在书写十六进制数时,在后面加上“H”,例如5CH。
1.2.2进制之间的转换
(1)、十进制数与R进制数的相互转换
任意进制数转换为十进制数:
将各位数字与位权相乘求和,即直接使用定义公式。
例如:
十进制整数转为任意进制(R)数
转换规则:
“除R取余法”,即用十进制数反复地除以R,记下每次得的余数,直至商为0。
将所得余数按最后一个余数到第一个余数的顺序依次排列起来即为转换结果。
十进制小数转换成任意进制(R)小数
转换规则:
“乘R取整法”,即用十进制小数乘以R,得到一个乘积,将乘积的整数部分取出来,将乘积的小数部分再乘以R,重复以上过程,直至乘积的小数部分为0或满足转换精度要求为止。
最后将每次取得的整数依次从左到右排列即为转换结果。
总结:
以上介绍了十进制数与R进制数(在此主要是指二进制、十六进制数)的相互转换方法,为便于记忆,可简单归纳为:
R至十,位权展开求和;十至R用连除连乘法,并特别注意转换结果的排列规则(除R取余法是“先余为低,后余为高”;乘R取整法是“先整为高,后整为低”)。
(2)、二进制数与八进制、十六进制数之间的转换
因为
,所以每一位八进制数可以用一个3位二进制数表示;因为
,所以每一位十六进制数可以用一个4位二进制数表示。
八进制
0
1
2
3
4
5
6
7
二进制
000
001
010
011
100
101
110
111
十六进制
0
1
2
3
4
5
6
7
二进制
0000
0001
0010
0011
0100
0101
0110
0111
十六进制
8
9
A
B
C
D
E
F
二进制
1000
1001
1010
1011
1100
1101
1110
1111
二进制数与八进制、十六进制数之间的转换规则
1.2.3二进制的运算(主要记忆逻辑运算)
最基本的二进制逻辑运算包括与运算、或运算、非运算和异或运算。
二进制逻辑运算是逐位进行的。
(1)、与运算
:
“遇0则0;全1为1”
(2)、或运算
:
“遇1为1;全0为0”
(3)、非运算
:
“0变1;1变0”
(4)、异或运算
:
“相同为0;不同为1”
1.2.4二进制有符号数的表示方法
(1)、机器数与真值
把一个数及其符号在机器中的表示成一个二进制数,那么这个二进制数称为机器数,而被表示的数的值叫真值。
同一机器数,按原码、反码、补码等不同方式解读,其真值是不同的。
(2)、原码
二进制数最高位为符号位,其余的位表示数值。
符号位为0表示正数,符号位为1表示负数。
(3)、反码
二进制数最高位为符号位,其余的位表示数值。
符号位为0表示正数,符号位为1表示负数。
正数的反码与原码相同;负数的反码为:
符号位为1,数值的位按位取反。
(4)、补码
二进制数最高位为符号位,其余的位表示数值。
符号位为0表示正数,符号位为1表示负数。
正数的补码与原码相同;负数的补码为:
符号位为1,数值的位按位取反再加1。
负数的补码转化为真值
1.2.5关于补码的疑难问题
(1)、引入反码和补码的原因
计算机中为什么要引入反码和补码呢?
直接用1位0、1码表示正、负,而数值部分不变,在运算时带来一些新的问题:
一个正数与一个负数相加,和的符号位不是两符号位直接运算的值:
0+1=1,而由两数的数值大小决定;两个负数相加时,由于1+1=10,因此其和的符号也不是由两符号位直接运算的结果所决定的。
简单地说,用原码形式进行加运算时,负数的符号位不能与其数值部分一道参加运算,而必须利用单独的电路确定和的符号位,这样使计算机的结构变得复杂化了。
为了解决机器内负数的符号位参加运算的问题,引入了反码和补码两种机器数形式。
(2)、补码的运算
补码的加法:
补码的减法:
由上述分析,可以看出:
计算机中的带符号数用补码表示时,有许多优点:
第一,负数的补码与对应正数的补码之间的转换可以用同一方法——求补运算实现,因而可简化硬件。
第二,可以将减法变为加法运算,从而省去了减法器。
第三,无符号数及带符号数的加法运算可用同一电路完成,结果都是正确的。
例如,两个内存单元的内容分别为11110001及00001100,无论它们代表无符号数还是带符号数,运算结果都是正确的。
(3)、溢出概念
如果运算结果超出了所能表示的数值范围,则产生溢出,运算结果不正确。
1.2.6二进制编码
(1)、字符编码
ASCII码(AmericanStandardCodeforInformationInterchange,即美国信息交换标准代码),ASCII码用8位二进制对字符进行编码。
数字0~9的ASCII码为30~39H;大写英语字母A~Z的ASCII码为41H~5AH;小写英文字母a~z的ASCII码为61H~7AH。
(2)、BCD(BinaryCodedDecimal)编码
BCD编码有很多不同的编码规则,最常用的是8421BCD码,其编码规则为:
用4位二进制来表示1位十进制数。
十进制
0
1
2
3
4
5
6
7
8
9
二进制
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
压缩的BCD码:
每一位十进制数用4位二进制数表示(一个字节表示两位十进制数)。
例如,10010110B表示十进制数据96。
非压缩的BCD码:
非压缩的BCD码用1个字节表示一位十进制,高4位总是0000,低4位的0000~1001表示0~9。
例如,00001000B表示十进制8。
BCD码的用途:
在以二进制工作的机器内,数从十进制到二进制或从二进制到十进制转换时,BCD码用作中间表示,提高数据转换的效率;使用BCD码也可以压缩数据,节省空间。
1.3微型计算机系统的组成
1、微处理器(CPU)
CPU是微型计算机系统的核心,程序中的指令在程序中执行,但程序并不存储在CPU中。
CPU将程序加载到内存,再从内存中逐条取回程序的指令并执行。
为了实现这个过程,CPU拥有以下资源。
(1)、寄存器(Registers)
CPU使用寄存器存放临时信息,该信息分为两类:
一类是用来存放指令要处理的数据,另一类是存放内存的地址数据。
寄存器的位数一般和CPU数据总线的位数一致。
(2)、程序计数器(ProgrammingCounter)
PC中存放的是下一条待执行指令的地址,每当CPU执行一条指令,PC就会自动跟踪下一条指令的地址。
(3)、运算器(也称为算术逻辑单元ALU-ArithmeticandLogicUnit)
(4)、控制器
一般由指令寄存器、指令译码器(InstructionDecoder)和控制电路组成。
控制器根据指令的要求,对微型计算机各部件发出相应的控制信息,使它们协调工作,从而完成对整个计算机系统的控制。
2、存储器(Memory)
又称为主存,是微型计算机的存储和记忆装置,用以存放数据和程序。
微型机通过对各个内存单元规定不同地址来管理内存,内存单元的地址和内存单元的内容是两个完全不同的概念。
内存的分类:
(RandomAccessMemory和ReadOnlyMemory)
RAM可以被CPU随机地读写,故又称为读写存储器。
这种存储器用于存放用户装入的程序、数据及部分系统信息。
当机器断电时,所存信息消失。
ROM中的信息只能被CPU读取,而不能由CPU任意写入,故称为只读存储器。
机器断电,信息仍保留。
这种存储器用于存放固定的程序。
ROM中的内容只能用专用设备写入。
3、输入/输出(I/O)设备和输入/输出接口(I/OInterface)
I/O设备是微型机系统的重要组成部分。
程序、数据及现场信息要通过输入设备输入给微型机,CPU计算的结果通过输出设备输出到外部。
鉴于以下原因,微型计算机与外设间的连接及信息交换不能直接进行,而须设计一个“接口电路”作为微型计算机之间的桥梁。
(1)、外设处理的信息是数字量、模拟量、开关量等,而微型计算机只能处理数字量。
(2)、外设的速度慢,而微型计算机的速度快。
(3)、外设有时是串行数据,而微型计算机处理的是并行数据。
4、总线概述
综上所述,微型计算机硬件主要由CPU、内存、I/O接口和I/O设备组成。
微型计算机各部件之间是用系统总线连接的。
系统总线就是传送信息的公共导线,一般有三组总线:
地址总线AB(AddressBus):
传送CPU发出的地址信息,是单向总线。
数据总线DB(DataBus):
传送数据信息,是双向总线,CPU既可通过DB从内存或输入设备接口电路读入数据,又可通过DB将CPU内部数据送至内存或输出设备接口电路。
控制总线CB(ControlBus):
传送控制信息,其中,有的是CPU向内存及外设发出的信息,有的是外设等发送给CPU的信息,因此,CB中每一根线的传送方向是一定的。
5、微型计算机的工作过程
就是执行程序的过程,而程序由指令序列组成,因此,执行程序的过程,就是执行指令序列的过程,即逐条地从存储器中取出指令并完成指令所指定的操作。
由于执行每一条指令,都包括取指、译码和执行三个基本步骤,所以,微型计算机的工作过程,也就是不断地取指、译码和执行的过程,直到遇到停机指令时才结束机器的运行。
1.4微处理器
1.4.18086/8088的功能结构
在编程结构下,按功能分可将8086分为两个部分:
总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
1、总线接口部件(BIU)的功能和组成
功能:
总线接口部件负责CPU与存储器、输入/输出设备之间的数据传送,包括对存储器读写数据操作、对I/O接口的读写操作以及取指令操作。
组成:
段寄存器(CS、DS、SS、ES)、指令指针寄存器(IP)、地址加法器、内部暂存器、指令队列缓冲器及I/O控制逻辑等部分组成。
(1)、段寄存器
CS—代码段寄存器(CodeSegmentRegister),用来存放代码段段地址值;
DS—数据段寄存器(DataSegmentRegister),用来存放数据段地址值;
SS—堆栈段寄存器(StackSegmentRegister),用来存放堆栈段段地址值;
ES—附加段寄存器(ExtraSegmentRegister),用来存放附加段段地址值。
采用段寄存器的优点为:
①、解决了16位寄存器如何访问大于64KB的内存空间的问题。
②、可以实现程序重定位,即一个小于64KB的程序可通过改变段寄存器的内容放到1MB空间中的任意段位置,从而为同时运行多道程序提供了方便。
(2)、地址加法器
用于产生20位物理地址。
物理地址的获得方法是:
将段寄存器的内容左移4位,与偏移地址(即对段首的偏移量)在地址加法器内相加,产生20位物理地址。
根据寻址方式的不同,偏移地址可以来自程序计数器(IP)或其他寄存器。
假设CS=8200H,IP=1234H,则物理地址为83234H。
(3)、指令队列缓冲器
8086有6字节缓冲器,8088有4字节缓冲器。
在执行部件执行指令的同时,可以从内存中取出下一条或下几条指令放到缓冲器,一条指令执行完成后,可立即译码执行下一条指令,从而解决了以往CPU取指令期间,运算器的等待问题。
由于取指令和执行指令并行进行,从而提高了CPU的效率。
(4)、输入/输出控制电路(总线控制逻辑)
输入/输出控制电路控制CPU与外部电路数据交换。
8086有20条地址线,16条数据线,由输入/输出控制电路控制分时复用CPU芯片的16条引脚。
(5)、内部暂存器
用于内部数据的暂存,该部分对用户透明,用户无权访问。
(6)、指令指针寄存器(IP)
又称指令计数器,存放预取指令的偏移地址,自动加1。
2、执行部件(EU)的功能和组成
功能:
负责指令的执行的部件。
组成:
通用寄存器组、算术逻辑运算单元(ALU)、标志寄存器(FLAGS)和内部控制逻辑EU五部分组成。
(1)、数据寄存器
一般用于存放参与运算的数据或运算的结果。
4个数据寄存器AX、BX、CX、DX既可以作为16位寄存器使用,也可以作为8位寄存器使用,用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL):
有些指令约定AX(或AL)寄存器为累加器,如乘法、除法、输入/输出等指令。
(累加器:
既向ALU提供操作数,又接收存放ALU的运算结果。
)
BX(BH、BL):
可用作基址寻址的基址寄存器,在计算内存地址时,常用来存放基址。
CX(CH、CL):
循环和串操作中用作计数器。
DX(DH、DL):
数据寄存器,除用作通用寄存器外,在I/O指令中用作端口地址寄存器,乘除指令中用作辅助累加器。
(2)、指针寄存器
堆栈指针寄存器SP(StackPointer)
基址指针寄存器BP(BasePointer)
BP、SP常用来指示堆栈段中相对于段起始地址的偏移量。
BP一般用于访问堆栈段任意单元,SP用于访问堆栈段栈顶单元。
(3)、变址寄存器
源变址寄存器SI(SourceIndex)
目的变址寄存器DI(DestinationIndex)
SI、DI常用于变址寻址方式,访问数据段任意单元。
(4)、标志寄存器
FLAGS共16位,其中7位未用,0~7位与Intel的8位微型机相同。
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
OF
DF
IF
TF
SF
ZF
AF
PF
CF
状态标志:
CF(CarryFlag):
进位标志。
如果加法操作使最高位产生进位,或减法操作从最高位有借位时,CF为1,否则CF为0。
PF(ParityFlag):
奇/偶标志。
如果运算结果中所含的1的个数为偶数,则PF为1,否则为0。
AF(AuxiliaryCarryFlag):
辅助进位标志。
字节运算时,低半个字节向高半个字节有进位或有借位时,AF=1,否则AF=0;字运算时,低字节向高字节有进位或有借位时,AF=1,否则AF=0。
ZF(ZeroFlag):
零标志。
如果当前运算的结果为零,则ZF为1,否则为0。
SF(SignFlag):
符号标志位。
当运算结果的最高位为1时,SF=1,否则SF=0。
指出当前运算执行后的结果是正还是负。
OF(OverflowFlag):
溢出标志。
在运算过程中,如果操作结果超过了带符号数的范围则称为溢出,OF被置为1,否则OF置为0。
控制标志:
DF(DirectionFlag):
方向标志,控制串操作命令方向的标志。
如果DF为0,串操作过程中地址自增;DF为1,串操作过程中地址自减。
IF(InterruptFlag):
中断标志,控制可屏蔽中断的标志。
如果IF为0,CPU不能对可屏蔽中断做出响应;IF为1,则可以接受可屏蔽中断请求。
TF(TrapFlag):
跟踪标志。
如果TF为1,则CPU处于单步执行指令的工作方式,这种方式便于进行程序调试。
每执行一条指令后,自动产生一次内部中断,从而使用户能逐条指令地检查程序。
1.4.2微处理器的运算过程
1.4.38086/8088的引脚信号
1、引脚的分类:
(1)、只传送一种信息。
如32脚只传送CPU发出的读信号RD*。
(2)、每个引脚电平的高低代表不同的信号,如28脚的IO/M*。
(3)、在8086/8088的两种不同工作方式——最小模式和最大模式下有不同的名称和定义,例如:
29脚为WR*(LOCK*)。
(4)、每个引脚可以传送两种信息。
这两种信息在时间上是可以分开的。
因此可以用一个引脚在不同时刻传送不同的信息,一般称这类引脚为分时复用线。
如AD7~AD0是地址和数据的分时复用线。
当CPU访问内存或I/O设备时,在AD7~AD0上首先出现的是被访问的内存单元或I/O设备的低8位地址。
然后,在这些线上出现CPU进行读写的8位数据。
(5)、输入输出时分别传送不同的信息,如RQ*/GT0*。
输入时传送总线请求信号RQ*,输出时传送总线请求允许信号GT0*。
2、引脚信号介绍
GND、Vcc(引脚1、20、40):
第1、20引脚为地,第40引脚为电源。
AD0~AD7:
低8位地址、数据复用端、双向工作。
A15~A8:
高8位地址输出端。
A19/S6~A16/S3(引脚35~38):
地址/状态复用引脚输出
在总线周期的
状态输出要访问的存储器或I/O端口的地址,
状态,用来输出CPU的状态信息。
其中,S6总为0,表示当前8086/8088与总线是相连的;S5为中断允许标志的当前设置,IF=1表示允许可屏蔽中断请求;S4/S3合起来表示当前正在使用哪个段寄存器。
S4
S3
当前正在使用的段寄存器
0
0
ES
0
1
SS
1
0
CS或未使用任何寄存器
1
1
DS
NMI(Non-MaskableInterrupt,引脚17):
不可屏蔽的中断输入引脚。
上升沿触发,不受IF影响。
INTR(InterruptRequest,引脚18):
可屏蔽的中断请求信号输入引脚,高电平有效,受IF影响。
CLK(Clock,引脚19):
时钟输入端。
该引脚接至8284集成电路的输出端,由8284提供8088所需的4.77MHz、33%占空比(即1/3周期为高电平,2/3周期为低电平)的系统时钟信息。
RESET(Reset,引脚21):
复位信号输入
高电平有效。
复位信号要求至少维持4个时钟周期。
CPU将结束当前操作,并将FLAG、IP、DS、ES、SS及指令队列清零。
CS置为FFFFH。
当复位信号变低电平时,CPU从FFFF0H开始执行程序。
READY(Ready,引脚22):
“准备好”信号输入
高电平有效,是由CPU要访问的存储器或者I/O设备发来的响应信号。
当其有效时,表示存储器或者I/O设备已准备好,CPU可以进行数据传送;若还未准备好,则使READY信号为低电平。
CPU采集到低电平的READY信号后,自动插入TW(等待周期),直到READY变为高电平后,CPU才脱离等待状态,完成数据传送过程。
(Test,引脚23):
测试信号输入
低电平有效,结束等待状态,和WAIT指令结合使用,用于CPU与外部硬件同步。
CPU执行WAIT指令时,处于等待状态,当TEST信号有效时,结束等待状态,CPU继续执行被暂停的指令。
(Read,引脚32):
读信号输出。
低电平有效,当RD为低电平时,表明CPU正在对内存或外设进行读操作。
(Minimum/Maximum,引脚33):
最大和最小模式控制信号输入。
接+5V电压,则CPU处于最小模式;接地,则处于最大模式。
1.4.48086/8088的工作方式
1、最小模式:
整个微型计算机系统只有一个CPU,所有的总线控制信号都直接由这个CPU产生,其配置如图所示:
(1)、一片8284A时钟发生器:
产生系统所需要的时钟信号CLK,同时对外部READY信号和系统复位信号RESET进行同步,它的输出送向8086相应引脚。
(2)、三片8282地址锁存器:
用于20位地址信号锁存,使得整个总线读写周期地址信号始终有效,以支持8088CPU地址、数据总线分时复用的工作方式。
(3)、两片8286总线驱动器,又称总线收发器。
当系统所含存储器和外设较多时,为了提高数据总线的驱动能力,可以接入8286芯片。
最小工作模式下第24~31引脚信号功能
(InterruptAcknowledge,引脚24):
中断响应信号输出
是对中断请求设备的响应。
它实际上是位于连续周期中的两个负脉冲,第一个负脉冲通知外部设备的接口它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,往数据总线上放中断类型码。
ALE(AddressLatchEnable,引脚25):
地址锁存允许信号输出
高电平有效,ALE是8086/8088提供给地址锁存器8282的控制信号,在总线周期的T1状态,ALE输出高电平,表示当前地址/数据复用总线上输出的是地址信息,828