微机原理及其应用-第1章_第1页
微机原理及其应用-第1章_第2页
微机原理及其应用-第1章_第3页
微机原理及其应用-第1章_第4页
微机原理及其应用-第1章_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 微型计算机的系统结构与工作原理 湖南工学院主讲教师:吴 乐1.微型计算机的应用和发展史2.微型计算机的组成和特点3.微型计算机中数与字符的 表示法 本章内容1.了解微型计算机的产生和发展过程2. 掌握微型计算机的概念和基本结构3.掌握进位制数间的转换4.掌握原码、反码与补码学习目的本章目录1.1 微型计算机系统概述1.2 微型计算机系统结构 1.3 微型计算机中数与字符的表示法 1.1 微型计算机系统概述 微型计算机是指以大规模、超大规模集成电路为主要部件的微处理器为核心,配以存储器、输入/输出接口电路及系统总线所制造出的计算机系统。1.1.1 微型计算机的发展概况微型计算机诞生:19

2、46年第一台计算机在美国问世以后,人们接触最多的是微型计算机,它诞生于20世纪70年代,其发展以微处理器的发展为主要标志。分 代第一代年份字长芯片的集成度软件典型的芯片197119724/8位2000个管/片以上机器语言、简单汇编语言Intel 4004Intel 8008第二代197319778位汇编程序高级语言、(FORTRAN PL/M等BASIC操作系统第三代1978198316位汇编语言高级语言操作系统第四代PentiumPII PIII PIV1981199232位第五代1993 199432位9000个管/片以上29000个管/片以上1550万个管/片以上Intel 8080,8

3、085MC 6800Z-80Intel 8086,8088MC 68000Z-8000Intel 80386,80486 MC 68020操作系统高级语言软件硬化操作系统高级语言软件硬化高达330万个管/片微处理器的概念与发展第六代19952001Pentium58664位550万个管/片操作系统高级语言软件硬化1.1.2 微型计算机的特点和应用 微型计算机除具有一般电子数字计算机的快速、精确和通用等许多优点外,还具有独自的特点:(1) 体积小、重量轻、功耗低(2) 可靠性高、对使用环境要求低(3) 结构简单、设计灵活、适应性强(4) 性能价格比高1.微型计算机特点2. 微型计算机的应用领域科

4、学计算过程控制信息处理人工智能网络通信计算机辅助技术1.1.3 微型计算机的分类1. 按处理器同时处理数据的位数或字长分:4位机、8位机、16位机、32位机、64位机2. 按结构类型分:单片微型机、单板微型机微型计算机3. 按用途分:(1) 个人计算机(PC机)(2) 工作站服务器(3) 网络计算机(简称NC)2. 按体积大小分:(1) 台式机(又称桌上型)(2) 便携式(又称可移动微机、笔记本型、膝上型、口袋型、掌上型和钢笔型)1.1.4 微型计算机的主要性能指标通常所说的计算机运算速度(平均运算速度),是指每秒钟所能执行的指令条数,一般用“百万条指令秒”(MIPS)来描述。1. 运算速度2

5、. 字长存储器分为内存储器和外存储器两类。内存储器也简称内存或主存,是CPU可以直接访问的存储器,内存大小反映了计算机即时存储信息的能力;外存储器通常是指硬盘(包括内置硬盘和移动硬盘)。3. 存储器的容量以上只是一些主要性能指标,还须综合考虑其他因素。back 1.2 微型计算机系统结构 现代计算机结构仍然是在冯诺依曼提出的计算机逻辑结构和存储程序概念基础上建立起来的。1.2.1 计算机的基本结构和工作原理1.一系列基本操作命令程序计算机的工作原理2. “机器指令”概念3. 计算机的存储程序控制方式的工作原理:一是能存储程序,二是能自动执行程序。这一原理决定了人们使用计算机的主要方式编写程序和

6、执行程序。输入设备运算器输出设备存储器控制器冯诺依曼计算机的基本结构1.2.2 微型计算机的组成与系统的层次结构微型计算机系统包括硬件系统和软件系统。硬件系统:构成计算机的实体。包括:微处理器、存储器、I/O接口、系统总线、外部设备和电源。软件系统:在计算机上运行的各种程序。包括:系统软件和应用软件。一、微型计算机系统结构硬件系统:硬件微型计算机(单片、单板)电源外围设备微处理器存储器I/O接口系统总线算术逻辑单元控制器寄存器ROMRAMROMEPROME2PROMSRAMDRAM并行接口串行接口辅助接口数据总线地址总线控制总线外部设备I/O接口模拟量I/O接口开关量接口键盘、显示器、打印机外

7、存储器软、硬磁盘光盘A/DD/A操作系统 Dos, Windows, UNIX, LINUX语言处理程序 Turbo C数据库系统 FoxPro、Oracle软件分类系统软件应用软件文字处理软件 Wps、Word表格处理软件 Excel辅助设计软件 Auto CAD用户编制的实际程序软件系统: 微型计算机系统由小到大可分为微处理器、微型计算机、微型计算机系统三个层次结构,如下图所示:运算器控制器寄存器RAMROMI/O端口I/O端口微型计算机系统微型计算机微处理器电源系统软件系统I/O设备I/O设备简介:1. 微处理器(也称微处理机,Microprocessor)2. 微型计算机(Microc

8、omputer)3. 微型计算机系统(Microcomputer System)1.2.3 微型计算机的硬件结构 微型计算机由微处理器、存储器、输入/输出接口构成,它们之间由系统总线连接。ROMCPURAMI/O接口外部设备电源时钟脉冲电路ABDBCB1. 微处理器 整个微机的核心是微处理器( p, MPU ),也称CPU。它包含算术逻辑部件ALU、寄存器组及控制部件。ALU : 算术、逻辑运算单元 寄存器: 存放操作数、中间结果、地址、标志等信息控制部件:整个机器控制中心,包括程序计数器IP(PC)、指令寄存器IR、指令译码器ID、控制信息产生电路。2. 存储器微机的存储器分为:主存和辅存主

9、存(内存):用于存放当前正在运行的程序和正待处理数据。(CPU内部cache,主板上的内存, 造价高,速度快,存储容量小) 辅存(外存):存放暂不运行的程序和输入处理的数据,(主机箱内或主机箱外,造价低,容量大,可长期保存,但速度慢)3. 输入设备微型计算机常用的输入设备有键盘、鼠标、数字化仪、图像扫描仪、数码相机等。4. 输出设备微型计算机常用的输出设备有CRT显示器、打印机和绘图仪等。注意:各种外设需要有一个接口电路充当它们和CPU间的桥梁,通过该电路完成信号的变换、数据的缓冲、与CPU联络等工作。较复杂的I/O接口电路一般都做在电路板上,这种电路板又称为“卡(Card)”,由卡的一侧 引

10、出连接外界的插座,另一侧 做成插入端,只要将它们插入总线槽(I/O通道)就连到了系统总线。5. 系统总线 所谓“总线”,是指传递信息的一组公用导线。系统总线(System Bus)是指从处理器子系统引出的若干信号线,CPU通过它们与存储器和I/O设备进行信息交换。系统总线一般分为三组:数据总线:DB(Data Bus)地址总线:AB(Address Bus)控制总线:CB(Control Bus)地址总线(Address Bus): 传送地址信息、CPU在AB总线上输出将要访问的内存单元或I/O端口地址、该总线为单向,地址总线的位数决定了CPU可以直接寻址的内存单元范围。举例数据总线(Data

11、 Bus): 传送数据信息的总线。在CPU进行读操作时,内存或外设的数据通过DB总线送往CPU;在CPU进行写操作时,CPU数据通过DB总线送往内存或外设,所以该总线为双向总线。控制总线(Control Bus): 传送控制信息的总线。其中,有些信号线将CPU的控制信号和状态信号送往外设,外设请求或联络信号送往CPU,个别信号线兼有以上两种情况。所以在讨论控制总线的传送方向时要具体到某一个信号,它们可能是输出、输入或者双向的。系统总线使用特点:(1) 在某一时刻,只能由一个总线主控设备控制系统总线,其他总线主控设备必须放弃对总线的控制。(2) 在连接系统的各个设备中,某一时刻只能有一个发送者向

12、总线发送信号,但可以有多个设备从总线同时获得信号。 附:微型计算机的基本数据类型 内存单元的地址和内容简介:内存由许多存储单元组成,每个内存单元可存放8位二进制数,即一个内存单元存放一个字节的内容,为了区分各个不同的内存单元,就给每个存储单元编上不同的号码,即内存地址。CPU要访问某个单元时,先要通过地址总线送出该单元的地址号。尽管大多数存储器是按字节编址的,但实际操作中,一个操作数可以是字节、字、双字节、四字节等各种形式。1. 字节:计算机的基本处理单位,一个字节由8位二进制位组成2. 字:通常微机的字长有8位、16位、32位、64位,故其字数据的存放所占内存单元的个数也不一样3. 双字:即

13、2个字4. 四字:即4个字的长度地址存放内容(二进制表示)十六进制表示00000H110000101100001000001HC2H18H0001001000008H12H0011010000001H34H01110000FFFFFH70H 内存单元的地址和内容示意图back 1.3 微型计算机中数与字符的表示法 一个数值,可以用不同进制的数表示。通常用数字后面跟一个英文字母来表示该数的数制。十进制数: D Decimal D可以省略不用.二进制数: B Binary八进制数: Q Octal十六进制数:H Hexadecimal.例:1001B = 09H=9D一般地,任意一个十进制数N都可

14、以表示为:N=Kn-110n-1+Kn-2 10n-2+K1101+K0100 + K-110-1+K-210-2+K-m10-m =1.3.1 进位计数制 *基数:数制所使用的数码的个数*权:数制中每一位所具有的值. 式中,10称为十进制数的基数,i表示数的某一位,10i 称该位的权,Ki 表示第I位的数码。 Ki 的范围为09中的任意一个数1. 有十个不同的数字符号:0, 1, 2, 9。2. 遵循“逢十进一”原则。十进制数的两个主要特点整数部分小数部分 设基数用R表示,则对于二进制,R=2, Ki为0或1,逢二进一。 N= 对于八进制,R=8, Ki为07中的任意一个,逢八进一。 N=

15、对于十六进制,R=16, Ki为09、A、B、C、D、E、F共16个数码中的任意一个,逢十六进一。 N=例1101.001B = 123+122 + 021 + 120+02-1+02-2 + 12-3 = 13.125综上可见,上述几种进位制有以下共同点: 每种进位制都有一个确定的基数R,每一位的系数Ki有R种 可能的取值。 按“逢R进一”方式计数,在混合小数中,小数点右移一位相 当于乘以R,左移一位相当于除以R。 十进制数、二进制数、十六进制数之间的关系如下表所示十进制二进制十六进制012345678012345678000000010010001101000101011001111000

16、十进制二进制十六进制91011121314159ABCDEF1001101010111100110111101111 1.3.2 进位制数间的转换 二、八、十六进制数 十进制数 转换原则:若两个有理数相等,则两数的整数部分与小数部分一定分别相等。这种转换只需将二、八、十六进制数按权展开。例(110.01)2 = 12212102002-112-2 =(6.25)10 (175)8 =182781580 = (125)10 (B2C)16 =11162216112160(2860)10 2. 十进制数 二、八、十六进制数1) 整数转换方法:除2取余法。DN125= N=125D=1111101B

