




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 运算方法和运算器 课程名称:计算机组成原理 授课教师:王铁军 电子邮箱:本章内容本章内容 计算机中的信息表示 运算方法 定点加减法 溢出判断 定点乘法 定点除法 浮点四则运算 算术、逻辑运算部件1、计算机中信息的表示 进位计数制 带符号数表示 数的定点和浮点表示 字符和字符串表示 汉字存放 指令信息的表示1. 进位计数制a) 数码数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为数码。 基:数制所使用的数码的个数。 权:某数制各位所具有的值。(相邻两位权值之比等于基数)b) 计算机中常用的进位制计算机中常用的进位制 二进制(B)每个数位仅允许取0或1两种值,逢2进位,借1当2
2、,基数为2。 八进制(O)所使用的数码是8个:0,1.7,逢8进位,借1当8,基数为8,各位的权是以8为底的幂。1. 进位计数制(续)b) 计算机中常用的进位计算机中常用的进位制(续)制(续) 十六进制(H)基为16,所用数码为0-9,A-F,共16个,逢16进位,借1当16,各位的权是以16为底的幂。 十进制(D) 二十进制为了解决二进制和十进制之间的转换问题,引入了二十进制,即用四位二进制数表示一位十进制数。对二十进制的运算可先按二进制数运算,如果每位和小于等于9,不必修正;如果和大于9,则作 “加六修正”。1. 进位计数制(续)c)各种进位制之间的相互转换(续)各种进位制之间的相互转换(
3、续) 十进制和R进制之间的转换 R进制到十进制:an .a1a0.a -1.a -m (r) = ar n + + ar1 + ar0 +ar -1+.ar -m 例如:例如:10101(B)101.11(B)101(O)101A(H)= 1 24 + 0 23 + 1 22 + 0 21 + 1 20 = 24 + 22 + 1 = 21= 22 + 1 + 2-1 + 2-2 = 5.75= 82 + 1 = 65= 163 + 16 + 10 = 41061. 进位计数制(续)c)各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 十进制和R进制之间的转换 十进制到R进制: 整
4、数部分:除以除以 r取余数,直到商为取余数,直到商为0,余数从右到左排,余数从右到左排列列 小数部分:乘以乘以 r取整数,整数从左到右排取整数,整数从左到右排列列例例如如: :将一个十进制整数108.375转换为二进制整数。 1. 进位计数制(续)c) 各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 十进制整数转换成八进制整数的方法:除8取余法。 十进制整数转换成十六进制整数的方法:除16取余法。例如例如:将十进数108转换为八进制整数和十六进制整数的演算过程分别如图(a)和图(b)所示。1. 进位计数制(续)c)各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 二进
5、制数与八进制数之间的转换 二进制数转换成八进制数二进制数转换成八进制数的方法是:将二进制数从小数点开始,整数部分从右向左3位一组,小数部分从左向右3位一组,若不足三位用0补足即可。例例如如: : 将1100101110.1101 (B)转换为八进制数1. 进位计数制(续)c)各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 二进制数与八进制数之间的转换 八进制数转换成二进制数以小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代,然后将其连在一起即可。若中间位不足3位在前面用0补足。例如例如:将3216.43转换为二进制数(3216.43)811010001110.1000
6、11B1. 进位计数制(续)c) 各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 二进制数与十六进制数之间的转换 二进制数转换成十六进制数从小数点开始,整数部分从右向左4位一组;小数部分从左向右4位一组,不足四位用0补足,每组对应一位十六进制数即可得到十六进制数。例例如:如:将二进制数1101101110.110101B转换为十六进制数1101101110.110101B1101101110.110101B36E.D4 H36E.D4 H1. 进位计数制(续)c) 各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 二进制数与十六进制数之间的转换 十六进制数转换成二进制
7、数以小数点为界,向左或向右每一位十六进制数用相应的四位二进制数取代,然后将其连在一起即可。36E.D4H 36E.D4H 1101101110.110101B1101101110.110101B1. 进位计数制(续)c)各种进位制之间的相互转各种进位制之间的相互转换换(续)(续) 八进制数与十六进制数之间的相互转换八进制数与十六进制数之间的转换,一般通过二进制数作为桥梁,即先将八进制或十六进制数转换为二进制数,再将二进制数转换成十六进制数或八进制数。 2. 带符号数的表示真值:用正负号加绝对值表示的数值。机器数:在计算机内部,连同数符一起数码化的数。a) 原原码表示法码表示法让数码序列的最高位
8、为符号位,符号位为0表示该数为正,为1表示该数为负。定义如下:1)定点小数的原码序列为X0.X1X2XnX原 =X 0 X 11 X = 1 + |X| -1 X 02. 带符号数的表示(续)a) 原码表示原码表示法法(续)(续)2)定点整数的原码序列为XnXn-1 X1X03)结论: 真值0有+0和-0之分。 对于小数原码,表示范围-1 X 1 对于整数原码,表示范围- 2n X 2n 符号位不是数值的一部分,是人为地约定“0正1负”X原 =X 0 X 2n2n X = 2n + |X| - 2n X 0方便进行乘除运算不适合进行加减运算2. 带符号数的表示(续)b) 补补码表示法码表示法1
9、)补码定义统一定义为: X补 = M + X (mod M)正数模舍去,负数模减去真值的绝对值。2)定点小数补码序列为X0.X1X2Xn ,则定义为:X补=X 0 X 12 + X = 2 - |X| -1 X 0例: x = -0.1011 x补 = 10 + x = 10.0000 - 0.1011 = 1.0101y = -0.01111y补= 10 + y = 10.00000 - 0.01111 = 1.100012. 带符号数的表示(续)b) 补码表示法(续)补码表示法(续)3)定点整数序列XnXn-1 X1X0 ,则定义为:4)由真值、原码转换为补码正数补码表示与原码相同,负数原
10、码转换为补码方法有二:n “变反加1”符号位保持为1不变,其余各位先变反,然后在末位加1。n 符号位保持为1不变,尾数部分自低位向高位,第一个1及其以前的各低位0都保持不变,以后的各位则按位变反。X补 =X 0 X 2n2n+1 + X = 2n+1 - |X| - 2n X 02. 带符号数的表示(续)b) 补码表示法(续)补码表示法(续)例:求下列值对应8位字长的补码。若X = 0.1011若X = -0.1011若X = 1011若X = -10115)由补码表示转换为原码与真值对于正数: X原 = X补对于负数:X原 = X补补6)已知X补求-X补对于X补连同符号位一起各位变反末尾加1
11、X补 = 0.101 1000X补 = 1.010 1000X补 = 0000 1011X补 = 1111 01012. 带符号数的表示(续)b)补码表示补码表示法法(续)(续) 讨论: 补码最高位作为符号位,“0正1负”,但补码的符号位是数值的一部分。 补码表示中,数值0只有一种表示。 负数补码的表示范围比原码稍宽一些,即多一种组合。 补码可实现化减为加。2. 带符号数的表示(续)c) 反码表示法反码表示法正数的反码表示与原码相同;负数反码的符号位为1,尾数由原码尾数逐位变反。定点小数反码序列为X0.X1X2Xn ,则定义为:定点整数的反码序列XnXn-1 X1X0 ,则定义为:X反 =X
12、0 X 2n(2n+1-1) + X - 2n X 0X反 =X 0 X 1(2 - 2-n) + X -1 X 0 2. 带符号数的表示(续)d) 移移码(增码)码(增码) 移码是符号位取反的补码,一般用做浮点数的阶码。 设定点整数移码序列为Xm X2X1X0,则定义为: x移 = 2m + X -2m X 2m 结论: 最高位为符号位,1正0负 零的移码是唯一的1000000,除符号位外,移码各位与补码同 用移码表示便于比较数的大小,移码大真值就大,移码小真值就小将十进制真值将十进制真值(-127,-1,0,+1,+127)列表表示列表表示成二进制数及原码、反码、补码、移码值。成二进制数及
13、原码、反码、补码、移码值。真值真值x(十进制)(十进制)真值真值x(二进制)(二进制)x原原x反反x补补x移移-127- 0111 11111111 11111000 00001000 00010000 0001-1- 0000 00011000 00011111 11101111 11110111 111101000 00001111 1111 0000 00000000 00001000 00000000 00000000 0000+1+ 0000 00010000 00010000 00010000 00011000 0001+127+ 0111 11110111 11110111 11
14、110111 11111111 11113. 数的定点表示与浮点表示a) 定定点表示法点表示法在计算机中小数点的位置固定不变的数叫做定定点数点数。1)无符号定点整数 略去符号位的正整数,小数点位于最低位之后,实际是不存在的。 若无符号定点整数的代码序列为XnXn- 1 X1X0,则有: 最大整数 2n+1 1 11111 最小非零正数 1 00001 表示范围 0 2n+1 1 分辨率13. 数的定点表示与浮点表示(续)a) 定点表示定点表示法(续)法(续)2)带符号定点整数 原码定点整数表示范围: -(2n 1) (2n 1) 补码定点整数表示范围: - 2n (2n 1) 分辨率均为13)
15、带符号定点小数 原码定点小数表示范围: - (1 2n ) (1 2n) 补码定点小数表示范围: - 1 (1 2n) 分辨率均为: 2-n以定点整数为以定点整数为例例,用用数轴形式说明原码、反数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。码、补码表示范围和可能的数码组合情况。 -10+1- (2n-1)100011100000 00010111+ (2n-1)-10+1- (2n-1)10011111000000010111+ (2n-1)- 2n1000-10+1- (2n-1)111110010000 00010111+ (2n-1)1111原码原码反反码码补补码码1000例
16、:例:设设机器字长机器字长16位位,定点表示定点表示,尾数尾数15位位,数符数符1位位,问问:(1)定点原码整数表示时定点原码整数表示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(2)定点原码小数表示时定点原码小数表示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(1)定点原码整数表示最大正数值(215 1)10(+32767)10最小负数值-(215 1)10(-32767)10(2)定点原码小数表示 最大正数值(1 2-15)10(+0.111.11)2最小负数值-(1 2-15)10(-0.111.11)23. 数的定点表示与浮点表示(续)b) 浮浮
17、点表示法点表示法1)浮点数的格式N = RE MN为真值,RE为比例因子,M为尾数E为正,尾数M扩大若干倍,E为负,尾数M缩小若干倍;R是阶码的底,与尾数的基相同。MnM2M1MfEmE2E1Ef阶码E阶符数符尾数M3. 数的定点表示与浮点表示(续)c) IEEE 754标标准准 标准规定了单精度(32)和双精度(64)的基本格式 标准中,尾数用原原码码,指数用类似移码移码的形式3. 数的定点表示与浮点表示(续)c) IEEE 754标标准(续)准(续)基数R = 2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数, 23
18、位,在低位部分,采用纯小数表示,最高位始终为1。3. 数的定点表示与浮点表示(续)c) IEEE 754标标准(续)准(续)E是阶码,8位,采用类似移码的形式表示。此时,可方便比较大小。规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。 若阶码在0和28-1之间,则尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边。 采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E = e + 127。3. 数的定点表示与浮点表示(续)c) IEEE 754标准(续标准(续) 64位的浮点数
19、中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。 因此规格化的64位浮点数x的真值为: x = (-1)S(1.M)2E1023其中,e = E 1023 一个规格化的32位浮点数x的真值表示为: x = (-1)S(1.M)2E127 其中,e = E 1273. 数的定点表示与浮点表示(续)c) IEEE 754标准(续)标准(续) 真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分。 真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+和-之分。3. 数的定点表示与浮点表示(续)c) IEEE 754标
20、准(续)标准(续) 这样在32位浮点数表示中,要除去E用全0和全1(255 D)表示零和无穷大的特殊情况,指数的偏移值选127(01111111)。对于规格化浮点数,E的范围变为0到255,真正的指数值e则为-127到+128。因此32位浮点数表示的绝对值的范围是10-381038。 浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。3. 数的定点表示与浮点表示(续)c) IEEE 754标准(续)标准(续)浮点数表示范围如下图所浮点数表示范围如
21、下图所示示:上溢上溢 阶码阶码 最大阶码最大阶码下溢下溢 阶码阶码 最小阶码最小阶码 按按 机器零机器零 处理处理3. 数的定点表示与浮点表示(续)c) IEEE 754标准(续)标准(续)例1 若浮点数x按754标准存储格式为(41360000)16,求其浮点数 的十进制数值。解:将16进制数展开后,可得二制数格式为: 0 100 00010 011 0110 0000 0000 0000 0000 S 阶码(8位) 尾数(23位)指数e = 阶码 127=10000010 01111111 = 00000011 = (3)10包括隐藏位1的尾数1.M = 1.011 0110 0000 0
22、000 0000 0000 = 1.011011于是有x = (-1)S1.M2e = +(1.011011)23 = +1011.011 = (11.375)103. 数的定点表示与浮点表示(续)c) IEEE 754标准(续)标准(续)例2 将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先,分别将整数和分数部分转换成二进制数:20.59375 = 10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011 = 1.010010011 24 有e = 4,于是得到: S = 0, E = 4 + 127 = 131, M = 01
23、0010011 最后得到32位浮点数的二进制存储格式为:0 10000011 01001001100000000000000 = (41A4C000)163. 数的定点表示与浮点表示(续)c) IEEE 754标准(续)标准(续)例3 假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为(非IEEE754标准): x (1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?(1)最大正数0 1111 1111 111 1111 1111 1111 1111 1111 , x 1(12-23)2127(2)最小正数 000
24、000 000000 000 000 000 000 000 000 00, x 1.02128(3)最小负数111 111 111111 111 111 111 111 111 111 11, x 1(1223)2127(4)最大负数100 000 000000 000 000 000 000 000 000 00, x 1.02128 m+1位整数,表示范围:n+1位小数(规格化尾数)最大正小数: 最小正小数: 绝对值最大负小数: 绝对值最小负小数: 典型值典型值浮点数代码浮点数代码真值真值最小正数最小正数最大最大负负数数最大正数最大正数最小最小负负数数2122m2122m 2121 2m
25、n2121m 1000.1001.1001000110.11.1011 1.000从-2m到2m-11-2-n2-1-1-2-1作作业业1:若若浮点数的格式如下,阶码部分浮点数的格式如下,阶码部分m + 1位,位,含一位阶符,补码表示,以含一位阶符,补码表示,以2为底;尾数为底;尾数部分部分n+1位,含一位数符,补码表示规格位,含一位数符,补码表示规格化,求其典型值化,求其典型值(最小的正数、负数,最最小的正数、负数,最大的大的正数、正数、负数负数)。MnM2M1MfEmE2E1Ef阶码E阶符数符尾数M4. 字符和字符串的表示 符号数据:字符信息用数据表示,如ASCII等; 字符表示方法ASC
26、II:用一个字节来表示,低7位用来编码(128),最高位为校验位。 常用字符有128个,编码从0到127。 空格 20H32 09 30H39H 4857 AZ 41H5AH 6590 az 61H7AH 97122控制字符:032,127;普通字符:94个 每个字符占一个字节,用7位,最高位为奇偶校验位。5. 汉字的存放 汉字的表示方汉字的表示方法法 输入码区位码 一级(1655)*94 二级(5687)*94 图形符号(682个)(0109)*94拼音、五笔 汉字内码:汉字信息的存储、交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符) 区位码+2020H=国标码,国标
27、码+8080H=机内码5. 汉字的存放(续) 汉字的表示方汉字的表示方法(续)法(续) 汉字字模码:汉字字形 点阵 汉字库6. 指令信息的表示指令:指示计算机执行某类操作的信息的集合。本节主要讨论:一般指令格式 常用寻址方式 面向用户指令类型一、指令格式指令基本格式操作码 地址码 D一个一个或几个1) 指令字长定长指令格式变长指令格式便于控制合理利用存储空间2) 地址结构指令中提供的地址数存储单元地址码寄存器编号(1)指令提供地址的方式 显地址方式 隐地址方式:指令中明显指明地址。:地址隐含约定,不出现在指令中。直接或间接给出(2) 地址结构的简化操作数地址l 四地址结构指令 格式:使用隐地址
28、可以减少指令中的地址数,简化地址结构。 D1 D2 D3 D4结果地址下条指令地址功能:(D1)(D2) D3(D4) 下条指令用指令计数器PC指示指令地址l 三地址结构指令格式:操作数地址 D1 D2 D3 结果地址下条指令地址功能:转移时,用转移地址修改PC内容。(D1)(D2) D3(PC) + 1 PC源/目的l 二地址结构指令格式: D1 D2 目的/源功能: (D1)(D2) D2/D1(PC) + 1 PC双操作数:l 一地址结构指令格式: D1 隐含约定单操作数:功能:l 零地址结构指令格式:(D1)(A) A(PC) + 1 PC(D1) D1(PC) + 1 PC 功能:用
29、于堆栈或特殊指令操作。例.ADD;执行前:低SP102046SP3046执行后:高低高(1) 定长操作码各指令的位置、位数固定相同。(2)扩展操作码各指令的位置、位数不固定,根据需要变化。3) 操作码结构关键在设置扩展标志。(3)复合型操作码操作码分为几部分,每部分表示一种操作。例.某机算逻指令0 1 2 3 4 5 6 7 8 15基本操作 进位 移位 回送 判跳 操作数例例. 指令字长指令字长16位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位位。操作码 地址码 15 12 11 8 7 4 3 00000 X Y Z 1110 X Y Z.
30、1111 0000 Y Z 1111 1110 Y Z.三地址指令 15条二地址指令 15条1111 1111 0000 Z 1111 1111 1110 Z.一地址指令 15条1111 1111 1111 0000 1111 1111 1111 1111.零地址指令 16条4) 指指令字长令字长CISCCISC化化RISCRISC化化:从增强指令系统功能出发从增强指令系统功能出发,指令功能复杂。指令功能复杂。:从提高指令执行效率出发从提高指令执行效率出发,指令功能简单。指令功能简单。CISC(Complex Instruction Set Computer):复杂指令复杂指令集计算机集计算机
31、RISC(Reduced Instruction Set Computer):精简指令精简指令集计算机集计算机大规模集成电路技术的迅速发展,使计算机系统中的硬件成本不断下降。此时可在指令系统中增加更多的指令和复杂指令,以适应不同应用领域的需要。CISCCISC化化另外,为了维护系列机的软件兼容性,也使指令系统变得越来越庞大。微程序控制微程序控制RISCRISC化化通过简化指令使计算机的结构更简单合理,从而提高处理速度。其主要途径是减少指令的执行周期数。组合逻辑控制组合逻辑控制二、寻址方式是指寻找操作数地址或操作数的方式。操作码 立即数S(1) 立即寻址指令直接给出操作数。1) 常见寻址方式定长
32、格式:变长格式:基本指令 立即数S数在指令中,其长度固定、有限。数在基本指令之后,其长度可变。用来提供常数、设置初值等。操作码 有效地址D (2) 直接寻址指令直接给出操作数地址。存储单元号寄存器号(数在M中)(数在R中) 存储器直接寻址(直接寻址)定长格式D的位数有限,限制访存范围变长格式 基本指令 DL DHD的位数可覆盖整个存储空间S =(D)操作码 寄存器号R 存储单元号寄存器号(数在M中)(数在M中)寄存器直接寻址(寄存器寻址)格式R所占位数少;访问R比访问M快格式S =(R)用于访问固定的存储单元或寄存器。(3)间接寻址指令给出操作数的间接地址。存储器间址操作码 间接地址D D=0
33、0300060.0060 S.S =(D) M间址单元地址指针操作码 寄存器号R 寄存器间址格式R所占位数少;R可提供全字长地址码;修改R内容比修改M内容快。格式S =(R)指针不变(由指令指定),指针内容可变,使同一指令可指向不同存储单元,以实现程序的循环、共享,并提供转移地址。堆栈寻址操作码 堆栈指针SP SP. S.S =(SP) MR=02 M00400040 S. .地址指针0070.栈顶格式SP既可出现在指令中,也可隐含约定。变址寻址(4)变址、基址寻址及其变化SP栈顶 M S.低高堆栈向上生成压栈:SP自动减1,再存数。-(SP),自减型间址。先取数,SP再自动加1。(SP)+,
34、自增型间址。出栈:指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。操作码 RX D D的位数有限,若不能提供全字长地址码,会使访存空间受到限制。变址寄存器号例. 用变址方式访问一组连续区间内的数组元素。S =(RX)+ D)D=首址D为存储区首址;(RX)为所访单元距离首址的长度;RX初值为0,每访问一个单元,(RX)+1。格式操作码 RX D 形式地址修改量基准地址n-1.012.D+1D+2D+n-1 .格式(D的位数只需覆盖一个较小的存储区间)基址寻址基址寄存器号Rb 4K指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。操作码 Rb D 位移量S
35、=(Rb)+ D)基准地址 相对于基址的位移 M.Rb 4K改变Rb的内容,程序能访问存储空间中任何一个定长区间(4K)。便于访问两维数组中某类指定的元素。 4K 4KRb M.RbD=2D=2学生姓名性别性别年龄年龄学生姓名变址与基址的区别:变址:指令提供基准量(不变), R提供修改量(可变);适 于处理一维数组。基址:指令提供位移量(不变), R提供基准量(可变);用 于扩大有限字长指令的访 存空间。S =(RX)+(Rb)+ D)格式基址加变址变址寄存器号指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。位移量操作码 RX Rb D 基址寄存器号便于处理两维数组。格式相
36、对寻址指令给出位移量,PC内容与位移量之和为有效地址。位移量操作码 PC D 或隐含指定S =(PC)+ D)有效地址相对PC上下浮动,给编程带来方便。格式页面寻址指令给出位移量,PC的高位部分与位移量拼接,形成有效地址。位移量操作码 PC D 或隐含指定S =(PC)H,D)例. M为64KB,划分为256页,每页256B。页号页内地址用于页式管理存储系统。寻址速度快,适于组织程序模块,有效利用存储空间。PC0165H7C.017CHS2) 对寻址方式的说明 (1)操作码隐含说明不同寻址方式例.某机指令操作码最高两位00:RR型指令,寄存器-寄存器寻址01:RX型指令,寄存器-变址寻址10:
37、SI型指令,存储器-立即寻址11:SS型指令,存储器-存储器寻址(2)指令中设置专门字段说明寻址方式例.某机指令的每个地址字段中各设置一个3位的寻址方式字段。操作码 寻址方式 R 寻址方式 R 源地址字段目的地址字段3位3位一种单指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址,I、X、D组成该指令的操作数有效地址EA,设R为变址寄存器,(R) = 1000 H,PC为程序计数器,(PC) = 2000 H,D = 100 H,存储器有关数据如下表。指令格式: 有关数据:参照以上信息,请将下列表格填写完整。OP IXD地址地址0080 H 0100 H 0165 H 0181 H
38、 1000 H 1100 H 2100 H数据数据40 H80 H66 H100 H256 H181 H165 H寻址方式寻址方式IX有效地址有效地址EA操作数操作数直接寻址直接寻址000 相对寻址相对寻址001 变址寻址变址寻址010 寄存器直接寻址寄存器直接寻址011 间接寻址间接寻址100 寄存器间接寻址寄存器间接寻址111 EA = DEA = (PC) + DEA = (R) + DEA = REA = (D)EA = (R)80 H165 H181 H1000 H40 H256 H三、指令类型1)传送指令源地址 目的地址数设置时需考虑:(1)规定传送范围例. DJS-100系列:
39、80X86: IBM370:R MR M,R RR M,R R,M M(2)指明传送单位例. 用操作码说明(VAX-11):用地址量说明(80X86):传送次数由计数器控制MOVB 8MOV AX,BX (16)MOVW 16MOVL 32MOV AL,BL (8)MOV EAX,EBX (32)例. 80X86的串传送指令:REP MOVSW(3)设置寻址方式在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。2) 输入/输出指令各种信息主机 外设设置时需考虑:(1)I/O指令的功能扩展如何用通用I/O指令实现对各种具体设备的控制?I/O指令中留有扩展余地指令中某些字
40、段编码事先不定义,需要时再约定其含义。I/O接口中设置控制/状态寄存器用于外设种类、数量不多的场合。(2)主机对外设的寻址方式如何设置控制/状态寄存器是接口设计的关键。寻找I/O接口中的寄存器的方式。主机用输出指令或传送指令将具体设备的控制命令按约定的代码格式送往接口中的控制寄存器,向外设发出命令。外设的状态信息也以某种格式放在接口的状态寄存器中,主机用输入指令或传送指令从状态寄存器中取出有关信息进行查询、分析。I/O端口寻找I/O接口中的寄存器的方式。如何为I/O端口分配地址?单独编址I/O地址空间不占主存空间,可与主存空间重叠。=1 访问存储器=0 访问I/O端口需设置标志区分访问对象,如
41、编址到寄存器:为每个寄存器(I/O端口)分配独 立的端口地址; I/O指令中给出端口地址。M/IO统一编址I/O端口占据部分主存空间。常将存储空间的低端分配给主存单元,高端分配给I/O端口,以示区分。编址到寄存器设置专用I/O指令针对单独编址,用I/O指令访问I/O端口。指令中说明输入/输出操作,并给出端口地址。 :为每个寄存器(I/O端口)分配总 线地址; 访问外设时,指令中给出总线地址。(3)I/O指令设置方式显式I/O指令例. 80X86I/O指令设置 输入:IN AL,n;端口地址(n) AL(直接端口寻址) IN AL,DX;间接端口地址(DX) AL(间接端口寻址) 输出:OUT
42、n,AL;(AL) n(直接端口寻址) OUT DX,AL;(AL) (DX)(间接端口寻址)主机调用输入机:用传送指令实现I/O操作针对统一编址,用传送指令访问I/O端口。不设专用I/O指令。例. 某机I/O接口中设置控制/状态寄存器CSR,其总线地址为177550(8进制)数据缓冲寄存器DBR,其总线地址为177552隐式I/O指令控制/状态字格式:出错 故障 忙 完成 允许中断 维护 校验 启动15 14 12 7 6 2 1 0启动:测试:取数:主机 177550控制字(启动位为1)传送指令主机 177550 状态字传送指令主机 177552 数据传送指令通过I/O处理机进行I/O操作
43、CPU执行简单I/O指令 (启动、停止、查询、清除)设置时需考虑操作数类型、符号、进制等;运算结束后设置相应状态标志。两级I/O指令(1)算术运算指令I/O处理机执行I/O操作指令 (输入、输出)3)算术逻辑运算指令(2)逻辑运算指令实现对代码位的设置、测试、清除、修改等。与或异或控制程序流程。(1)转移指令4) 程序控制指令(2)转子指令与返回指令转子:操作码 子程序入口无条件转移条件转移循环:操作码 转移地址:操作码 转移地址 转移条件:转移条件为循环计数值返回:操作码 返回地址同一条返回指令应能提供多个不同的返回地址。返回地址的存取:用堆栈存放返回地址。(3)软中断指令程序自陷指令表示不
44、同的功能调用调试程序早期主要用于程序的调试。现在常常用于系统功能调用。以 INT n 的形式出现在程序中。2、运算方法 定点加减法 溢出判断 定点乘法 定点除法 浮点四则运算运算可采用原码原码和补码补码两种方式用补码表示的数进行加减运算,符号位直接参加运算。简化了加减运算方法,化“减”为“加”,实现硬件简单。2.1 定点加减法1. 基本关系式基本关系式 ( X + Y )补补 = X补补 + Y补补 (1) ( X - Y )补补 = X补补 + (-Y)补补 (2)式(式(1):):操作码为操作码为“加加”时,两数直接相加。时,两数直接相加。3) X= 3 Y= 2 X补补=0 0011 Y
45、补补=1 11100 0001(+1补码)补码)2) X= 3 Y= 2 X补补=1 1101 Y补补=1 11101 1011 ( 5补码)补码)1) X=3 Y=2 X补补=0 0011 Y补补=0 00100 0101(+5补码)补码)4) X= 3 Y= 2 X补补=1 1101 Y补补=0 00101 1111(1补码)补码)例例. 求求(X+Y)补补 ( X + Y )补补 = X补补 + Y补补 (1) ( X - Y )补补 = X补补 + (-Y)补补 (2)式(式(2):):操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。 1) X= 4 Y= 5 X补补=0
46、0100 Y补补=1 1011(-Y)补补=0 01010 1001(+9补码)补码)2) X= 4 Y= 5 X补补=1 1100 Y补补=0 0101(-Y)补补=1 10111 0111(9补码)补码)例例. 求求(X Y)补补Y补补 (Y)补补:将将Y Y补补变补变补不管不管Y Y补补为正或负,将其符号连同为正或负,将其符号连同尾数一起各位变反,末位加尾数一起各位变反,末位加1 1。即将减数变补后与被减数相加。即将减数变补后与被减数相加。注意:某数的注意:某数的补码表示补码表示与某数与某数变补变补的区别。的区别。例例. 1 0101. 1 0101原原 1 10111 1011补码表示
47、补码表示1 00111 0011补补 0 11010 1101变补变补 0 0101 0 0101原原 0 01010 0101补码表示补码表示符号位不变;符号位不变;负数尾数改变,负数尾数改变,正数尾数不变。正数尾数不变。0 00110 0011补补 1 11011 1101变补变补符号位改变,符号位改变,尾数改变。尾数改变。补码的机器负数补码的机器负数2. 算法流程算法流程操作数用补码表示,操作数用补码表示,符号位参加运算符号位参加运算结果为补码表示,符结果为补码表示,符号位指示结果正负号位指示结果正负X补补+Y补补X补补+(-Y)补补ADDSUB2.2 溢出判断在什么情况下可能产生溢出?
48、在什么情况下可能产生溢出?例例. .数数A A有有4 4位尾数,位尾数,1 1位符号位符号S SA A 数数B B有有4 4位尾数,位尾数,1 1位符号位符号S SB B 符号位参符号位参加运算加运算 结果符号结果符号S Sf f符号位进位符号位进位C Cf f尾数最高位进位尾数最高位进位C C正确正确0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)A= -3 B= -2-3+(-2):1 1011 1 11011 1110(4)A= -10 B= -7 -
49、10+(-7):0 1111 1 01101 1001(5)A=6 B= -4 6+(-4):0 0010 0 01101 1100(6)A= -6 B=4 -6+4:1 1110 1 10100 0100(2)A=10 B=7 10+7 :0 1010 0 01111 0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 10011. 硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出= = S SA AS SB BS Sf fS SA AS Sf fS SB B2. 硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)一、溢出判
50、断方法一、溢出判断方法正确正确0 00110 0010(1)A=3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 01111 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)A= -3 B= -2-3+(-2):1 1011 1 11011 1110(4)A= -10 B= -7 -10+(-7):0 1111 1 01101 1001(5)A=6 B= -4 6+(-4):0 0010 0 01101 1100(6)A= -6 B=4 -6+4:1 1110 1 10100 0100Cf=0Cf=0C =0C =0Cf=0Cf=0C =1C =1Cf
51、=1Cf=1C =1C =1Cf=1Cf=1C =0C =0Cf=1Cf=1C =1C =1Cf=0Cf=0C =0C =0111111(2)A=10 B=7 10+7 : 0 1010 0 01111 0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 10011. 硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出= = S SA AS SB BS Sf fS SA AS Sf fS SB B2. 硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)溢出溢出= C= Cf f C C3. 硬件判断逻辑三硬件判断逻辑三(双符号位
52、(双符号位)(1)3+2:正确正确00 001100 001000 0101 (2)10+7:00 101000 011101 0001 正溢正溢正确正确负溢负溢正确正确正确正确(3)-3+(-2):11 0111 11 110111 1110(4)-10+(-7):10 1111 11 011011 1001(5)6+(-4):00 0010 00 011011 1100(6)-6+4:11 1110 11 101000 0100第一符号位第一符号位Sf1第二符号位第二符号位Sf2溢出溢出= S= Sf1f1 S Sf2f2(2)A=10 B=7 10+7 : 0 1010 0 01111
53、0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 10011. 硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系)的关系)溢出溢出= = S SA AS SB BS Sf fS SA AS Sf fS SB B2. 硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系)的关系)溢出溢出= C= Cf f C C3. 硬件判断逻辑三硬件判断逻辑三(双符号位(双符号位)逻辑移位逻辑移位 :数码位置变化,没有数值:数码位置变化,没有数值 含义。含义。1. 移位类型移位类型算术移位算术移位 1 0 0 0 1 1 1 1循环左移:循环左移:0 :数码位置变化,数
54、值:数码位置变化,数值变化变化,符号位不变。符号位不变。1 0 0 1 1 1 1 算术左移:算术左移:1 0 0 1 1 1 1 10 1 1 1 1 0 (-15)(-30)二二、移位操作、移位操作(1)单符号位)单符号位 : 0 01110 1110 (2)双符号位:)双符号位:00 1110 00 01112.正数补码移位规则正数补码移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)。位
55、不变)。空位补空位补0(右移时第二符号位移至尾数最高位)。(右移时第二符号位移至尾数最高位)。(1)单符号位)单符号位 : 1 10111 0110 (2)双符号位:)双符号位:10 1100 11 01103.负数补码移位规则负数补码移位规则(3 3)移位规则)移位规则左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 数符不变数符不变(单:符号位不变;双:第一符号(单:符号位不变;双:第一符号位不变)。位不变)。左移空位补左移空位补0(第二符号位移至尾数最高位)。(第二符号位移至尾数最高位)。右移空位补右移空位补11. 0 0舍舍1
56、1入(原码、补码)入(原码、补码)0 00100原原 1 00101原原 1 11011补补 2. 末位恒置末位恒置1 1(原码、补码)(原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0010原原 1 0011原原 1 1110补补 0 0011原原 1 0011原原 1 1101补补 1 0011原原 1 1101补补 例例. 保留保留4位尾数:位尾数: 例例. 保留保留4位尾数:位尾数: 三三、舍入方法、舍入方法2.3 定点乘法运算一、原一、原码一位乘法码一位乘法 每次用一位乘数去乘被乘数。每次用一位乘数去乘被乘数。 1.1.算法分析算法分析乘法乘法 部分积累
57、加、移位。部分积累加、移位。例例. 0.1101 1.1011乘积乘积 P = P = |X| |X| |Y|Y|积符积符 S SP P= S= SX X S SY YX原原Y原原(1 1)手算)手算 0.11010.1101 0.10110.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111上符号:上符号:1.100011111.10001111部分积部分积问题:问题:1 1)加数增多(由乘数位数决定)。)加数增多(由乘数位数决定)。 2 2)加数的位数增多(与被乘数、乘)加数的位数增多(与被乘数、乘 数位数有
58、关)。数位数有关)。改进:将一次相加改为分步累加。改进:将一次相加改为分步累加。(2 2)分步乘法)分步乘法每次将一位乘数所对应的部分积与每次将一位乘数所对应的部分积与原部分积的累加和相加,并移位。原部分积的累加和相加,并移位。设置寄存器:设置寄存器: A A:存放:存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放:存放被乘数被乘数 C C:存放:存放乘数乘数、乘积低位乘积低位 设置初值:设置初值: A = 00.0000A = 00.0000 B = B = |X| |X| = 00.1101= 00.1101 C = C = |Y| |Y| = .1011= .1011 步数
59、步数 条件条件 操作操作 A C A C 00.0000 .101 00.0000 .1011 1 1 1)C Cn n=1=1+B+BC Cn n+ 00.1101+ 00.110100.00.11011101 0.1101 0.1101 0.1010.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.1101 0.1101 0.100.101 11 12 2)C Cn n=1=1+B+B+ 00.1101+ 00.1101
60、0 01 1. .0011001100.00.100110011111.1.10 0 0.1101 0.1101 0.10.10 011113 3)C Cn n=0=0+0+0+ 00.0000+ 00.000000.00.1001100100.00.01000100111111. .1 14 4)C Cn n=1=1+B+B+ 00.1101+ 00.11010 01 1. .0001000100.00.1000100011111111X X原原Y Y原原 = 1.10001111= 1.10001111 2. .算法流程算法流程0 0 A A,X BX B,Y CY C,0 0 CRCRC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气体交换受损的护理目标
- 慢性心功能不全护理常规
- 高效工作汇报方案
- 5S系列知识介绍
- 山东省济宁市兖州区2025年高三年级模拟考试(一)历史试题含解析
- 山东省招远一中2024-2025学年高三第二次模考历史试题理试题含解析
- 浙江工业大学之江学院《异常心理学》2023-2024学年第二学期期末试卷
- 徽商职业学院《食品质量与安专业全综合实验(实验)》2023-2024学年第一学期期末试卷
- 河南省漯河市重点中学2024-2025学年高考生物试题查漏补缺试题(文理)含解析
- 重庆工信职业学院《定向运动》2023-2024学年第二学期期末试卷
- 导游人员管理法律制度课件
- 木箱检验作业指导书
- 初中级档案职称《档案事业概论》档案事业题库一
- 美国地图高清中文版
- 《中国特色社会主义理论与实践研究》课程教学大纲
- 金属监督监理实施细则
- DB13T 1606-2012 粮食作物种子 谷子杂交种
- DB33-T1247-2021《城市河道景观设计标准》
- 正确认识汽车太阳膜课件
- 曲线上梁的平分中矢坐标计算方法解读
- DB4201∕T 646-2021 轨道交通工程运营期结构监测技术规程
评论
0/150
提交评论