微机原理与接口技术(第一-二章含作业)_第1页
微机原理与接口技术(第一-二章含作业)_第2页
微机原理与接口技术(第一-二章含作业)_第3页
微机原理与接口技术(第一-二章含作业)_第4页
微机原理与接口技术(第一-二章含作业)_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

主讲:微机原理及应用李鹤喜适用于AP09103-04微机原理与接口技术-课程介绍微机原理及接口技术课程是电子信息工程和电子信息科学与技术专业学生学习和掌握微型计算机软硬件知识的重要课程,课程的任务是使学生从理论上和实践上掌握微机的基本组成、工作原理、接口技术及硬件连接,建立微机系统的整机概念,使学生具有微机系统软硬件开发和应用的基本能力,为微型计算机在工程技术领域的应用打下坚实的基础。

微机原理及应用-参考文献教材:郑学坚,微型计算机原理及应用其它参考书:周明德,微型计算机系统原理及应用,北京:清华大学出版社,2006.6戴梅萼,微型计算机技术及应用,北京:清华大学出版社,1991扬素行,微型计算机系统原理及应用,北京:清华大学出版社,1995微机原理及应用-课程内容

章节目录 计划学时第1章微型计算机系统概述 2第2章计算机中的数制和编码2第3章80×86微处理器 4第4章80×86指令系统8第5章汇编语言程序设计10第6章输入/输出接口 4第7章中断/定时/DMA控制器 8第8章模/数及数模接口

2第9章微型计算机应用实例 2微机原理及应用-先修课程数字逻辑电路提供硬件基础计算机组成原理确立计算机部件功能掌握计算机工作原理高级语言程序设计掌握基本程序设计方法先修课程第1章1.了解微机发展概况、熟悉典型微处理器和微机系统2.明确微机两个应用方向3.了解微机的硬件组成,理解总线及其应用特点、掌握地址、数据、控制总线的概念第1章教学要求1.1微型计算机的发展和应用1946年,世界上出现第一台数字式电子计算机ENIAC(电子数据和计算器)发展到以大规模集成电路为主要部件的第四代,产生了微型计算机1971年,Intel公司设计了世界上第一个微处理器芯片Intel4004,开创了一个全新的计算机时代以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心所构造出的计算机系统图片图片1.1微型计算机的发展第1代:4位和低档8位微机4004→4040→8008

典型产品是Intel公司1971年研制成功的4004(4位CPU)及1972年推出的低档8位CPU8008。采用PMOS工艺,集成度约为2000只晶体管/片。指令系统比较简单,运算能力差,速度慢(平均指令执行时间为10

20

s)。软件主要使用机器语言及简单的汇编语言编写。第2代:中高档8位微机Z80、I8085、M6800,Apple-II微机

典型产品有1974年Intel公司生产的8080CPU,Zilog公司生产的Z80CPU、Motorola公司生产的MC6800CPU以及Intel公司1976年推出的8085CPU。它们均为8位微处理器,具有16位地址总线。第二代微处理器采用NMOS工艺,集成度为9000只晶体管/片,指令的平均执行时间为1

2

s。1.1微型计算机的发展图片1.1微型计算机的发展第3代:16位微机8086→8088→80286,IBMPC系列机典型产品是1978年Intel公司生产的8086CPU、Zilog公司的Z8000CPU和Motorola公司的MC6800CPU。它们均为16位微处理器,具有20位地址总线。1982年,Intel公司在8086基础上研制出性能更优越的16位微处理器芯片80286。它具有24位地址总线,并具有多任务系统所必须的任务切换功能、存储器管理功能以及各种保护功能。以80286为CPU组成IBMPC/AT高档16位微型计算机。图片1.1微型计算机的发展第4代:32位微机80386→8048632位PC机、Macintosh机、PS/2机

1985年,Intel公司推出了32位微处理器芯片80386,其地址总线也为32位。

1990年,Intel公司在80386基础上研制出新一代32位微处理器芯片80486,其地址总线仍然为32位。它相当于把80386、80387及8KB高速缓冲存储器(Cache)集成在一块芯片上,性能比80386有较大提高。图片1.1微型计算机的发展第5代:64位微机Itanium、64位微处理器芯片微机服务器、工程工作站、图形工作站第五代微处理器的典型产品是1993年Intel公司推出的Pentium(奔腾,Intel586)。Pentium微处理器数据总线为64位,地址总线为36位,有两个并行执行单元及双高速缓冲存储器,工作频率有50MHz、66MHz、133MHz、和166MHz等。1.2微型计算机系统的组成图1.1微型计算机系统的组成硬件微型机系统外围设备过程控制I/O通道A/D,D/A转换器开关量等外部设备键盘、鼠标等输入设备显示器、打印机等输出设备软驱、硬盘及磁带等外存储器主机输入输出(I/O)接口电路微处理器(CPU)运算器(算术逻辑运算单元ALU)控制器(控制单元CU)寄存器阵列(RA)内存储器RAM,ROM,EPROMEEPROM,Cash等系统软件软件用户(应用)软件