17、余数31212562215722231=K21=K31=K41=K51=K610221=K00=K1低位高位0=K72) 小数转换 方法:乘2取整法例如:将十进制数0.8125转换为二进制小数。整个转换过程如下: 0.8125 2 1.625 整数部分为1, K-11 高位 0.625 2 1.25 整数部分为1, K-21 0.25 2 0.50 整数部分为0, K-30 0.50 2 1.0 整数部分为1, K-41 低位 所以转换结果为: (0.8125)10(0.1101)2 推广: 将十进制数转换为N(二、十六、八)进制数时,整数与小数分别按“除N取余法”与“乘N取整法”进行转换。

18、而N进制数转换为十进制数均可按权展开相加得到。 2.二进制数和八进制数、十六进制数间的转换由于二进制的基数是2,而八进制的基数是8=23,一位八进制数字正好可以对应3位二进制数字;十六进制的基数为16=24,即一位十六进制数字正好对应4位二进制数字;因此他们之间的转换非常简便。(1)二进制到八进制、十六进制的转换二进制到八进制转换采用“三位化一位”的方法;二进制到十六进制转换采用“四位化一位”的方法。例1.4 将1000110.01B分别转换为八进制数和十六进制数。二进制到八进制的转换采用“三化一”的方法: 1 000 110 .0101 0 6. 2 Q二进制到十六进制的转换采用“四化一”的

