微机原理与通信接口 武汉理工大学信息工程学院 2010年9月.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第三章 数据在计算机中的表示 进位计数制及相互转换 进位计数制及相互转换 3.2 数据在计算机中的表示 数据在计算机中的表示.
数制 (1) 基数:在一种数制中,只能使用一组固定的数字符号 来表示数目的大小,其使用数字符号的个数,就称为该数 制的基数。其规则是 “ 逢 b 进一 ” ,则称为 b 进制的基数。 十进制( Decimal )的基数是 10 ,,它有 10 个数字符号, 即 0 , 1 , 2 , 3 , 4 ,
第 2 章 数据表示及逻辑基础. Overview  数制  数、码  编码与文本  多媒体数据  逻辑基础.
三级偏软考点. 第一章必考点 1. 计算机的进位数制 (1) 计算机中所有数据是二进制 0,1 表示 (2) 在现实生活中人们普遍使用十进制 如何把十进制转换成计算机所识别的二 进制?整数是除 2 取余法,小数是乘 2 取 整法.
新人教版四年级数学上册 笔算除法 森村中心学校 江国飞 1 、口算。 360÷30= 840÷40= 200÷50= 270÷90= 40÷20= ÷40=3600÷19≈30 90÷30=3 900÷31≈30.
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
计算机基础知识之一 第一节 计算机中的数制 及其转换.
单片机原理及应用 主讲:张学军 光电工程学院 TEL:
Foundations of Computer Application
BCD码运算的十进制调整指令 专用于对BCD码运算的结果进行调整 包括:AAA、DAA、AAS、DAS、AAM、AAD
微型计算机中数的编码和字符的表示 1 数的表示与转换方法 2 带符号数的表示方法 3 定点数与浮点数 4 计算机中的编码.
第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则
计算机基础 第2讲 授课教师:徐鲁辉.
10.2 立方根.
分式的乘除.
实用操作系统概念 张惠娟 副教授 1.
微机原理与接口技术 大家好!.
计算机基础知识 丁家营镇九年制学校 徐中先.
计算机应用基础教程 第一章 计算机基础知识 实践训练中心.
单片机原理及接口技术.
第 1 章 概 论.
IBM—PC汇编语言 程序设计(第二版) 主讲 李敬兆 Ch1 基础知识.
清华大学计算机系列教材 IBM—PC汇编语言 程序设计(第二版).
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
1.1 什么是单片机 1.2 单片机的特点 1.3 单片机的发展与应用 1.4 计算机中的数和编码
第2章 计算机的基础知识.
数 控 技 术 华中科技大学机械科学与工程学院.
计算机组成原理 The Principle of Computer
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
《计算机应用基础》课程介绍 教学目标: 授课教师:李季 ( 64学时=2次/周,2学时/次, 16周
C语言程序设计基础 刘新国.
1.1 数制与编码 1.2 计算机中数值数据的表示与运算 1.3 计算机系统的组成 1.4 微型计算机概述
逆向工程-汇编语言
第1章 绪 论 ● 教学目标: 介绍计算机的发展历史和单片机发展趋势 介绍计算机数的表示方法及运算
CPU结构和功能.
第一章 函数与极限.
本节内容 字符编码 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
课题:1.5 同底数幂的除法.
第1章 数制与编码.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第9章 位 运 算.
单片机原理及应用 第一章 单片微型计算机概述及预备知识 1.1 单片机的发展历史和发展趋势 1.2 计算机的数制和码制及其数制间转换
用计算器开方.
第4章 Excel电子表格制作软件 4.4 函数(一).
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
第4课时 绝对值.
九宫趣味数学──手指关节计算器 上海浦东建平实验小学 王政皓.
2.2矩阵的代数运算.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
两位数加两位数(进位) 刘晓玲
数据表示 第 2 讲.
第一章 微型计算机中的数据类型.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
微机原理与接口技术 西安邮电大学计算机学院 董 梁.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第9章 位 运 算.
第一章 绪 论 1.1 概 述 1.2 数制与代码.
单片机原理及其应用 主讲教师 赵琳.
学习目标 1、什么是列类型 2、列类型之数值类型.
数字电子技术 项目1 简单加法器电路设计与测试
Presentation transcript:

微机原理与通信接口 武汉理工大学信息工程学院 2010年9月

讲课内容: 体系结构、汇编语言、接口技术 总学时: 72学时, 其中: 讲课学时56 本课程是信息类专业的一门专业基础课,通过本课程的学习,掌握微型计算机的组成和功能结构、汇编语言程序设计、工作原理、及微型计算机的接口技术。 讲课内容: 体系结构、汇编语言、接口技术 总学时: 72学时, 其中: 讲课学时56 实验学时16 另安排课程设计 1周

教材、参考书 西安电子科技大学出版社 教材: 微型计算机原理与接口技术 姚燕南 薛钧义 主编 高等教育出版社出版 教材: 微型计算机原理与接口技术 姚燕南 薛钧义 主编 高等教育出版社出版 参考书:微型计算机原理及应用 王庆利主编,李珍副主编 西安电子科技大学出版社 汇编语言程序设计 沈美明 温冬婵 编著 清华大学出版社出版 微型计算机接口技术及应用 刘乐善 主编 华中科技大学出版社出版

第一章 微型计算机基础知识 (4学时) 第二章 微型计算机的组成及微处理器功能结构 (4学时) 第三章 8086寻址方式与指令系统 (6学时) 第四章 汇编语言程序设计 (10学时) 第五章 微处理器外部结构和总线操作时序 (6学时) 第六章 半导体存储器 (4学时) 第七章 CPU的存储器管理 (4学时) 第八章 中断和异常 (8学时) 第九章 输入/输出方法及常用接口电路 (10学时) 第十章 微型计算机系统 (自学) 第十一章 微型计算机系统和网络 (自学)

第一章 微型计算机基础知识 1.1 计算机中的数和编码 1.2 二进制数的算术运算 1.3 二进制数的逻辑运算 1.4 微型计算机的发展概述

1.1 计算机中的数和编码 1 进位计数制 进位计数制是最常用的数值表示方法。 1.1 计算机中的数和编码 1 进位计数制 进位计数制是最常用的数值表示方法。 一个数由一定数目的数码排列在一起组成,每个数码的位置规定了该数码所具有的数值——权,该位置称为数位,数码的个数称为基数,计数制又称为以基值为进位的计数制,数位的权是基值的幂。

基值为r 的数值N的表示方法为: 或: 式中:m、n是正整数,n为整数的位数,m为小数的位数,d是r个数码0,1,…,r-1中的任意一个,r为数位为i的权。 常见的计数制有:十进制、八进制、十六进制、二进制等。

十进制 十进制数码为0~9,权为10的幂,逢十进一,借一当十。例如: 二进制 二进制数码为0~1,权为2的幂,逢二进一,借一当二;

八进制 八进制数码为0~7,权为8的幂,逢八进一,借一当八。例如: 十六进制 十六进制数码为0~9,A,B,C,D,E,F,权为16的幂,逢十六进一,借一当十六。例如:

二进制的特点: 只需两种状态:0、1;实现容易。 共有六种运算规则: 运算规则简单,易应用于逻辑代数。 因此,二进制被广泛应用于计算机。但其书写复杂,不易看出数值大小,故常用八进制、十六进制来縮写,以利阅读。

数的表示通常省略十进制的基值表示符号D (decimal),而二进制则以B (binary)、八进制以O (octad)、十六进制以H (hexa decimal)来表示其进位基值。 例如: 245.25 = 245.25D = 11110101.01B = 365.2O =F5.4H

2 进制间的转换 二进制与十六进制数间的转换 二进制数转换为十六进制数,只需从右向左将二进制分为每4个一组,每组用一位十六进制数表示,左边不足4位,应在左边加0,以凑成4位一组。 例: 1111111000111B 0001 1111 1100 0111B = 1FC7H

十六进制数和十进制数间的转换 十六进制数转换为十进制数,只需将十六进制数按权展开相加即可。 例: 1F3DH = (4096*1)+(256*15)+(16*3)+(1*13) = 4096 + 3840 + 48 + 13 = 7997

十进制整数和十六进制数间的转换 十进制整数转换为十六进制数,可用除16取余法,即用16不断地去除待转换的十进制数,直到商等于0为止。将所得的各次余数,依倒序排列,即可得到所需转换的十六进制。 例: 38947D = 9823H

3 数在计算机中的表示 1. 机器数与真值 在计算机中数用二进制表示。数码“0”和“1”可由二值器件的两个不同的稳态来表示,数的符号也只能用这两种不同的稳态来表示。 在数的最高位之前增设一位符号位,0表示正数,1表示负数。这种符号数码化的数叫机器数,机器数所代表的数的本身叫真值。

机器数具有的特点: 机器字长是有限的,字长可决定数的表示范围。 一个字长一般是字节 (8位) 的整数倍,如8位、16位、32位和64位等。 符号数值化,参与运算。 小数点按约定方式标出,而不是以专门器件表示。

在计算机执行算术运算时,用原码实现乘、除运算,用补码实现加、减运算。 2. 原码、反码和补码 在计算机执行算术运算时,用原码实现乘、除运算,用补码实现加、减运算。 1) 原码表示法 原码表示法是一种最简单的机器数表示法,用最高位表示符号位,符号位为“0”表示该数为正,符号位为“1”表示该数为负,数值部分就是原来的数值。

