冯博琴《微型计算机原理与接口技术》(第3版)笔记和课后习题(含考研真题)详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 微型计算机基础概论

1.1 复习笔记

一、微型计算机系统

1微型计算机的分类

计算机可分为巨型机、大型机、中型机、小型机、微型机五大类。

2微型计算机的工作过程

(1)冯·诺依曼计算机的核心——存储程序的工作原理

每台计算机都拥有各种类型的机器指令,这些指令按照一定的规则存放在存储器中,在中央控制系统的统一控制下,按一定顺序依次取出执行。

图1-1是典型的冯·诺依曼计算机结构示意图。

图1-1 冯·诺依曼计算机结构示意图

(2)微型计算机的工作过程

微机的工作过程就是执行程序的过程,也就是逐条执行指令序列的过程。由于每一条指令的执行都包括取指令和执行指令两个基本阶段,所以微机的工作过程也就是不断地取指令和执行指令的过程。

3微机系统的组成

微型计算机(Micro Computer)是体积、重量、计算能力都相对比较小的一类计算机的总称,一般供个人使用,也称为个人计算机(PC)。

微机系统、微型机和微处理器是3个不同的概念,是微型计算机从全局到局部的3个不同的层次。微型计算机系统的概念结构如图1-2所示,它的硬件系统和软件系统两大部分组成。

图1-2 微型计算机系统的概念结构

对于硬件系统,从概念结构上来说都是由微处理器、存储器及输入,输出接口等几个部分组成。

所有的微型机系统都采用了总线结构形式。总线结构的主要优点是设计简单、灵活性好,具有优良的可扩展性、便于故障检测和维修。图1-3所示为微型计算机的系统结构框图。

图1-3 微型计算机的系统结构框图

(1)硬件系统

微处理器(或中央处理器、CPU)

CPU是微型计算机的核心芯片,是整个系统的运算和指挥控制中心。其内部基本组成包括控制器、运算器和寄存器组3个主要部分。CPU的典型结构如图1-4所示。

图1-4 微处理器的典型结构示意图

a.运算器:运算器的核心部件是算术逻辑单元(ALU,Arithmetic and Logic Unit),它是以加法器为基础,辅之以移位寄存器及相应控制逻辑组合而成的电路。

b.控制器:一般由指令寄存器、指令译码器和操作控制电路组成。控制器是整个CPU的指挥控制中心,对协调整个微型计算机有序工作极为重要。

c.寄存器组:实质上是CPU内部的若干个存储单元,在汇编语言中通常是按名字来访问它们。寄存器可分为专用寄存器和通用寄存器。

存储器(Memory,又称内存或主存)

主机系统中的存储器是微型计算机的存储和记忆部件,用以存放数据(包括原始数据、中间结果和最终结果)和当前执行的程序。

输入/输出接口和输入/输出设备

输入/输出(I/O)设备和输入/输出接口是输入/输出系统的硬件组成,而I/O系统是微型计算机系统的重要组成部分。

总线(Bus)

通常将用于主机系统内部信息传递的总线称为内部总线。将连接主机和外部设备之间的总线称为外部总线。两类总线都包括用于传送数据的数据总线、传送地址信息的地址总线和传送控制信息的控制总线。

(2)软件系统

软件包括系统软件和应用软件两大类。

计算机中的程序设计语言分为3个级别,第一级是机器语言,第二级是汇编语言,第三级是高级语言。

二、计算机中的数制及编码

1常用记数制

(1)十进制数

十进制数共有0~9十个数字符号,用符号D标识。一个任意十进制数都可用权展开式表示为

式中,Di是D的第i位的数码,可以是0~9十个符号中的任何一个;n和m为正整数,n表示小数点左边的位数,m表示小数点右边的位数;10为基数,10i称为十进制的权。

(2)二进制数

二进制数的每一位只取0和1两个数字符号,用符号B标识。一个二进制数B可用其权展开式表示为

式中,Bi只能取1或0;2为基数,2i为二进制的权;m、n的含义与十进制表达式相同。

(3)十六进制数

十六进制数共有16个数字符号,0~9及A~F,用符号H标识。一个十六进制数H也可用权展开式表示为

