第1章 微型计算机基础概论[视频讲解]

主要内容:

视频二维码(扫码观看)

一、微型计算机系统

1微型机的工作原理

冯·诺依曼计算机的工作原理→存储程序工作原理

(1)存储程序原理

●将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存;

●指令按其在存储器中存放的顺序执行;

●由控制器控制整个程序和数据的存取以及程序的执行。

(2)冯·诺依曼计算机体系结构

(3)冯·诺依曼机的工作过程

取一条指令的工作过程:

将指令所在地址赋给程序计数器PC;

PC内容送到地址寄存器AR,PC自动加1;

把AR的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元;

CPU的控制器发出读命令;

在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线DB;

把读出的内容经数据总线送到数据寄存器DR;

指令译码;

因为取出的是指令的操作码,故数据寄存器DR把它送到指令寄存器IR,然后再送到指令译码器ID。

(4)冯·诺依曼机的特点和不足

特点:程序存储,共享数据,顺序执行。属于顺序处理机,适合于确定的算法和数值数据的处理。

不足:与存储器间有大量数据交互,对总线要求很高;执行顺序有程序决定,对大型复杂任务较困难;以运算器为核心,处理效率较低;由PC控制执行顺序,难以进行真正的并行处理。

(5)典型的非冯·诺依曼机结构

数据流驱动的计算机结构

当指令具有所需数据、且输出端没有数据时就可执行。

2微机系统的基本组成

(1)硬件系统

微处理器

微处理器简称CPU,是计算机的核心。

主要包括:

存储器

定义:用于存放计算机工作过程中需要操作的数据和程序。

与内存有关的几个概念:

▲内存单元的地址和内容

▲内存容量

▲内存的操作

▲内存的分类

▲内存按单元组织

▲每单元都对应一个地址,以方便对单元的寻址

内存容量:所含存储单元的个数,以字节为单位内存容量的大小依CPU的寻址能力而定;实地址模式下为CPU地址信号线的位数。

内存操作

读:将内存单元的内容取入CPU,原单元内容不改变。

写:CPU将信息放入内存单元,单元中原来的内容被覆盖。

内存储器的分类:

输入/输出接口

接口是CPU与外部设备间的桥梁

接口的分类:

接口的功能:

数据缓冲寄存

信号电平或类型的转换

实现主机与外设间的运行匹配

总线

基本概念

分类

工作原理

常用系统总线标准及其主要技术指标

(具体内容见后续课程)

(2)软件系统

软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。

视频二维码(扫码观看)

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

数制和编码的表示

各种记数制之间的相互转换

1常用记数制

例:

234.98D或(234.98)D

1101.11B或(1101.11)B

ABCD.BFH或(ABCD.BF)H

2各种数制之间的转换

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

按相应的权值表达式展开

例:

1011.11B=1×23+0×22+1×21+1×20+1×21+1×22=8+2+1+0.5+0.25=11.75

5B.8H=5×161+11×160+8×161=80+11+0.5=91.5

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

到二进制的转换:

对整数:除2取余;

对小数:乘2取整。

到十六进制的转换:

对整数:除16取余;

对小数:乘16取整。

(3)二进制与十六进制间的转换

用4位二进制数表示1位十六进制数

例:

25.5=11001.1B=19.8H

11001010.0110101B=CA.6AH

3计算机中的编码

BCD码:用二进制编码表示的十进制数

ASCII码:西文字符编码

(1)BCD码

压缩BCD码

用4位二进制码表示一位十进制数,每4位之间有一个空格

扩展BCD码

用8位二进制码表示一位十进制数,每4位之间有一个空格。

BCD码与二进制数之间的转换

先转换为十进制数,再转换二进制数;反之同样。

例:

(0001 0001.0010 0101)BCD=11.25=(1011.01)B

(2)ASCII码

西文字符的编码,一般用7位二进制码表示。

D7位为校验位,默认情况下为0。

要求:

理解校验位的作用

熟悉0~F的ASCII码

ASCII码的奇偶校验

奇校验:加上校验位后编码中“1”的个数为奇数。

例:

A的ASCII码是41H(1000001B)

以奇校验传送则为C1H(11000001B)

偶校验:加上校验位后编码中“1”的个数为偶数。

上例若以偶校验传送,则为41H。

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

主要内容

无符号二进制数的算术运算

无符号数的表达范围

运算中的溢出问题

无符号数的逻辑运算