设定点整数字长为n ,原码定义为: 例: [X]原= X= + 1101001, [X]原= 0 1101001; [X]原= 2n-1 – X = 28-1 -(- 1101001 ) = 10000000 + 1101001 =11101001;

原码的特点: 数值部分即为该带符号数的二进制值。 “0”有+0和-0之分,若字长为8位,则: [+0]原 = 0 000 0000, [-0]原 = 1 000 0000 8位二进制原码能表示的数值范围为: 0 111 1111~1 111 1111,即+127~-127; 16位二进制原码的数值范围为+32767~-32767。 原码表示法简单易懂,而且与真值的转换方便,但若是两个异号相加,或两个同号相减,就要做减法,为避免做减法,把减法统一转换为加法,便引入了反码和补码。

直接法:把与其绝对值相等的正数按位取反(连同符号位)。 2) 反码表示法 在反码的表示中,正数的反码就等于真值,负数的反码是把其原码除符号位以外的各位按位取反。 设定点整数字长为n ,反码定义为: [X]反= 例: X= + 1101001, [X]反= 0 1101001; X= - 1101001, [X]反= 2n–1+ X = (28-1) + (- 1101001 ) = 11111111 - 1101001 =10010110; 直接法:把与其绝对值相等的正数按位取反(连同符号位)。