式中,Hi的取值在0~F的范围内,16为基数,16i为十六进制数的权;m、n的含义与上面相同。

2各种数制之间的转换

(1)非十进制数到十进制数的转换

将它们按相应的权表达式展开,再按十进制运算规则求和,即可得到对应的十进制数。

(2)十进制数转换为非十进制数

十进制数转换为二进制数

整数部分转换为二进制数时采用“除2取余”的方法,即连续除2并取余数作为结果。直至商为0,得到的余数从低位到高位依次排列即得到转换后二进制数的整数部分;对小数部分,则用“乘2取整”的方法,即对小数部分连续用2乘,以最先得到的乘积的整数部分为最高位,直至达到所要求的精度或小数部分为止。

【例】将十进制数112.25转换为等值的二进制数。

解:

从而得到转换结果(112.25)10=(1110000.01)2

十进制数转换为十六进制数

与十进制数转换为二进制数的方法类似,整数部分按“除16取余”的方法进行,小数部分则“乘16取整”。

二进制数与十六进制数之间的转换

将二进制数转换为十六进制数的方法是:从小数点开始分别向左和向右把整数和小数部分每4位分为一组。若整数最高位的一组不足4位,则在其左边补零;若小数最低位的一组不足4位,则在其右边补零。然后将每组二进制数用对应的十六进制数代替,则得到转换结果。十六进制数转换为二进制数的方法与上述过程相反,即用4位二进制代码取代对应的1位十六进制数。

3计算机中的二进制数表示

(1)定点小数的表示

定点小数是指小数点准确固定在数据某个位置上的小数。

(2)整数的表示

整数所表示的数据的最小单位为1,可以认为它是小数点定在数据的最低位右边的一种数据。

(3)浮点数的表示

浮点数指小数点的位置可以左右移动的数据,可用N=±RE×M式表示。

典型的浮点数格式如图1-5所示。

图1-5 典型的浮点数格式

4二进制编码

(1)二进制编码的十进制数

用二进制编码表示的十进制数,称为二-十进制(BCD,Binary Coded Decimal)码。

8421码

8421BCD码(简称“BCD码”)用4位二进制编码表示1位十进制数。其4位权值,从左至右分别为23=8、22=4、21=2、20=1。

BCD码与十进制数、二进制数的转换

表1-1 BCD码与十进制数的对应关系

计算机中BCD码的存储方式

在一个字节中存放两个4位的BCD码,这种方式称为压缩BCD码表示法。非压缩的BCD码(又称扩展BCD码)表示法是每个字节只存放一个BCD码,即低4位为有效BCD数,高4位全为0。

(2)字符的编码

目前在微型计算机中普遍采用的字符编码系统是ASCII码。微型计算机中一个字节为8位,一般规定一个ASCII码存放在字节的低7位,字节最高位D7位恒为0。

三、无符号二进制数的算术运算和逻辑运算

二进制数在表示上可分为无符号数和有符号数两种。无符号数就是不考虑数的符号,数中的每一位0或1都是有效的或有意义的数据。有符号数则不同于无符号数。在计算机中,表示二进制数的符号仍然是用0和1,一个数的最高位的0或1表示的是该数是正数或负数,而不再是数据本身。

1二进制的算术运算

(1)加法运算

二进制的加法遵循法则:0+0=0 0+1=1 1+0=1 1+1=0(有进位)。

(2)减法运算

二进制的减法遵循法则:0-0=0 1-0=1 1-1=0 0-1=1(有借位)。

(3)乘法运算

二进制数的乘法法则:0×0=0 0×1=0 1×0=0 1×1=1。

(4)除法运算

除法是乘法的逆运算。所以二进制数的除法运算也可转换为减法和右移运算。每右移一位相当于除以2,右移n位就相当于除以2n

2无符号数的表示范围

(1)无符号二进制数的表示范围

一个n位无符号二进制数X,其可表示数的范围为0≤X≤2n-1。

(2)无符号二进制数的溢出判断

对两个无符号二进制数的加减运算,若最高有效位Di向更高位有进位(或相减有借位),则产生溢出。