到目前为止,计算机仍沿用1940年由冯·诺依曼首先提出的体系结构。其基本设计思想为:①以二进制形式表示指令和数据。②程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行。③由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。

1.2微型计算机系统的组成图1.2微型计算机硬件系统结构

1.2微型计算机系统的组成1.2微型计算机的系统组成运算器控制器寄存器组

内存储器

总线

输入输出

接口电路外部设备

软件微处理器微型计算机微型计算机系统区别3个概念所谓总线,是指计算机中各功能部件间传送信息的公共通道。所有的信息都通过总线传送。根据传送信息的内容与作用不同,总线可分为三类:

(1)地址总线AB(AddressBus):在对存储器或I/O端口进行访问时,传送由CPU提供的要访问存储单元或I/O端口的地址信息。AB是单向总线。

(2)数据总线DB(DataBus):对存储器或对I/O端口进行读写操作时,信息通过数据总线送往CPU或由CPU送出。DB是双向总线。

(3)控制总线CB(ControlBus):各种控制或状态信息通过控制总线传送。CB中每根线的传送方向是一定的。1.2.1微型计算机系统总线地址总线AB输出将要访问的内存单元或I/O端口的地址地址线的多少决定了系统直接寻址存储器的范围数据总线DBCPU读操作时,外部数据通过数据总线送往CPUCPU写操作时,CPU数据通过数据总线送往外部数据线的多少决定了一次能够传送数据的位数控制总线CB协调系统中各部件的操作,有输出控制、输入状态等控制总线决定了系统总线的特点,例如功能、适应性等1.2.1

总线信号举例举例图1.3所示为一个简化的微处理器模型(虚线框内),它由运算器(ALU)、控制器(CU)和内部寄存器(R)三部分组成。现将各部件的功能简述如下。

1.2.2微处理器图1.3微处理器结构

1.2.2微处理器

1.运算器运算器又称算术逻辑单元(ALU,ArithmeticLogicUnit),用来进行算术或逻辑运算以及移位循环等操作。参加运算的两个操作数一个来自累加器A(Accumulator),另一个来自内部数据总线,可以是数据缓冲寄存器DR(DataRegister)中的内容,也可以是寄存器阵列RA(RegisterArray)中某个寄存器的内容。

1.2.2微处理器

2.控制器控制器又称控制单元(CU,ControlUnit),是全机的指挥控制中心。它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令。控制器中包括以下几部分:

(1)指令寄存器IR(InstructionRegister):用来存放从存储器取出的将要执行的指令码。当执行一条指令时,先把它从内存取到数据缓冲寄存器DR中,然后再传送到指令寄存器IR中。

1.2.2微处理器

(2)指令译码器ID(InstructionDecoder):用来对指令寄存器IR中的指令操作码字段(指令中用来说明指令功能的字段)进行译码,以确定该指令应执行什么操作。

(3)可编程逻辑阵列PLA(ProgrammableLogicArray):用来产生取指令和执行指令所需要的各种微操作控制信号,并经过控制总线CB送往有关部件,从而使计算机完成相应的操作。

1.2.2微处理器

3.内部寄存器

1)程序计数器PC(ProgramCounter)程序计数器有时也被称为指令指针(IP,InstructionPointer),它被用来存放下一条要执行指令所在存储单元的地址。

2)地址寄存器AR(AddressRegister)地址寄存器用来存放正要取出的指令的地址或操作数的地址。

3)数据缓冲寄存器DR(DataRegister)数据缓冲寄存器用来暂时存放指令或数据。1.2.2微处理器

4)累加器A(Accumulator)累加器是使用最频繁的一个寄存器。在执行算术逻辑运算时,它用来存放一个操作数,而运算结果通常又放回累加器,其中原有信息随即被破坏。因此,顾名思义,累加器是用来暂时存放ALU运算结果的。