反码的直观解释: 正数:其反码表示与原码相同,最高位为符号位,其余为数字位。 X=+127, [ +127 ]原 = [ +127 ]反 = 0 11…1; 负数:将它的正数连符号位按位取反。即,将它的原码数值部分取反,符号位仍放置“1” 。 X=-127, [- 127 ]原 = 1 1111111; [- 127 ]反 = 1 0000000 注:真值0的反码有两种不同的表示方法: [ + 0 ]反= 0 00…0; [ - 0 ]反= 1 11…1;

反码的特点: “0”有+0和-0之分; 8位二进制反码所能表示的数值范围为+127~-127; 16位二进制反码的数值范围为+32767~-32767; 8位带符号的数用反码表示时,若最高位为“0”,则后面的7位即为数值;若最高位为“1”,则后面7位表示的不是此负数的数值,只有把它们按位取反,才是该负数的二进制数值。 如: [X ]反 = 1 001 0100 ,它是一个负数,其后7位取反得: 110 1011 。 得到该负数的值: X=-110 1011=-107

3) 补码表示法 设定点整数字长为n ,补码定义为: 例: 为便于进行加减运算,简化机器硬件结构,目前微机系统都采用补码表示数据。 [X]补= 方法1:把一个正数连同符号位按位取反再加1; 例: X= + 1101001, [X]补= 0 1101001; X= - 1101001, [X]补= 2n+ X = 28+ (- 1101001 ) = 100000000 - 1101001 =10010111; 方法2:从最低位向最高位扫描,保留直到第一个“1”的所有位,以后各位按位取反。

注:几个特殊值的补码: 正数:其补码的表示与原码相同,其余为数值位。 X=+0; [X]原= [X]反=[X]补= 0 000 0000; X=+127; [X]原= [X]反=[X]补= 0111 1111 ; 负数:其补码为其反码在最低位加1。 X=-0; [X]原=1000 0000, [X]反= 1111 1111, [X]补= 0 000 0000; X=-127; [X]原=1111 1111, [X]反= 1000 0000, [X]补= 1 000 0001; X=-128; [X]补=1000 0000

