第2章 指令:计算机的语言.ppt
《第2章 指令:计算机的语言.ppt》由会员分享,可在线阅读,更多相关《第2章 指令:计算机的语言.ppt(104页珍藏版)》请在麦多课文档分享上搜索。
1、第2章 指令:计算机的语言,计算机中的信息分为:,数值型数据,数据信息,控制信息,非数值型数据,2.1 数据信息的表示方法,数值型数据的完整表示: 采用什么进位计数制(逢几进位) 如何使符号数字化(机器数的编码方法) 如何处理小数点位置(定点表示、浮点表示),2.1.1进位计数制及转换,一. 基本概念 r进制一般的,在r进制下,数,该位数字(0r-1),基数:指该进位制中允许选用的基本数码的个数,权:权的大小是以基数为底,该位数字所在位置的序号为指数的整数次幂。,所代表的数值可以表示为:,例:,2.1.1进位计数制及转换,二. 各种数制之间的转换 1.十进制转换为二进制整数 : 规则:连续“除
2、以2取余,直到商为0” 例1:(116)10 = ( )2,2.1.1进位计数制及转换,例1:(116)10 = ( )2(116)10 = ( 1110100 )2 例2:29D =( )B,11101,2.1.1进位计数制及转换,小数: 规则:连续“乘以2取整,直到小数部分为0” 例1: 0.8125D =( )B 0.8125 2 = 1.625 1 0.625 2 = 1.25 1 0.25 2 = 0.5 0 0.5 2 = 1 1 因此:0.8125D =(0. 1101 )B 例2:0.375D =( )B,0.011,2.1.1进位计数制及转换,2. 二进制转化为十进制 规则:
3、按权相加 例1:,例2:,2.1.2 机器数的编码格式,机器数是指数在计算机中的表示形式,一般是采用某种编码形式表示带符号的二进制数。真值是指机器数所对应的实际数值。常用的机器数形式有:原码、补码、反码。,2.1.2 机器数的编码格式,一. 原码表示法(符号和幅值表示法)规定:最高位为符号位(0为正,1为负),其余有效数值部分用二进制的绝对值表示。,2.1.2 机器数的编码格式,注意: 1)0可分+0和-0。+0 为 0.00-0为 1.00 2)符号位和数值无关,不能作为数值的一部分直接参与运算,在运算中要额外增加一步处理。 3)原码表示的数取不到端点小数: |X|1整数:|X|2n,2.1
4、.2 机器数的编码格式,二. 补码表示法 1.模,13,-2,模为12,例:11-2 = ? 11- 2 = 11+10= 2121-12 = 9,2.1.2 机器数的编码格式,2. 补码定义X补 = M + X (mod M),定点小数的补码可定义为:,定点整数的补码可定义为:,2.1.2 机器数的编码格式,3. 补码的性质 符号位是数值的一部分,可以与尾数一起直接参与运算,不需要单独处理。 所有负数的最高有效位都是1,硬件只需检测该位就可判断是正数还是负数。 数0只有一种表示,即000。 补码可以取到负方向最值。,2.1.2 机器数的编码格式,4. 原码与补码的互换 正数:补码表示与原码表
5、示相同 负数:原码的符号位保持不变,其余各位取反,末位再加1。 例:,X原 =1.1010,变反: 1.0101,末位加1: 1,X补 =1.0110,2.1.2 机器数的编码格式,5.补码转换十进制数 32位二进制补码可按如下公式转换:,例:见课本P50例题,2.1.2 机器数的编码格式,6.二进制补码的相关操作: 1)对二进制补码数取反(正数,负数),2.1.2 机器数的编码格式,例:对210 求反(字长32位) 解:210=0000 0000 0000 0000 0000 0000 0000 001021111 1111 1111 1111 1111 1111 1111 11012+ 1
6、2 = 1111 1111 1111 1111 1111 1111 1111 11102= -210,2.1.2 机器数的编码格式,2)符号扩展 用于将一个用n位表示的二进制数转化成一个用多于n位表示的数。 将最高有效位(符号位)以复制的方式填 满高位部分。,2.1.2 机器数的编码格式,三. 反码表示法 反码表示规则: 正数的反码:与原码相同 负数的反码:符号位为1,尾数由原码按位取反。,2.1.3 数值数据的表示方法,根据数据中小数点位置是否固定,将数的格式分为定点表示和浮点表示。,2.1.3 数值数据的表示方法,一.定点表示法(小数点位置不变)(1)小数点位置事先隐含约定(2)若小数点固
7、定在符号位之后,则该数是一个纯小数。例如 N=0.110101001(3)若把小数点定在最末位之后,这时表示一个纯整数(定点整数)。例如 N=01011010,2.1.3 数值数据的表示方法,二. 浮点表示法 1. 通用浮点数表示形式:任何一个二进制数N都可以表示为N=(-1)SF2E其中S表示浮点数的符号(1表示负数),F称为数N的尾数,表示数N的全部有效数据,其值在0和1之间。 E是一个二进制整数,称为数N的指数(或称为阶码),指明该数的小数点位置,表示数据的大小范围。 如:N=(-1)00.10110102011 N=(-1)10.11100102-1,2.1.3 数值数据的表示方法,M
8、IPS中浮点数的表示如下: 单精度浮点数:32位,其中,S为浮点数的符号位,指数域为8位宽(包括指数的符号位),尾数域为23位宽。浮点数表示法可扩大数值的表示范围,但依然可能会因数太大而不能表示。,2.1.3 数值数据的表示方法,双精度浮点数:两个32位,其中,S为浮点数的符号位,指数域为11位宽(包括指数的符号位),尾数域为52位宽。,2.1.3 数值数据的表示方法,几个相关概念: 科学计数法:十进制小数点左边只有一位整数的记数法。 规格化数:一个采用科学记数法表示的数,若没有前导零且小数点左边只有一位整数,则可称为规格化数。 如: 1.01010-9 0.11010-9 10.01010-
9、9 二进制规格化浮点数尾数部分的小数点左边只保留一位非零数。,2.1.3 数值数据的表示方法,采用规格化科学记数法的优点: -简化了浮点数的数据交换 -简化了浮点算术算法 -提高了用一个字存储的数的精度 偏移(移码)表示法 在浮点数加减中,将两数的指数调整为相同。 若指数用补码表示,不易比较其大小。,2.1.3 数值数据的表示方法,为更直观比较指数的大小,可用移码表示浮点数的指数。,2.1.3 数值数据的表示方法,移码定义:E移 = E+BiasE为指数的真值,Bias 为偏阶,通常 Bias= 2n ,其中,n为指数的数码位位数, 2n 是符号位的位权。,2.1.3 数值数据的表示方法,2.
10、 IEEE 754浮点标准:N=(-1)S(1+Fraction)2(Exponent-Bias) 注: IEEE 754 标准隐藏规格化二进制数的前导位1,因此,Fraction只是尾数域的值,其值在0和1之间,真正有效位的值为: 1+Fraction 。 Exponent是指数域的值,Exponent-Bias指明该数的小数点位置,表示数据的大小范围。 IEEE 754规定:单精度浮点数的偏阶为127,即:Bias=127双精度浮点数的偏阶为1023,即:Bias=1023,2.1.3 数值数据的表示方法,N=(-1)S(1+Fraction)2(Exponent-Bias) 在MIPS中
11、的表示 :,单精度:,双精度:,2.1.3 数值数据的表示方法,注意: 由于0 没有前导位1,它的指数保留为0,所以硬件就不会将前导位1加到尾数上。因此,0 的表示为00002。 其它数的表示依然采用前面的形式。,2.1.3 数值数据的表示方法,3. 例1:分别用IEEE 754 的单精度和双精度格式来表示-0.7510。 解:先将-0.7510转换为二进制小数形式:N = -0.7510 = -0.112科学记数表示为:N = -0.112 20规格化的科学记数表示为:N = -1.12 2-1,2.1.3 数值数据的表示方法,N = -1.12 2-1 由于单精度表达式为: N=(-1)S
12、(1+Fraction)2(Exponent-Bias) 所以:Fraction = (1.1 - 1 )2= 0.12Exponent = -1 + 127 = 126 最终,单精度二进制格式为:,2.1.3 数值数据的表示方法,N = -1.12 2-1 由于双精度 中:Bias = 1023 所以:Fraction = (1.1 - 1 )2= 0.12 Exponent = -1 + 1023 = 1022 最终,双精度二进制格式为:,2.1.3 数值数据的表示方法,例2:将X = 23(-13/16)用IEEE 754的单精度浮点格式来表示。,解:X = 23(-0.8125)10=
13、 23(-0.1101)2 规格化的科学记数表示为: X = -1.1012 22 Fraction = (1.101 - 1 )2= 0.1012 Exponent = 2+ 127 = 129,2.1.3 数值数据的表示方法,X = -1.1012 22 Fraction = (1.101 - 1 )2= 0.1012 Exponent = 2+ 127 = 129 所以,单精度二进制格式为:,2.1.4 字符的表示,一. ASCII码“美国标准信息交换代码”(American Standard Code for Information Interchange),简称ASCII码。使用8位
14、的字节来表示字符。(见课本P72 图2-15) 二. UnicodeUnicode是大多数人类语言中字母的通用编码。通常采用16位来表示一个字符。(见课本P74 图2-16),2.2 MIPS指令集,2.2.1 基本概念: 一. 指令集 一个给定的计算机体系结构所包含的指令集合。 常见的指令集:MIPS,ARMv7, ARMv8,Intel x86 二. 存储程序概念多种类型的指令和数据均以数字形式存储于存储器中。,2.2.2 MIPS的操作数,一. 相关规定: MIPS算术运算指令的操作数必须来自寄存器。 寄存器大小:32位。 寄存器个数:32个。 寄存器的表示: $s0, $s1, 表示C
15、程序中的变量所对应的寄存器。$t0, $t1, 表示将程序编译为MIPS指令时所需的临时寄存器。(其它各寄存器的表示及功能见课本P71图2-14),2.2.2 MIPS的操作数,例: 使用寄存器编译C赋值语句C codef = ( g + h ) ( i + j ) ;MIPS codeadd $t0, $s1, $s2 # $t0 contains g + hadd $t1, $s3, $s4 # $t1 contains i + jsub $s0, $t0, $t1 # f gets $t0 - $t1,2.2.2 MIPS的操作数,二. 存储器操作数 用于存放复杂的数据结构(如数组和结构
16、) 编址方式:按字节编址,一个字占4个字节。 通过数据传送指令实现存储器和寄存器之间数据的传送。-取数(load)指令:lw-存数(store)指令:sw,2.2.2 MIPS的操作数,例1:使用取/存数指令进行编译 C code:A12 = h + A8 ; / A is an array of 100 words ( Assume: h - $s2 base address of A - $s3 )MIPS code:lw $t0 , 32($s3) # temporary reg $t0 gets A8add $t0, $s2, $ t0 # temporary reg $t0 gets
17、 h + A8sw $t0, 48($s3) # stores h + A8 back into A12,2.2.2 MIPS的操作数,讨论:如何编译?,g = h + Ai,( Assume: g, h, i - $s1, $s2, $s4 base address of A - $s3 ),2.2.2 MIPS的操作数,例2:Compiling using a variable array index C code:g = h + Ai ; / A is an array of 100 words ( Assume: g, h, i - $s1, $s2, $s4 base address
18、 of A - $s3 )MIPS code: add $t1, $s4, $s4 # temp reg $t1 = 2 * iadd $t1, $t1, $t1 # temp reg $t1 = 4 * iadd $t1, $t1, $s3 # $t1 = address of Ai (4 * i + $s3)lw $t0 , 0($t1) # temp reg $t0 = Aiadd $s1, $s2, $t0 # g = h + Ai,2.2.2 MIPS的操作数,寄存器溢出(spilling) 将不常使用的变量(或稍后才使用的变量)存回到存储器中的过程。 实现:使用取数/存数指令,2.
19、2.2 MIPS的操作数,三. 常数或立即数操作数 程序中经常会在某个操作中使用到常数,如: 将数组的下标加1,用以指向下一个数组元素。 例:使寄存器$s3的内容加4 。- 方法一常数被事先存放在存储器中。假设 AddrConstants4 是常数4 在内存中相对于$ s1的偏移地址。lw $t0, AddrConstant4($s1) # $t0=constant 4add $s3, $s3, $t0 #$s3=$s3+$t0($t0=4),2.2.2 MIPS的操作数,- 方法二在算术指令中直接提供一个常数。addi $s3, $s3, 4 #$s3= $s3+ 4 优点:速度快,能耗低,
20、小结,MIPS operands,MIPS assembly language,2.2.3 MIPS指令的表示,计算机中所有的信息都表示成二进制位串。寄存器对应的数(编号) $s0 $s7 对应16 23 $t0 $t7 对应 8 15例:将以下MIPS语言指令翻译成机器指令MIPS codeadd $t0, $s1, $s2Decimal version of machine code | 0 | 17 | 18 | 8 | 0 | 32 |Binary version of machine code | 000000 | 10001 | 10010 | 01000 | 00000 | 10
21、0000 |6 bits 5 bits 5 bits 5 bits 5 bits 6 bits,一. MIPS指令格式,op:指令的基本操作,通常称为操作码 rs: 第一个源操作数寄存器 rt: 第二个源操作数寄存器 rd: 用于存放操作结果的目的寄存器 shamt: 位移量 funct: 功能。一般称为功能码,用于指明op字段中操作的特定变式。,Region: 215,指令长度相同,都为32位。,2.2.3 MIPS指令的表示,例:Translating assembly into machine instruction C code:A300 = h + A300 ;( Assume: h
22、 - $s2 base address of A - $t1 ) MIPS assembly code: lw $t0, 1200($t1) # temporary reg $t0 gets A300 add $t0, $s2, $t0 # temporary reg $t0 gets h + A300 sw $t0, 1200($t1) # stores h + A300 back into A300 MIPS machine language code: Decimal version : address/op rs rt rd shamt funct| 35 | 9 | 8 | 1200
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令 计算机 语言 PPT