5)标志寄存器FLAGS(FlagRegister)标志寄存器有时也称为程序状态字(PSW,ProgramStatusWord)。它用来存放执行算术运算指令、逻辑运算指令或测试指令后建立的各种状态码内容以及对CPU操作进行控制的控制信息。1.2.2微处理器

6)寄存器阵列RA(RegisterArray)寄存器阵列实际上相当于微处理器内部的RAM。微处理器内部有了这些寄存器后,就可避免频繁访问存储器,缩短指令长度和指令执行时间,提高机器的运行速度,方便程序设计。1.2.2微处理器在计算机内部,程序和数据都以二进制形式表示,8位二进制代码作为一个字节。为了便于对存储器进行访问,存储器通常被划分为许多单元,每个存储单元存放一个字节的二进制信息,每个存储单元分别赋予一个编号,称为地址。如图1.4所示,地址为4005H的存储单元中存放了一个8位二进制信息00111000B。1.2.3存储器图1.4内存单元的地址和内容

1.2.3存储器自学内容1.微型计算机软件系统2.微型计算机的工作过程(取指令的操作过程和执行指令的操作过程)实验软件1.3微型计算机的应用计算机应用通常分成如下各个领域科学计算,数据处理,实时控制计算机辅助设计,人工智能,……由于微型计算机具有如下特点体积小、价格低工作可靠、使用方便、通用性强……所以,可以分为两个主要应用方向用于数值计算、数据处理及信息管理方向通用微机,例如:PC微机用于过程控制及智能化仪器仪表方向专用微机,例如:工控机、单片机1.4

计算机有何应用?

计算机现在已远远超过了诞生时用于数值计算的目的,现在被广泛用于航天、国防、工农业生产的各个领域。1、计算机在航天领域的应用这是我国发射的神州五号载人飞船,首次实现了中国人飞天的梦想。无论是长征运载火箭还是神州飞船都是在计算机的精密控制下完成这一壮举的。美国“勇气号”火星车美国航天飞机通过计算机远程遥控首次实现了人类对火星的探测2005年美国宇航局进行的彗星深度撞击神州六号载人飞船内部计算机控制通讯仪表2、计算机控制在现代工业生产中的应用这是由计算机控制的全自动生产线这是由计算机控制的无缝钢管生产线这是一个全自动三合一洗灌封生产线这是由计算机控制的矿泉水生产线这是由计算机控制的焊接机器人这是由计算机控制的数控机床这是由计算机控制的SMT自动贴片机3、计算机在军事中的应用采用计算机控制的“战斧”巡航导弹射程2000公里,巡航高度,海上为7-15米,陆上平坦地区为60米以下,山地150米,有很强的低空突防能力。美国在1991年海湾战争中首次使用“战斧”巡航导弹,此后又在多次战争中使用。美国战斧巡航导弹中国的“红鸟”巡航导弹中国的“东风”战略导弹中国的“巨浪”潜射导弹4、计算机在农业中的应用计算机控制的农业喷灌系统计算机控制的高尔夫球场灌溉系统计算机在金融、商业上的应用计算机控制的证券交易大厅1.4如何学好微机原理与接口技术这门课?如何学好《微机原理与接口技术》这门课?学会两个转变:1、“1+1=10”从“十进制”到“二进制”的转变,因为计算机内部无论是指令还是数据都是用二进制表示的2、“1+1=1”从一般运算向布尔代数运算转变,计算机内部的所有加、减、乘、除运算最终都是用布尔代数运算完成的。第一章结束第2章计算机中的数制和编码熟悉数制的基本概念和计算机中常用进位计数制掌握二、八、十、十六进制的表达和相互转换掌握带符号数的表达和运算:原码、反码、补码掌握美国信息交换标准代码(ASCII码)和二—十进制编码——BCD码的表达及应用。了解微型计算机常用的汉字编码及其应用本章教学目的及要求2.1

常用术语位(bit):位是计算机所能表示的最小最基本的数据单元。在计算机中,它有两种状态:0和1。字(word)和字长:字是计算机内部进行数据处理的基本单位。计算机的每个字包含的二进制位的数目称为字长。不同类型的计算机有不同的字长,如,8080是8位,80386是32位字节(Byte):相邻的8位二进制数称为一个字节目前,通常一个字节定为8位,一个字定为16位,一个双字定为32位存储容量的表达比特b(二进制1位)字节B(二进制8位)1KB=210B=1024B1MB=220B、1GB=230B1TB=240B进制的表示二进制数用B或b结尾十进制数可不用结尾字母, 也可用D或d结尾十六进制数用H或h结尾请大家复习掌握本小节内容2.1