补码的特点: [+0]补=[-0]补= 0 000 0000 因为“0”无+0和-0之分,所以 8位二进制补码所能表示的数值范围为+127~-128;同理,16位二进制反码的数值范围为+32767~-32768; 一个用补码表示的二进制数,当为正数时,最高位(符号位)为“0”,其余位即为此数的二进制值;当为负数时,符号位为“1”,其余几位不是此数的二进制值,必须把它们按位取反,且在最低位加1,才是它的二进制值。 如: [X ]补 = 1 001 0100 ,求其真值。 它是一个负数,其后7位取反得: 110 1011 。 真值: X=-110 1011+1=-108

补码加减法的规则: [X+Y]补= [X]补+[Y]补;[X-Y]补= [X]补+[-Y]补; 例: 设 [X]补= 00000100, [Y]补= 11110010; 求: [X+Y]补 和 [X-Y]补 解: [X+Y]补= [X]补+[Y]补= 00000100 + 11110010 =11110110 (-10的补码) [X-Y]补= [X]补+[-Y]补= 00000100 + 00001110 =00010010 (18的补码) 验证: 由 [X]补 和 [Y]补,求得 X=4,Y=-14 结果正确

附: 原码、反码、补码的关系 [X]原= [X]反= [X]补 当X为正数时: 当X为负数时: [X]补= [X]反+ 1 [[X]补]补= [X]原 [[X]反]反= [X]原

4 有符号数与无符号数 计算机中字长是一定的,因此在表示有符号数与无符号数时,数值范围是有区别的。 4 有符号数与无符号数 计算机中字长是一定的,因此在表示有符号数与无符号数时,数值范围是有区别的。 对无符号数,则机器字长的所有位都参与表示数值。 对有符号数,则要留出机器字长的最高位作为符号位,其余表示数值。

例如:对于一个8位二进制数据的表示。 当它为无符号数时,表示格式如图1-3,其表示范围为0~255; 当它为有符号数时,表示格式如图1-4所示,其表示范围为-128~+127 (负数用补码表示)。 在计算机中,地址码的运算和逻辑数的运算都可看做无符号数。

5 定点与浮点表示 在计算机中,对小数点的处理有两种方法:定点数和浮点。 1)定点数: 5 定点与浮点表示 在计算机中,对小数点的处理有两种方法:定点数和浮点。 1)定点数: (1)是指小数点固定在符号位之后。如1.1010111;机器中的所有数均为小数。 (2)小数点固定在最低位之后,如11010111;机器中所有数均为整数。

2)浮点数: 浮点数由阶码和尾数两部份组成。对任意一个带符号的二进制数N的一般形式可表示为: S:二进制小数,称尾数(尾符包括在内); J:数的阶码,二进制整数表示(阶符包括在内); 2:阶码的底

阶码和尾数的符号同样用“0”表正,“1”表负 例:一个浮点数-0. 101011010 ×2-00010的表示格式 阶码位数表机器表示的数的范围 尾数位数越多,精度越高 阶符 尾符 阶码和尾数的符号同样用“0”表正,“1”表负 阶码的正负实际上指出了数的小数点的实际位置。正移n位;负移n位。 尾数的正负表示整个数N的正负。如,3位数的阶码范围为:2-7~ 2+7

只要移动浮点数的小数点,改变阶码,即可实现对数的规格化 3)规格化数与“溢出” 为提高浮点数的表示精度,数采用规格化表示法 规格化数:如果尾数的第一位有效数字是1,该数即为规格化数。例如: 1.1010111,0.1010001,0.1000000 当1/2<S<1时为已规格化的数 只要移动浮点数的小数点,改变阶码,即可实现对数的规格化 非规格化数:当尾数的第一位有效数字是0,该数即为非规格化数。例如: 1.0100000,0.0111111,0.0111111

溢出:当超出机器可能表示的范围时,称为“溢出”。 下溢: 对规格化的浮点数,若阶码超出机器所能表示的最小数时,称为下溢,此时机器将把此数作零处理; 上溢: 对规格化的浮点数,若阶码超出机器所能表示的最大的绝对值时,称为上溢,机器将停止运算,进行处理;

6 数的编码方法 计算机采用的是二进制数,因此,在计算机中表示的数、字母、符号等都以特定的二进制码来表示。 6 数的编码方法 计算机采用的是二进制数,因此,在计算机中表示的数、字母、符号等都以特定的二进制码来表示。 二进制编码:以若干位二进制位的不同组合来表示一组数、字母和字符的方法。