19、方法: 0100 0110.0100 4 6 . 4 H所以 1000110.01B=106.2Q=46.4H应该注意的是对于小数部分的转换,不足位数的一定要在末尾补0。 (2)八进制、十六进制到二进制的转换 采用“一位化三(四)位”的方法:例1.5 将八进制数3213.66Q转换成二进制数。 3213.66Q=011 010 001 011.110 110B =11010001011.11011B例1.6 将B6.8H转换为二进制数。B6.8H=1011 0110.1000B=10110110.1B例1.7 将1011011110.101B转换为十进制数。方法1:按位权展开。 1011011

20、110.101B=29+27+26+24+23+22+21+2-1+2-3 =512+128+64+16+8+4+2+0.5+0.125 =734.625方法2: 先转换为16进制,再由16进制转换为十进制。 1011011110.101B=2DE.AH =2162+1316+14+1016-1 =512+208+14+0.625 =734.6251.3.3 定点数与浮点数根据R进制数表示公式: NR=SRE 式中:S数N的尾数,E数N的阶码, R阶码的底.对于同一个十进制数265.78,还可以有多种表示形式,如:2657.810-1、0.26578103、 2.6578102 等。同样,对于

21、同一个二进制数101101.11可以表示为 1011.0111210、1011011.12-1 等。显然,阶码E的取值与小数点的位置有关。当E为常数时,小数点的位置也就相应固定,这种表示方法称为数的定点表示法;当E值可以改变时,表示小数点的位置不固定,可以根据需要(保持最大数据精度)移动,这种表示方法称为数的浮点表示法。 1.定点数表示法 符号位一般用一位二进制数来表示,0表示正号,1表示负号, 小数点则不占位数,而是采用人为约定的方法。 根据约定的小数点的位置不同,有两种定点数: 定点整数和定点小数。(1)定点整数小数点在数值位的最低位之后,计算机中所表示的数一律为整数。定点整数又被划分为带