基本逻辑门和译码器

1二进制的算术运算

加法运算:1+1=0(有进位)

减法运算:0-1=1(有借位)

乘法运算

除法运算

乘除运算

例:

00001011×0100=00101100B

00001011÷0100=00000010B

即:商=00000010B

余数=11B

2无符号数的表示范围

0≤X≤2n-1

若运算结果超出这个范围,则产生溢出。

对无符号数:运算时,当最高位向更高位有进位(或借位)时则产生溢出

3二进制数的逻辑运算

与、或、非、异或

掌握:

与、或、非门逻辑符号和逻辑关系(真值表);

与非门、或非门的应用;

“与”、“或”运算。

“与”运算:任何数和“0”相“与”,结果为0。

“或”运算:任何数和“1”相“或”,结果为1。

“非”“异或”运算。

“非”运算:按位求反

“异或”运算:相同则为0,相异则为1

4译码器

掌握:

74LS138译码器

各引脚功能

输入端与输出端关系(真值表)

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

计算机中符号数的表示

机器数

计算机中的数据

构成:

符号位+真值

“0”→表示正

“1”→表示负

例:

1有符号数的表示方法

机器数的表示方法:

原码

反码

补码

(1)原码

最高位为符号位(用“0”表示正,用“1”表示负),其余为真值部分。

优点:真值和其原码表示之间的对应关系简单,容易理解;

缺点:计算机中用原码进行加减运算比较困难。

0的表示不唯一。

数0的原码

8位数0的原码:

+0=0 0000000

-0=1 0000000

即:数0的原码不唯一。

(2)反码

对一个机器数X:

若X>0,则[X]=[X]

若X<0,则[X]=对应原码的符号位不变,数值部分按位求反

例:

X=-2=-110100

[X]1 0110100

[X]1 1001011

0的反码:

[+0]=00000000

[-0]=11111111

即:数0的反码也不是唯一的。

(3)补码

定义:

若X>0,则[X]=[X]=[X]

若X<0,则[X]=[X]+1

例:

X=-52=-110100

[X]=10110100

[X]=11001011

[X]=[X]+1=11001100

0的补码:

[+0]=[+0]=00000000

特殊数10000000

对无符号数:(10000000)B=128

在原码中定义为:-0

在反码中定义为:-127

在补码中定义为:-128

符号数的表示范围

对8位二进制数:

原码:-127~+127

反码:-127~+127

补码:-128~+127

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

对用补码表示的二进制数:

1)求出真值

2)进行转换

3符号数的算术运算

通过引进补码,可将减法运算转换为加法运算。

即:[X+Y]=[X]+[Y]

[X-Y]=[X+(-Y)]=[X]+[-Y]

注:运算时符号位须对齐

例:

X=-0110100Y=+1110100,求XY=?

[X]=10110100

[X]=[X]+1=11001100

[Y]=[Y]=01110100

[X+Y]=[X]+[Y]=11001100+01110100=01000000

X+Y=+1000000

为什么补码可以把减法变成加法?

从10进制来说:

减一,和加99,效果相同吗?

在100之内,它们就是相同的。99,就是1的补数,100就是模。

从8位2进制来说:

减一,和加255,效果也是相同的。

255,就是1的补码,二进制数1 0000 0000就是模,即十进制的256。

求出补码后,就可以用“加补码”完成减法运算。原理就是上述的“同模”理论。

如果结果的数字太大,超出了256所能容纳的范围,就是溢出。溢出了,并没有解决的办法。

反码+1的方式,只是经验公式而已,没有原理。它说明不了-128的补码。因为在8位二进制的条件下,-128并没有反码。

符号数运算中的溢出问题

两个带符号二进制数相加或相减时,若运算结果超出可表达范围,则产生溢出。

溢出的判断方法:

最高位进位状态⊕次高位进位状态=1,则结果溢出。

例:

若:X=01111000,Y=01101001

则:

次高位向最高位有进位,而最高位向前无进位,产生溢出。

(事实上,两正数相加得出负数,结果出错)

第1章难点:补码的概念及其运算

习题:

1.3 完成下列数制的转换。

(1)10100110B=(166)D=(A6)H

(2)0.11B=(0.75)D

(3)253.25=(11111101.01)B=(FD.4)H

(4)1011011.101B=(5B.A)H=(10010001.011000100101)BCD

1.6 写出符号数101101011B的反码和补码。