1. BCD码:是以4位二进制数编码的不同组合来表示十进制数0~9。 常用的BCD码是8421BCD码,即每位十进制数码用4位二进制数来表示。4位二进制数从高到低的权值分别为:23 、 22 、 21 、 20 ,即8421。又因为它们与二进制数位权一样,故又称为自然的BCD码。 BCD码与十进制数0~9的对应关系 十进制 1 2 3 4 5 6 7 8 9 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 剩余的6个二进制编码1010~1111为非法码

BCD码在计算机中的两种存储格式:组合型和拆开型 例:56D的两种 BCD码表示 组合型(压縮型): 01010110 拆开型(非压縮型):00000101 00000110 BCD码主要用于十进制数的运算、二进制数与十进制数之间的转换。

2. ASCII码:是又称美国信息交换标准码 (American Standard Code for Information Interchange) ,是7位二进制编码。它总共可表示128个符号,包括26个英文大写字母, 26个英文小写字母,0~9共十个数字,32个通用控制字符和34个专用字符。 ASCII码字符编码见教材P.4 . 表中,行表示字符的低4位二进制编码,列表示字符的高3位二进制编码。在计算机中用一个字节存放字符编码,故在ASCII的最高位补0。因此ASCII可表示8位二进制或两位16进制数。 例如,字母B可表示为:01000010或42H

3. 汉字编码:1981年公布的国家标准《信息交换用汉字编码》(GB2312-80)规定了汉字的编码,即国际码。 共收录汉字6763个,其中一级汉字3775个,二级汉字3008个,700多个西文字母、数字和图形符号。 国际码中规定,每个汉字由两个字节的编码表示,每个字节用7位二进制码,最高位为0。编码格式如图所示。 b7 b6 b5 b4 b3 b2 b1 b0 X 例如,字符“大”的国际码为:00110100 01110011

为了使汉字编码和常用的ASCII码相区别,汉字编码在机器内的表示与国际码不同,形成汉字内码。通常内码是由国际码的两个字节最高位置“1”构成。 b7 b6 b5 b4 b3 b2 b1 b0 1 X 例如,字符“大”的国际码为:00110100 01110011 内码为:10110100 11110011

1.2 二进制数的算术运算 计算机把机器数均当作无符号数进行运算,即符号位也参与运算,运算的结果要根据运算结果的符号,运算有无进(借)位和溢出等来判别。计算机中设置有这些标志位,标志位的值由运算结果自动设定。

无符号数实际上是指参加运算的数均为正数,且整个数位全部用于表示数值。N位无符号二进制数的范围为:0~(2n-1) 1. 无符号数的运算 无符号数实际上是指参加运算的数均为正数,且整个数位全部用于表示数值。N位无符号二进制数的范围为:0~(2n-1) 1) 两个无符号数相加,由于两个加数均为正数,因此,其和也是正数。当和超过其位数所允许的范围时,就向更高位进位。如: 127+160 = 7FH + 0A0H 0111 1111 + 1010 0000 1 0001 1111 = 11FH =256 +16+15 =287 为了区分数字和符号,大写字母开头的十六进制数,前面应添加1个0

1) 两个无符号数相减,被减数大于或等于减数,无借位,结果为正;被减数小于减数,有借位,结果为负。如: 192 -10 = 0C0H - 0AH 1100 0000 -0000 1010 1011 0110 = 0B6H =176 +6 =182

反过来相减,即: 10 -192 = 0AH - 0C0H 0000 1010 - 1100 0000 1 0100 1010 = -10110110B =-0B6H =- 182 由此可见,对无符号数进行减法运算,其结果的符号用进位来判别:CF=0 (无借位),结果为正; CF=1 (有借位),结果为负。

若把结果9BH视为无符号数,为155,结果正确。若将结果视为符号数,其符号位为1,结果为-101,这显然是错误的。 1. 符号数的加减运算 n位二进制数,除去一位符号位,还有n-1位表示数值,所能表示的补码的范围为:- 2n-1 ~(2n-1-1)。如果运算结果超过此范围就会产生溢出。如: 105+50 =69H +32H 0110 1001 + 0011 0010 1001 1011 = 9BH =155 或 =-65H=-101 取反加1(还原), 0110 0101 若把结果9BH视为无符号数,为155,结果正确。若将结果视为符号数,其符号位为1,结果为-101,这显然是错误的。