22、符号和不带符号的两类。带符号整数:其最高位为符号位,其他位为数值部分,n位带符号二进制数可表示的数值范围为:|N|2n-1-1。例如: 8位定点数可表示数值范围为-127127(原码) 16位定点数可表示数值范围为-3276832767(补码)无符号整数: 所有的数位都用来表示数值,无符号位, n位无符号数可表示的数值范围为:0N2n-1 例如,16位无符号定点数可表示数值范围为: 065535。(2)定点小数最高位表示符号,其他位表示数值部分,将小数点定在数值部分的最高位左边,因此任何一个小数可以表示为: Nf Nn-2 Nn-3 N2 N1 N0 则n位二进制数所表示的数值范围为|N|1-

23、2-(n-1) 例如,8位定点小数可表示数值范围为: -0.11111110.1111111(原码)定点小数的表示范围(1N-1)与位数无关,定点小数的长度只与其精度有关。 定点表示法主要用在早期的计算机中,可以节省硬件,简化运算器的设计。 但程序员在编程时,必须选择合适的比例因子,来表示超出定点数表示范围的数据。 与浮点数相比,数的表示范围和精度有限。 2. 浮点数表示法浮点数是指小数点在数据中的位置可以左右移动的数据。通常可表示成:N=S*RE典型的浮点数格式为:阶符Ef为阶码的符号位;阶码E和阶符一起指出数据小数点的位置;数符Sf为数值的符号位;尾数S决定了数值的精度,即有效位数。 Ef

24、 (一位)E (m位)Sf (一位)S(n位)阶 符阶 码数 符尾 数阶码的底R:一般选择与尾数的基数相同。 对于同一种系统,R是隐含的约定常数,并不直接表示在浮点数表示中。 为了便于理解且与二进制表示一致,约定R=2,并规定浮点数的尾数部分用定点小数表示,阶码部分用定点整数来表示。因此:一个浮点数实际由两个定点数组成: 阶码是定点整数,尾数是定点小数, 它相当于将数值规范为定点小数S乘以比例因子RE。(1)规格化浮点数规格化浮点数是指尾数部分满足0.5|S|1的数。规格化浮点数的特征是: 对于原码表示的尾数,数值位的最高位应为1, 规格化的意义在于尾数的有效位被充分利用,使得表示的数值精度尽