常用术语2.2计算机中的数制及其转换(无符号数)

通常,计算机中的数据分为两类:(1)数:用来直接表示量的多少,有大小之分,能够进行加减等运算。(2)码:通常指代码或编码,在计算机中用来描述某种信息。

一、数制的基本概念1.数的表示:任何一种数制表示的数都可以写成按位权展开的多项式之和。

N=dn-1bn-1+dn-2bn-2+dn-3bn-3+……d-mb-m式中:n——整数的总位数。m——小数的总位数。

di——表示该位的数码。b——表示进位制的基数。

bj——表示该位的位权。2.计算机中常用的进位计数制计数制基数数码进位关系二进制20、1逢二进一八进制80~7逢八进一十进制100~9逢十进一十六进制160~9、A~F逢十六进一3.计数制的书写规则(1)在数字后面加写相应的英文字母作为标识。如:二进制数100B,十六进制数100H(2)在括号外面加数字下标。如:(1011)2=1011B,(2DF2)16=2DF2H2.2计算机中的数制及其转换(无符号数)二、

数制之间的转换(1)十进制整数转换为二进制整数采用基数2连续去除该十进制整数,直至商等于“0”为止,然后逆序排列余数。——“除2取余”(2)十进制小数转化为二进制小数连续用基数2去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。

——“乘2取整”2.2计算机中的数制及其转换(无符号数)【例1】将十进制整数(105)10转换为二进制整数,采用“除2倒取余”的方法,过程如下:2︳105

2︳52

余数为12︳26

余数为02︳13

余数为02︳6

余数为12︳3

余数为02︳1

余数为10 余数为1

所以,(105)10=(1101001)22.2计算机中的数制及其转换(无符号数)【例2】将十进制小数(0.8125)10转换为二进制小数,采用“乘2顺取整”的方法,过程如下:0.8125×2=1.625取整数位10.625×2=1.25取整数位10.25×2=0.5取整数位00.5×2=1.0取整数位1

所以,(0.8125)10=(0.1101)2如果出现乘积的小数部分一直不为“0”,则可以根据精度的要求截取一定的位数即可。

2.2计算机中的数制及其转换(无符号数)【例3】将十进制整数(2347)10转换为十六进制整数,采用“除16倒取余”的方法,过程如下:16︳2347

16︳146

余数为11(十六进制数为B)

16︳9

余数为20余数为9

所以,(2347)10=(92B)162.2计算机中的数制及其转换(无符号数)(3)十进制整数转换为八进制整数或十六进制整数采用“除8取余”、“除16取余”(4)十进制小数转换为八进制小数或十六进制小数采用“乘8取整”、“乘16取整”【例4】将十进制小数(0.65625)10转换为十六进制小数,采用“乘16顺取整”的方法,过程如下:0.65625×16=10.5取整数位10(十六进制A)0.5×16=8取整数位8所以,(0.65625)10=(0.A8)16如果出现乘积的小数部分一直不为“0”,则可以根据精度的要求截取一定的位数即可。(5)二、八、十六进制数转换为十进制数用其各位所对应的系数,按“位权展开求和”的方法就可以得到。其基数分别为2、8、16。(6)二进制数转换为十六进制数:“合四为一”从小数点开始分别向左或向右,将每4位二进制数分成1组,不足4位的补0,然后将每组用一位十六进制数表示即可。(7)十六进制数转换为二进制数:“一拆为四”将每位十六进制数用4位二进制数表示即可。(8)二进制数转换为八进制数:“合三为一”

(9)八进制数转换为二进制数:“一拆为三”2.2计算机中的数制及其转换(无符号数)

十六进制转换为十进制计算实例【例5】将十六进制小数(3BD.7A)16转换为十进制数,采用“按权展开”的方法,过程如下:(3BD.7A)16=3×162+11×161+13×160+7×16-1+10×16-2=(957.4765625)10【例6】二进制转换为十六进制:合四为一,不够补零(1101110.01011)2

=(0110,1110.0101,1000)2=6E.58H【例7】十六进制转换为二进制:一拆为四,去掉余零2F.1BH=(101111.00011011)2

2.2计算机中的数制及其转换(无符号数)二进制数的运算

1.二进制数的算术运算:

加、减、乘、除

2.二进制数的逻辑运算:与、或、非、异或2.2计算机中的数制及其转换(无符号数)2.3.1机器数和真值(带符号数)机器数和真值:

在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。机器数所代表的数称为数的真值。