上述视结果为符号数产生错误的原因为:和数155大于8位符号数所能表示的最大值127,使数值部分占据了符号位的位置,从而导致结果出错(采用补码相加)。 例,两负数相加: -105 -50 = -155 1001 0111 +1100 1110 1 0110 0101 = -1001 1011B =-155 取补相加 进位,视作符号位 取补 两负数相加,和应为负数,而结果0110 0101B为正数,显然错误。原因为:和数-155小于8位符号数所能表示的最小值-128,产生了溢出。应将最高位0看作数值位,将进位看作符号位。

小结:应注意溢出与进位及补码运算中的进位丢失间的区别: (1) 进位和借位是指无符号数运算结果的最高位向更高位进位或借位,通常多位二进制数将其拆成二部分或三部分或更多部分进行运算时,数的低位部分均为无符号数,只有最高部分数才为符号数。由此可知: 进位主要用于无符号数的运算,这与溢出主要用于符号数的运算是有区别的。

(2)溢出与补码运算中的进位丢失也应加以区别。 例,两负数相加: -50 -5 = -55 1100 1110 +1111 1011 1 1100 1001 = -0011 0111B =-55 取补相加 无溢出,进位丢失 取补 两负数相加,结果为负数正确。这里虽然出现了补码运算中的进位,但由于和数并没有超出8位二进制数-128~127的范围,因此无溢出,应将进位位丢失,最高位作为符号位。

设符号位向进位位的进位为CY,数值部分向符号位的进位为CS ,则溢出: 2. 判别溢出与进位的方法: 设符号位向进位位的进位为CY,数值部分向符号位的进位为CS ,则溢出: O = CY CS O=1,有溢出; O=0,无溢出; 105+50 -105-50 -50-5 0110 1001 +0011 0010 1001 1011 1100 1110 +1001 0111 1 0110 0101 1100 1110 +1111 1011 1 1100 1001 CY =1, CS =0,有溢出 CY =1, CS =0,无溢出 CY =0, CS =1,有溢出 O = 0 1=1 O = 1 0=1 O = 1 1=0

3. 乘除运算 实现乘除运算,一般有两种方法。一种是用程序来实现,另一种是采用硬件直接完成(即由执行乘、除法指令实现)。但二者原理一致。 乘除运算一般采用原码。在乘除运算中,由于同号相乘(除)为正,异号相乘(除)为负,因此,在计算机中采用二进制的按位加便可确定乘积(或商)的符号。 被乘(除)数符号 乘(除)数符号 积(商)的符号 1 0 0=0 1 0=1 0 1=1 1 1=0

(1). 乘法运算 例: X=0 1101, Y=0 1011,X*Y数值部分算法为: 1101 ×1011 0000 10001111 该算式从乘数的高位往低位乘,乘数Yi的每一位只可能为0和1,当Yi=0,则各位为0;当Yi=1,乘积为1101。各位乘完后,将所有积对齐相加,即可得乘积。

该算式从从低位往高位乘,各位乘完后,将所有积对齐相加,即可得乘积。与十进制乘法过程类似。 也可以从低位往高位算。 例: X=0 1101, Y=0 1011,X*Y: 1101 × 1011 1011 0000 10001111 该算式从从低位往高位乘,各位乘完后,将所有积对齐相加,即可得乘积。与十进制乘法过程类似。 但上述算法不便于机器运算。 01101(+13)*01011(+11)=1000,1111(143)

例: X=0 1101, Y=0 1011,X*Y部分积左移、右对齐算法: × 1011 0000 部分积初值 + 1101 1101 部分积 11010 部分积左移 0000 11010 部分积 110100 部分积左移 1110101 部分积 10000010 部分积左移 10001111 机器实际运算中,一次只能两个数相加。因此,必须记忆中间结果,即,一次只能根据乘数的当前位与被乘数相乘,其积与中间结果相加。这里,称中间结果为部分积。以乘数高位起作乘法为例: 例: X=0 1101, Y=0 1011,X*Y部分积左移、右对齐算法: 01101(+13)*01011(+11)=1000,1111(143)

上述过程归纳后,可作为机器的运算步骤: (1) 乘数左移一位,从高到低判断乘数Yi是1还是0; (2) 部分积(初值为0)左移一位; (3) 部分积加上新的乘积。 当Yi =1时,部分积被加上被乘数;当Yi =0时,部分积被加上0。 (4) 重复上述规律,即移位、按位加,直到乘数的各位都乘过为止。对应n位的两数相乘,则重复n次运算,最后的部分积即为结果。