25、可能高。一个浮点数的非规格化表示可以有多种,但其规格化表示是唯一的。对不满足规格化表示的浮点数,要通过左移或右移尾数并修改阶码(减或加)的方法将其化为规格化表示格式,对浮点数的这种处理称为浮点数的规格化操作。例如: 对于二进制数0.0001111,其规格化操作为: 尾数左移3次,阶码减3,则有规格化的结果为:0.11112-3。(2)数值精度与范围浮点数实际由两个定点数组成,示意如下: 数符 阶码E(m位) 尾数(n位)阶码是一个定点整数,用于指出小数点在数据中的位置,它的位数m决定了浮点数的表示范围。尾数一般为定点小数,它的长度n决定了浮点数的精度即有效数字的位数。为了既保证足够大的数值范围

26、,又要保证所要求的精度,合理地选择m和n的值是十分必要的。例:浮点数-123625E-3 (隐含基数为 10 )的二进制规格化浮点数是多少? -123625 * 10-3 = -123.625 转化为二进制表示为:1111011.101将小数点一直移到最高位变成0.1111011101,一共向左移了7位,所以1111011.101 = 0.1111011101 * 27把1111011101拿出来在后面补零,一直补够到23位为止。这样就变成11110111010000000000000。因为此浮点数为负数,所以这个浮点数的原码表示是10000 0111 111 1011 1010 0000 0

27、000 0000。(3)机器零任何有限位数的浮点数,只能表示实数的一个子集,而且所表示的相对精度也是有限的因此规定:对一个浮点数,当尾数为0时,不论其阶码为何值或者当阶码的值比它所能表示的最小值还小时,不管尾数的值如何这两种情况计算机都把它看作0,称作“机器零”结论: 同样位数的二进制数位,采用浮点表示法比定点表示法所表示的数值范围和精度都要大。 随着硬件成本的下降,大多数计算机系统,包括微机都提供了浮点数表示和运算功能。1.3.4 机器数与真值 机器数:一个数连同其符号一起在机器中的表示形式。真 值:机器数的数值。8位微机中的带符号数:D7 D6 D5 D4 D3 D2 D1 D0符号位数值

28、位D7 =0正数1负数机器数真值01010010B=+8211010010B=82机器数的特点为:(1)数的符号用二进制代码化, 0代表+,1代表-,符号位通常放在数据的最高位。(2)小数点本身是隐含的,不占用储存空间。(3)每个机器数所占的二进制位数受机器硬件规模的限制,超过机器字长的数值要舍去。 1.3.5 原码、反码与补码 1. 原码、反码和补码的表示方法(1)原码最高位为符号位0 正数1 负数+4原 = 0 000 0100B4原 = 1 000 0100B后面n-1位是其数值。八位原码数的举例:原码的特点:(1) 数值部分即为该带符号数的二进制值。 (2) “0”有+0和 - 0之分

29、,若字长为八位, 则:(+0)原0 0000000,(0)原1 0000000(3) 8位二进制原码能表示的数值范围为: 0111111111111111,即+127127。 (2) 反码+5原 = +5反 = 0 000 0101B5原 = 1 000 0101B正数的反码与其原码相同。负数的反码除符号位外将原码求反。5反 = 1 111 1010B反码的特点: (1) +0反=00000000B -0反=11111111B (2) 8位二进制反码所能表示的数值范围为+127127,一般地,对于n位字长的计算机来说,其反码表示的数值范围为2n-1-1-2n-1+1。 (3) 8位带符号数用反

30、码表示时: 若最高位为“0” ,则后面的7位即为数值; 若最高位为“1” ,则后面7位表示的不是此负数的数值,必须把它们按位取反,才是该负数的二进制值。 (3) 补码 模和同余的概念 : * 一个计量器的容量或一个计量单位,叫做模或模数,计作M(Mode)。例:时钟的模为:12一个N位二进制计数器的模为:2n * 如果两个整数a、b,用某一整数M去除,所得余数相同,则称a、b对模M是同余的,此时称a、b在以M为模时是相等的。记作: a=b ( mod M ) 例:13=1 ( mod 12 )* 由同余的概念可以得出若干性质: ) a+M=a (mod M) ) a+nM=a (mod M,n

31、为整数) 当a为负数时,利用上式,负数就可化为正数了。 例:a=-3 在以12为模时,则有: -3+12=-3 (mod 12)即:9=-3 (mod 12) 对此,我们称-3的补码为+9(mod 12)补码的定义 字长为N位的定点数的补码表示法为:当x0时, x补 = x原 ,即为x本身加上符号位0 说明:由定义可得, 当 x0时, x补 = 2n -|X| ,即需由减法求得 。 X 0 X 2n-1 2n -|X| -2n-1X0 (mod 2n)x补 =负数的补码的求法:a. 由定义直接求:需要做减法运算。例:X=-68=-1000100B 则 x补 = 28| x | =1000000