在计算机中,为了区别正数和负数,通常用二进制数的最高位表示数的符号。对于一个字节型二进制数来说,D7位为符号位,D6

D0位为数值位。在符号位中,规定用“0”表示正,“1”表示负,而数值位表示该数的数值大小。1.原码正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。【例5】当机器字长为8位二进制数时:

X=+1011011B[X]原码=01011011BY=-1011011B[Y]原码=11011011B[+1]原码=00000001B[-1]原码=10000001B2.3.2机器数的表示方法(带符号数)

一个8位二进制原码表示数的范围为-127

+12716位二进制原码表示数的范围为-32767

+32767;一般而言n位二进制原码数的表示范围:-(2n-1-1)~2n-1-1“0”的原码有两种表示法:00000000表示+0,10000000表示-0。

2.3.2机器数原码表示的范围(带符号数)2.反码对于带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。【例6】当机器字长为8位二进制数时:

X=+1011011B[X]原码=01011011B[X]反码=01011011BY=-1011011B[Y]原码=11011011B[Y]反码=10100100B2.3.2机器数的表示方法(带符号数)[+1]反码=00000001B[-1]反码=11111110B[+127]反码=01111111B[-127]反码=10000000B

负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。

8位二进制反码表示数的范围为-127

+127,16位二进制反码表示数的范围为-32767

+32767;“0”的反码有两种表示法:00000000表示+0,11111111表示-0。2.3.2机器数的表示方法(带符号数)3.补码:正数的补码与其原码相同,负数的补码为其反码在最低位加1。【例7】(1)X=+1011011B(2)Y=-1011011B(1)根据定义有:

[X]原码=01011011B[X]补码=01011011B(2)根据定义有:

[Y]原码=11011011B[Y]反码=10100100B [Y]补码=10100101B2.3.2机器数的表示方法(带符号数)可以看出,8位二进制补码表示数的范围为-27~+27-1=-128

+127,16位二进制反码表示数的范围为-215~215-1=-32768

+32767。即补码的范围正负是不对称的。8位二进制数的原码、反码和补码如表2.1所示。2.3.2机器数的表示方法(带符号数)表2.18位二进制数的原码、反码和补码表

2.3.2机器数的表示方法(带符号数)

补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。

则:8位二进制补码表示的整数范围是-128~+12716位二进制补码表示的整数范围是-32768~+32767

当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。

8位二进制原码表示的整数范围是-127~+1278位二进制反码表示的整数范围是-127~+127

2.3.2机器数的表示方法(带符号数)

补码计算规则:正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。【例8】[X]补码=01011001B,[X]补码=11011001B,分别求其真值X。(1)[X]补码代表的数是正数,其真值:X=+1011001B=+(1×26+1×24+1×23+1×20)=+(64+16+8+1)=+(89)D2.3.3真值和机器数之间的转换(带符号数)(2)[X]补码代表的数是负数,则真值:

X=-([1011001]求反+1)B

=-(0100110+1)B

=-(0100111)B

=-(1×25+1×22+1×21+1×20)=-(32+4+2+1)=-(39)D2.3.3真值和机器数之间的转换(带符号数)1.补码加法

在计算机中,凡是带符号数一律用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。补码加法的运算规则为:即:两数补码的和等于两数和的补码。2.3.4补码的加减运算

【例9】已知

[+51]补=00110011B,[+66]补=01000010B,

[-51]补=11001101B,[-66]补=10111110B

求[+66]补+[+51]补=?

[+66]补+[-51]补=?

[-66]补+[-51]补=?

2.3.4补码的加减运算由于[+66]补+[+51]补=[(+66)+(+55)]补=01110101B结果为正,因此[(+66)+(+55)]原=[(+66)+(+55)]补=01110101B其真值为+117,计算结果正确。

二进制(补码)加法十进制加法

01000010[+66]补

+66+)00110011[+51]补

+)+51 01110101[+117]补

+117

2.3.4补码的加减运算由于[+66]补+[−51]补=[(+66)+(−55)]补=0000111B结果为正,因此[(+66)+(−55)]原=[(+66)+(−55)]补=00001111其真值为+15,计算结果正确。

二进制(补码)加法十进制加法

01000010[+66]补

+66+)11001101[−51]补

+)−5100001111[+15]补

+151自动丢失2.3.4补码的加减运算

二进制(补码)加法十进制加法

10111110[-66]补

-66+)11001101[−51]补

+)−5110001011[-117]补

-1171自动丢失由于[−66]补+[−51]补=10001011B=[(−66)+(−55)]补结果为负,因此

