计算机原理
,计算机原理,什么是计算机,计算机是一个信息处理装置。 可以是一个复杂的数字电路系统(主流) 也可以是机械的 甚至是生化的 在这些装置的背后,一定存在某种原理性的东西。,帕斯卡和加法器,霍列瑞斯和第一台制表机,阿德勒曼博士和DNA计算机,计算机,做音乐盒的老师父:我事先根据乐曲的音符作出不同长度的铜片,再按一定的顺序将它们固定 图灵:计算机是一张纸,一支笔。我事先将规则写在纸上,笔可以按照纸上的规则,在纸上写下新的内容 冯.诺依曼:计算机可以存储程序,通过程序控制计算机由Bus 、CPU、Memory 、IO Interface、IO device构成,1946年由美国宾夕法尼亚大学研制 ENIAC(Electronic Numerical Integrator And calculator),运算速度 5000次/秒,功耗150kw,占地170m2 ,造价100万美元。,计算机的发展,大型化,小型化,计算机功能部件,1、总线 2、CPU 3、存储器 4、输入/输出,课程安排,第1阶段:预备知识、基本技能和模型机 目标:通过大量的实验来学习模型机,理解计算机的基本工作原理 数字电路基础:数字钟、ALU、寄存器、存储器 模型机:以教材第一章 1.2 计算机基础为蓝本,用数字电路中的器件搭建模型机 工具软件: proteus : (硬件设计)一种电路仿真软件 第2阶段:51单片机基础 目标:通过单片机来掌握汇编语言、计算机的组成原理、总线、中断、定时 单片机基础:参考教材单片微型计算机原理及运用第2、3章(重点)和4、5、6章部分内容。 工具软件: proteus : (硬件设计)一种电路仿真软件 Keil C 51:(软件设计)一种进行单片机软件设计的集成环境IDE(Integrated Development Environment ) 面包板、实际电路板。 第3阶段:8086系统 目标:通过另一种机型来巩固和深化前面所学的知识,同时为考究的同学做准备。 CPU结构、指令集、汇编、总线、中断、定时。,预备知识、基本技能,信息表示基础 数 制 二进制数的运算 信息在数字系统中的表示 数字电路基础(proteus) 组合逻辑电路 38译码器 加法器、ALU 时序逻辑电路 数字钟 寄存器通路 综合实验 运算器的控制 半导体存储器控制实验 运算器与存储器的数据通路实验,数 制(怎样表示一个数),数 数值:数的大小。 数码:表示数值的最基本符号(有限性、方便性) 数符:由数码构成的一个排列(数码序列)。 计数制(简称数制):多位数符的构成方法,以及数符所表示的数值(数的大小)的计算方法。 基:数码的个数,由此决定计数规则:逢几进几 权:由数码所在位置所决定的一个常数。 计算方法:每个数码代表的数值×这个数码所在位置的权的总和。,十进制,数码:0、1、2、3、4、5、6、7、8、9 基:10 权: 10的幂 数符:1999 计数规则:逢十进一 数值:,例:(1999)10 =(1×103+9×102+9×101+9×100)10,二进制,数码:0、1 计数规则:逢二进一 基数:2 权:2的幂,一般形式为: (N)2 =(bn-1bn-2b 1b0)2= (bn-1×2n-1bn-2×2n-2b1×21b0×20)10,例:(1011101)2 = (1×26+0×25+1×24+1×23+1×22+0×21+1×20)10=(64+0+16+8+4+0+1)10=(93)10,数值越大,位数越多,读写不方便,容易出错!,八进制,数码:07 计数规则:逢八进一 基数:8 权:8的幂,例: (128)8=(1×82+2×81+8×80)10=(64+16+8)10=(88)10,十六进制,数码:09、A、B、C、D、E、F 计数规则:逢十六进一 基数:16 权:16的幂,例: (5D)16=(5×161+13×160)10=(80+13)10=(93)10,DIY,数码:、 基数:3 权:3的幂 计数规则:逢三进一 将 表示为十进制, 1×330×32 2×31 1×3034, ,二进制与八进制、十六进制之间的转换,(1)二进制与八进制之间的转换三位二进制数对应一位八进制数。,(101011100101)2 =(101,011,100,101)2=(5345)8,(6574)8 =(110,101,111,100)2=(110101111100)2,二进制与十六进制之间的转换,例如: (9A7E)16 =(1001 1010 0111 1110)2=(1001101001111110)2,四位二进制数对应一位十六进制数。,(10111010110)2 =(0101 1101 0110)2=(5D6)16,十进制数转换成二进制,整数部分的转换:除2取余法。,例:求(217)10 =( )2 解: 2217 余1 b02108 余0 b1254 余0 b2 227 余1 b3213 余1 b426 余0 b523 余1 b621 余1 b7 0,(217)10 =(11011001)2,例:求(0.3125)10 =( )2 解: 0.3125 × 2 = 0.625 整数为0 b- 1 0.625 × 2 = 1.25 整数为1 b- 20.25 × 2 = 0. 5 整数为0 b- 3 0. 5 × 2 = 1.0 整数为1 b- 4,说明:有时可能无法得到0的结果,这时应根据转换精度的要求适当取一定位数。,小数部分的转换:乘2取整法。,(0.3125)10 =(0.0101)2,几种计数进制数的对照表,二进制数的运算,二进制数的算术运算(加、减、乘、除) 1 位二进制数算术运算 多位二进制数算术运算,二进制加法,1 位二进制数的加法规则为:000 011 101 110 (有进位) 多位二进制数的加法:,例1: 求11001010B11101B。解: 被加数 11001010加数 11101进位 ) 00110000和 11100111则11001010B11101B11100111B。由此可见,两个二进制数相加时,每1位有3个数参与运算(本位被加数、加数、低位进位),从而得到本位和以及向高位的进位。,1位二进制数减法规则为:101 110 000 011 (有借位) 多位二进制数的减法,二进制减法,二进制乘法,1 位二进制乘法规则为:0×00 0×10 1×00 1×11多 位二进制乘法:,二进制除法的运算过程类似于十进制除法的运算过程。例4: 求 100100B÷101B。解: 000111101 100100101 1000101110 101 1,二进制除法,二进制数的逻辑运算1.“与”运算(AND)“与”运算又称逻辑乘,运算符为·或。“与”运算的规则如下:0·00 0·11·00 1·11例5: 若二进制数X10101111B,Y01011110B,求X·Y。10101111 0101111000001110 则X·Y00001110B。,2. “或”运算(OR)“或”运算又称逻辑加,运算符为或。“或”运算的规则如下:000 01101 111例6: 若二进制数X10101111B,Y01011110B,求XY。10101111 0101111011111111 则XY11111111B。,3.“非”运算(NOT)“非”运算又称逻辑非,如变量A的“非”运算记作 。“非”运算的规则如下:例7: 若二进制数A10101111B,求 。 01010000B由此可见,逻辑“非”可使A中各位结果均发生反变化,即0变1,1变0。,4.“异或”运算(XOR)“异或”运算的运算符为或,其运算规则如下:0 00 0 11 01 1 10例8: 若二进制数X10101111B,Y01011110B,求X Y。10101111 0101111011110001 则X Y11110001B。,信息在数字系统中的表示,外部世界的信息 数 有符号数、无符号数 整数、小数 文字(各种形状) 中文、藏文、英文、俄文、阿拉伯文。 7段码 图象(静态、动态) 声音 数字系统能处理的信息 0、1 信息的表示 怎样用0和1对上述的信息进行编码,数 值(怎样用0和1表示数的值),2进制编码表示 整数 无符号数 带符号数 原码 反码 补码 小数 定点数 浮点数 BCD编码表示 8421码 5421码 余3码,带符号数,符号的表示 表示符号的位 表示数值的位,例如:N11011, N2-1011在计算机中用8位二进制数可分别表示为:D7 D6 D5 D4 D3 D2 D1 D0,D7 D6 D5 D4 D3 D2 D1 D0,符号,数值部分,原码、补码与反码,1.原码正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称之为原码,用X原表示。 正数的原码 (设机器字长为8位) +115原01110011B; 负数的原码 -115原11110011B 零的原码 +0原00000 -0原 10000,补码,补数的概念(做个加法游戏) 加法器 刻度:表示数。 动作:进行运算 顺时针拨动指针:加 逆时针拨动指针:减 计算21? 9-3=? 936 99? 9918126 6 (mod12 自然丢掉) 3的补数是9例如: 1171154 (mod12),0,3,6,9,能作减法,但结果不能为负数,钟坏了,只能顺时针拨动指针,并重新标注刻度 求22 求21 求23,问题,1.在模为12加法器的系统中,有多少个状态? 2. 能表示的数有哪些? 3.在2进制中,8位能表示多少个状态? 4.用8位2进制能表示哪些数?,怎样求补码,正数的补码与其原码相同,即X补X原; 零的补码为零,+0补-0补00000; 负数才有求补码的问题。 计算出该数绝对值的原码,对原码取反,再对整个数加1(绝对值取反加1) -5补 11111011 |-5| 原00000101 |-5| 原反11111010 |-5| 原反+111111011,反码,反码 一个正数的反码,等于该数的原码; 一个负数的反码,等于该负数绝对值的原码按位求反(即0变1,1变0) 零的反码:+0反00000-0反11111,+5反00000101,5反11111010,例子,例1: 假设X1+83, X2-76,当用8位二进制数表示一个数时,求X1、X2的原码、反码及补码。 解: X1原X1反X1补01010011BX2原11001100B,