32、001000100 =10111100 -0补 = 280 =10000000000000000 =00000000 = +0补 -128补 = 28128 =10000000010000000 =10000000 b.利用反码来求:当-2n-1X0 时,可以证明: x补等于x原 除符号位外,其余各位求反,最低位加1。 x原等于x补除符号位外,其余各位求反,最低位加1。 例:x= 68=1000100 x原 =11000100 x补=10111011+1=10111100反之有:x补=10111100 x原=11000011+1=11000100补码的几个特点:与原码、反码不同,数值0的补码只

33、有一个,即 0补=00000000B。若字长为8位,则补码所表示的范围为 -128+127;(1000000001111111)采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。 (4)补码的运算法则: 设X、Y为两个任意的二进制数,定点补码的运算满足下面的规则: X+Y补=X补+Y补 X-Y补=X补-Y补=X补+-Y补 其中-Y补表示对-Y求补码,称为求补运算。 求补的方法:对补码的每一位(包括符号位)求反后,在最低位加“1”。(即:连同符号位求反加1)特别注意:求补求补码例1.9 已知X=+0111001,Y=+1001101,求X-Y补解: X补=00111001,Y补=

34、01001101,则有: -Y补=10110011所以有:X-Y补=X补+-Y补 =00111001+10110011 =11101100 例1.10 已知X=+0110011,Y= - 0101001,求X+Y补 解:X补=00110011, Y补=11010111则有:X+Y补=X补+Y补=00110011+11010111 =00001010注意:在补码运算中产生的最高位进位必须丢弃不要,所以结果不是1,00001010,而是00001010。补码运算的特点:1) 真值补码的 和等于和的补码;2) 符号位当作数值一样进行运算;3) 符号位相加产生的进位位舍去不要;4) 加减法运算都是用加

35、法来实现的。例. 计算 y = 99 - 58 (用8位二进制表示) y补 = 99 -58补 = 99补 + - 58补0110001199补+11000110+ -58补99补 = 0110 0011B-58补 = 1100 0110B y = y补 = 0010 1001B = 4110010100141补自动丢失例:设机器字长为8位。25- 3225补= 0001 1001B-32补=1110 0000B十进制- 7-7补=1111 1001B二进制0001 10011110 00001111 1001+- 57- 25-32-25补= 1110 0111B-32补=1110 0000

36、B-57补=1100 0111B1110 01111110 00001 1100 0111+自动丢失2. 原码、反码和补码之间的转换 正数的原码、补码、反码表示方法均相同,即X原=X反=X补,不需要转换,在此仅对负数情况进行分析。(1)已知原码,求反码、补码例1.11 已知某数X的原码为10110100B,试求X的补码和反码。解:由X原=10110100B知,X为负数。 求其反码时,符号位不变,数值部分按位求反; 求其补码时,再在其反码的末位加1。即: 1 0 1 1 0 1 0 0 原码 1 1 0 0 1 0 1 1 符号位不变,数值位取反得到反码 1 1 0 0 1 1 0 0 由其反码

37、的末位加1得到所求的补码故:X补=11001100B,X反=11001011B (2)已知补码,求原码分析:按照求负数补码的逆过程,数值部分应是最低位减1,得到反码,然后取反求得其原码。 但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法。例1.12 已知X的补码11101110B,试求其原码。解:由X补=11101110B可知,X为负数。 求其原码表示时,符号位不变,数值部分按位求反,再在末位加1。 1 1 1 0 1 1 1 0 补码 1 0 0 1 0 0 0 1 符号位不变,数值位取反 1 0 0 1 0 0 1 0 末位加1得到所求的原码1.3

38、.6 溢出的概念8位二进制补码表示数的范围:-128 +127n位二进制补码表示数的范围:-2n-1 2n-1 -1 若运算结果超过了字长一定的机器所能表示数的范围,称为溢出。 此时运算结果出错。例1. 令CS为数值部分向符号位的进位,CS+1为符号位向高位的进位,此例中, CSCS+10,结果在8位二进制补码表示范围内,没有溢出。0000111101110000+01111111+15+112+12700CS+1CS例2. 此例中,CsCS+ 1,产生了错误的结果,发生了溢出。 0111111000000101+10000011+126+512501CS+1CS011111111111101