[(−66)+(−55)]原=[[(−66)+(−55)]补]补=11110101B其真值为−117,计算结果正确。

可以看出,不论正数还是负数,只要直接用它们的补码直接相加,当结果不超出补码所表示的范围时,计算结果便是正确的补码形式。但当计算结果超出补码表示范围时,结果就不正确了,这种情况称为溢出。2.3.4补码的加减运算2.补码减法补码减法的运算规则为:请同学们将例9中的加法变为减法运用规则重新计算!2.3.4补码的加减运算计算机中带符号数用补码表示时有如下优点:①可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算,简化了电路。②无符号数和带符号数的加法运算可以用同一个加法器实现,结果都是正确的。例如:

无符号数带符号数

11100001 225 [−31]补+)00001101 +) 13 +)[+13]补

11101110 238[−18]补2.3.4补码的加减运算1.进位与溢出所谓进位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。如果运算结果超出此范围,就叫补码溢出,简称溢出。2.3.5进位与溢出2.溢出的判断方法单符号位法。该方法通过符号位和数值部分最高位的进位状态来判断结果是否溢出。

(1)当次高位向最高位有进位且最高位向前也有进位或者次高位向最高位没有进位且最高位向前也没有进位时,结果没有溢出;即最高位与次高位进位状态相同时没溢出。(2)当次高位向最高位有进位而最高位向前没有进位或者次高位向最高位没有进位而最高位向前有进位时,结果溢出。即即最高位与次高位进位状态不同时结果溢出。2.3.5进位与溢出

【例10】

x=01000100B,y=01001000B,计算x+y,试问:①若为无符号数,计算结果是否正确?②若为带符号补码数,计算结果是否溢出?

无符号数带符号数

0100010068[+68]补+)01001000+)72+)[+72]补

10001100140[+140]补DF=1CF=0①若为无符号数,由于CF=0,计算结果正确。②若为带符号数补码,由于结果溢出因此结果是错误的。2.3.5进位与溢出一、美国信息交换标准代码(ASCII码)ASCII(AmericanStandardCodeforInformationInterchange)码是美国信息交换标准代码的简称,用于给西文字符编码;包括英文字母的大小写、数字、专用字符、控制字符等;这种编码由7位二进制数组合而成,可以表示128种字符。包括:

34个控制字符;10个阿拉伯数字;52个英文大小写字母;32个专用符号2.4字符编码二、二—十进制编码——BCD码BCD(Binary-CodedDecimal)码又称为“二—十进制编码”,专门解决用二进制数表示十进数的问题。最常用的是8421编码,其方法是用4位二进制数表示1位十进制数。1.压缩BCD码:每一位数用4位二进制数来表示,即一个字节表示2位十进制数。如:(10001001)BCD=89D。2.非压缩BCD码:每一位数用8位二进制数来表示,即一个字节表示1位十进制数。而且只用每个字节的低4位来表示0~9,高4位为0。如:89D=(0000100000001001)BCD

2.4字符编码

【例11】设x=10010110B,当x分别为无符号数、原码、补码、压缩型BCD码时,试分别计算x所代表的数值大小。解:无符号数:真值为x=150

原码: [x]原=10010110B 真值为x=−22

补码: [x]补=10010110B [x]原=[[x]补]补=11101010B真值为 x=−106BCD码:[x]BCD=10010110B 真值为x=962.4字符编码2.5二进制全加器设计

在进行多位二进制全加器之前,我们现分析一位全加器的设计方法,搞清一位全加器的设计后,再由它组合设计出任意位的多位全加器。计算机内部所有运算电路都是用布尔逻辑代数设计的,因此,在进行一位全加器设计之前,要写出一位全加器的逻辑真值表。全加的含义:指除了进行一位加法的两位二进制数Ai,Bi外,还包含了一位进位Ci。2.2.4基本的二进制加法/减法器

首先我们来讨论最简单的一位全加器的结构,设定两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1。

Ai

+Bi

Ci

Ci+1Si

下表列出一位全加器进行加法运算的输入输出真值表。本位和产生的进位

输入

输出AiBiCiSiCi+10000000110010100110110010101011100111111表2.1一位全加器真值表

根据表2.1所示的真值表,三个输入端和两个输入端可按如下逻辑方程进行联系:

Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

按此表达式组成的一位全加器下图示所示。FACi+1SiAiBiCiN位全加器当M=0时,B直接送到每位全加器,做加法运算;当M=1时,B取反送到全加

温馨提示

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

评论

0/150

提交评论