同理,可得出乘数从最低位开始的乘法运算的步骤: (1) 乘数右移一位,从低到高判断乘数Yi是1还是0; (2) 部分积(初值为0)加上新的乘积。当Yi =1时,部分积被加上被乘数;当Yi =0时,部分积被加上0。 (3) 部分积右移一位。 (4) 重复上述规律,即移位、按位加,直到乘数的各位都乘过为止。对应n位的两数相乘,则重复n次运算,最后的部分积即为结果。

从该算式的运算过程可见,二进制除法与十进制的除法类似。 (1). 除法运算 例: X=0 100011, Y=0 101,X÷Y的算法为: 000111 101 100011 - 101 0111 - 101 101 - 101 从该算式的运算过程可见,二进制除法与十进制的除法类似。

计算机实现的除法运算步骤为: (1) 余数(开始为被除数)左移一位; (2) 若余数>除数,则商1,且余数-除数=新余数; 若余数<除数,则商0,且余数=新余数; (3) 重复上述规律,每次进行移位、比较、上商,对应两个n位的数相除,则重复进行n次运算。

1.3 二进制数的逻辑运算 计算机除了可进行基本的算术运算外,还可对两个或一个无符号二进制数进行逻辑运算。计算机中的逻辑运算,主要是指“逻辑非”、“逻辑乘”、“逻辑加”和“逻辑异或”等四种基本运算。

1. 逻辑非 也称“求反”。对某二进制数进行逻辑非运算,即按位求反,常用变量上方加一横来表示。 例:A=0110 0001, B=1100 1011, 求 、 解: = 1001 1110, = 0011 0100 实现逻辑非运算的电路称为非门,又称反相器。它只有一个输入和一个输出,其国标符和国外符如图所示:

2. 逻辑乘 对两个二进制数进行逻辑乘运算,即按位求与,常用记号 或 表示。其运算规则为: 例:A=0110 0001, B=1100 1011, 求 解: = 0100 0001 实现逻辑乘运算的电路称为与门,其国标符和国外符如图所示:

3. 逻辑加 对两个二进制数进行逻辑加,即按位求 “或”,常用记号 或 表示。其运算规则为: 例:A=0110 0001, B=1100 1011, 求 解: = 1110 1011 实现逻辑加运算的电路称为或门,其国标符和国外符如图所示:

对两个二进制数进行逻辑异或,即按位求 它们的模2和,常用记号 表示。其运算规则为: 4. 逻辑异或 模2加,不考虑进位 对两个二进制数进行逻辑异或,即按位求 它们的模2和,常用记号 表示。其运算规则为: 例:A=0110 0001, B=1100 1011, 求 解: = 1010 1010 实现逻辑异或运算的电路称为异或门,其国标符和国外符如图所示:

1.4 微型计算机的发展概述 微型计算机的发展 微型计算机软件的发展 微型计算机的特点

1. 微型计算机的发展 微型计算机自20世纪70年代问世以来伴随着微电子学的 发展,按CPU的字长和功能划分,它大致经历了5代演变: 第一代(1971-1973):4位和8位低档微机,以INTEL公司的4004微处理器组成的微机为代表。

第二代(1974-1978): 8位中档微机,以INTEL公司的8080、8085,Motorola公司的MC 6800, Zilog公司的Z80微处理器组成的微机为代表。

第四代(1985-1992): 32位微机。典型产品如80386、80486、MC68020 CPU组成的微型计算机。 第五代(1993年以来):以Intel公司推出的64位微处理器芯片Pentium为代表。它采用了全新的体系架构,性能大大高于80x86系列CPU和其他微处理器,由它组成的微型计算机的性能也大大提高。

微型计算机软件的发展 50年代:汇编语言 1957年:FORTRAN语言,使用公式解决数学问题;稍晚类似功能的ALGOL语言 COBOL语言:面向商业计算机的算法语言 BASIC、C、C/C++、Pascal等,用于教学、游戏和控制等 软件系统中,以操作系统为例:DOS1.0~6.2、MS Windows的Windows 3.1/ 98/ NT/ 2000/ XP

3. 微型计算机的特点 功能强 可靠性高 价格低 适应性强 体积小、重量轻、耗电省 维护方便

本章作业 P36 2,5,6,9,10,11