39、1+01111010+1275+122例3. CS 1, CS1 1, 结果未溢出!结果正确1000010011111011+01111111+1275124例4. CS 0, CS1 1结果溢出!1由上可得: CS = CS1,则结果正确 CS CS1,则结果溢出所以有:溢出 = CS CS1结果出错。1.3.7 数字与字符的编码1. BCD码表示法BCD码是一种常用的数字编码。BCD码:Binary-Coded Decimal,即二进制编码的十进制数。用 BCD表示。 这种编码法分别将每位十进制数字编成4位 二进制代码,从而用二进制数来表示十进制数。 0100 1001 0001.0101

40、 1000BCD = 491.580100 0011B = 67D = 0110 0111BCD BCD码与二进制之间通常要经过十进制实现相互转换。 例 表1.2 标准的BCD码与十进制数字的编码关系举例十进制数标准BCD码十进制数标准BCD码0000081000100019100120010100001 000030011110001 000140100120001 001050101530101 001160110640110 010070111991001 10012.数据校验码数据校验码是一种能够发现错误或带有自动改错能力的数据编码方法。其实现原理是对要传送的数据增加一些冗余位,按某种

41、规律进行编码后一同传送。读出时再按约定的编码规律进行检查,看是否符合。如果校验规律选择得当,不仅能够查出错误,还能自动纠正错误。常用的校验方法有奇偶校验、CRC校验和海明码校验法等,本节只介绍奇偶检验。某种编码中,任何两个码字间具有的不同的二进制位的个数称为这两个码字间的距离;例如,00000111与11000111两个码字有两位数字不同,他们的距离为2,而00010111和00000111两个码字有一位数字不同,他们的距离为1。对某种编码中,将各合法码字间的最小距离称为这种码制的码距。对于普通的二进制数据,编码是任意的,其码距为1,传输中任何一位出了差错时,无论是由1变为0,还是由0变为1,

42、所得到的数据都还是合法的二进制数据,因此无法发现差错。 如果通过人为的编码,将合法码字间的距离增大,可以将普通二进制编码集分为两部分:合法码字集和非法码字集。这样,一旦传输中发生错误,若所得到的数据不再属于合法编码集,就可以发现错误,而且通过特定的编码技术,还可以实现自动纠错。若用d表示编码集的码距,则理论上有: d=1: 不能发现错误; d=2: 能发现单个(奇数个)错,不能纠正; d3: 能发现并纠正一位错或用于发现两位错。奇偶校验码的实现原理是通过增加一个附加位,使合法编码的码距由1增加到2。这个附加位称为校验位。奇校验: 使整个校验码(有效数据+校验位)中1的个数为奇数。偶校验: 使整

43、个校验码(有效数据+校验位)中1的个数为偶数。 例1.17 传送一字节数据 10010011和0110110时,采用奇校验(或偶校验)时校验位分别为: 有效数据奇校验位奇校验码偶校验位偶校验码1001001111100100110010010011 01101101 0 001101101 1 101101101 奇偶校验方法常用于存储器读写检查或ASCII码字符传送中的检查,此方法是开销最小的校验方案,但只能发现奇数个数位错的情况,不能发现偶数个数位错的情况,也不能指出是哪一位错。一般情况下一位错的概率远大于多位错。奇偶校验一般按字节进行,可通过简单的异或逻辑线路靠硬件实现。3.字符的编码A

44、SCII 码是常用的字符编码。ASCII:American Standard Code for Information Interchange, 即美国信息交换标准代码。 ASCII 码用7位二进制编码表示数字、字母和符号。在字长8位微型计算机中,用低7位表示ASCII码,最高位D7可用作奇偶校验位。例如:C 100 0011 (七位ASCII码) 1100 0011(带偶校验的8位编码) 0100 0011(带奇校验的8位编码)4. 汉字的编码 我国根据汉字的常用程度定出了一级和二级汉字字符集,并规定了编码。这就是中华人民共和国国家标准信息交换用汉字编码(GB2312-80)中的汉字编码,即国标码。该标准编码字符集共收录汉字和图形符号7445个。 其中包括: 一般符号202个:包括间隔符、标点、运算符、单位符号和制表符等。 序号60个:包括1.20.、(1)(20)、和()(+)等。 数字22个:09和IXII。 英文字母52个:大、小写各26个。 日文假名169个:其中平假名83个,片假名86个。 希腊字母48个:其中大、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论