对乘法运算,由于两个8位数相乘,乘积为16位;两个16位数相乘,乘积为32位。故乘法运算无溢出问题。对除法运算,当除数过小时会产生溢出,此时将使系统产生一次溢出中断。

3二进制数的逻辑运算

(1)“与”运算

“与”运算的操作是实现两个数按位相“与”,用符号∧表示。其规则为

1∧1=1

1∧0=0

0∧1=0

0∧0=0

(2)“或”运算

“或”运算的操作是实现两个数按位相“或”,用符号∨表示。其规则为

0∨0=0

0∨1=1

1∨0=1

1∨1=1

(3)“非”运算

“非”运算的操作为将一个数的每一位按位取反。

(4)“异或”运算 

“异或”运算的操作是实现两个数按位相异或。两位相同,则结果为0;两位相异,则结果为1。“异或”运算符用⊕符号表示。

4基本逻辑门及常用逻辑部件

(1)与门(AND gate)

与门是对多个逻辑变量进行“与”运算的门电路。

(2)或门(OR gate)

或门是对多个逻辑变量进行“或”运算的门电路。

(3)非门(NOT gate)

非门又称为反相器,是对单一逻辑变量进行“非”运算的门电路。其输入变量A与输出变量Y之间的关系可用下式表示Y=

(4)与非门(NAND gate)

与非门是“与”门与“非”门的结合。运算表达式为

(5)或非门(NOR gate)

或非门是“或”门与“非”门的结合。运算表达式为

(6)译码器

将不同的地址信号通过一定的控制电路转换为对某一芯片的片选信号,这个控制电路称为译码电路,它所对应的逻辑部件就称为译码器。常用的3-8线译码器74LS138的功能表如表1-2所示。

表1-2 74LS138功能表

四、有符号二进制数的表示及运算

1有符号数的表示方法

计算机中的符号数有3种表示方法,即原码、反码和补码。

(1)原码

真值X的原码记为[X]。在原码表示法中,不论数的正负,数值部分均保持原真值不变。

(2)反码

真值X的反码记为[X]。对正数来讲,其表示方法同原码,即数值部分与真值相同;对负数来讲,其反码的数值部分为真值的各位按位取反,或者说负数的反码等于其对应正数的原码按位取反。

(3)补码

真值X的补码记为[X]。定义如下:

2补码数与十进制数之间的转换

(1)正数补码的转换

由于正数的补码就等于它的原码,即真值就是它的数值部分。

(2)负数补码的转换

负数的补码与其对应的正数补码之间存在如下关系:

当X为正数时,对其补码按位取反,结果是-X的补码;当X为负数时,对其补码按位取反,结果就是+X的补码。

负数补码转换为真值的方法就是:将此负数的补码数再求一次补所得结果即是它的真值。

3补码的运算

(1)补码的加法规则:[X+Y]=[X]+[Y]

(2)补码的减法规则:[X-Y]=[X]-[Y]=[X]+[-Y]

[-Y]称为对补码数[Y]求变补。变补的规则为:对[Y]的每一位(包括符号位)按位取反加1,则结果就是[-Y]

当两个带符号数用补码表示时,减法运算可转换为加法运算。

在微机中凡是有符号数都一定是用补码表示的。

4有符号数的表示范围

(1)有符号数的表示范围

对8位二进制数,原码、反码和补码所能表示的范围如下。

原码:11111111B~01111111B(-127~+127)。

反码:10000000B~01111111B(-127~+127)。

补码:10000000B~01111111B(-128~+127)。

对16位二进制数,原码、反码和补码所能表示的范围如下。

原码;FFFFH~7FFFH(-32767~+32767)。

反码:8000H~7FFFH(-32767~+32767)。

补码:8000H~7FFFH(-32768~+32767)。

(2)有符号数运算时的溢出判断

在两个同符号数相加或异符号数相减时:

如果次高位向最高位有进位(或借位),而最高位向上无进位(或借位),则结果发生溢出;

反过来,如果次高位向最高位无进位(或借位),而最高位向上有进位(或借位),则结果也发生溢出。