文档库 最新最全的文档下载
当前位置:文档库 › 第2章 数据的机器层次表示

第2章 数据的机器层次表示

第2章

数据的机器层次表示

1

一、计算机中的数值数据

1.计算机能够直接识别和处理的数据形式是二进制

2.八进制和十六进制常用于数据信息的输入输出

3.后缀:

二进制数:后缀B

八进制数:后缀Q

十进制数:后缀D或省略后缀

十六进制数:后缀H

2

1、机器数无符号数:就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值。

二、无符号数和带符号数

带符号数:机器数分为符号和数值部分,均用二进制

代码表示

2、无符号数的表示范围

机器字长为n位的无符号数的表示范围:0~2n-1。

3、带符号位的机器数用“1”表示负,“0”表示正。

4、真值的概念:用“+”、“-”号加绝对值来表示数值的大小的形式称为真值。

3

举例:

对于无符号数01001,表示真值+9

11001,表示真值+25对于带符号数[01001]原,表示真值+9

[11001]原,表示真值-9

4

注意!真值与机器数的区别!

日常生活中,我们用“+”、“-”号加绝对值来表示数值的大小,用这种形式表示的数值在计算机技术中称为“真值”。

在计算机中需要把数的符号数码化。通常,约定二进

制数的最高位为符号位,“0”表示正号,“1”表示负号。这种在计算机中使用的表示数的形式称为“机器数”。

5

三、原码表示法

?最高位表示符号位,符号位为“0”表示该数为正,符号位为“1”表示该数为负,数值部分与真值相同。

6

若真值为纯小数形式,其原码形式为Xs.X1X2…Xn,字

长n+1位,其中Xs表示符号位。

X (X>=0&&X<1 ) [X]原

1-X=1+|X| (X>-1&&X<=0 )

例1:

X1=0.0110, [X1]原=0.0110

X2=-0.0110, [X2]原=1.0110

7

8

若真值为纯整数,其原码形式为X s X 1X 2…X n ,其中X s 表示符号位。

例2:X1=1101, [X1]原=01101

X2=-1101, [X2]原=11101

[X]原

X (X>=0&&X<2

n )

2n -X= 2n +|X| (X>-2n &&X<=0 )

注意!

0的原码既可以是0.0000也可以是1.0000,因为0既可以看作+0也可看作-0。

四、补码表示法

模的概念

由于计算机的机器字长是有限的,所以当运算结果的位数超过机器字长时,向更高位的进位就会丢失,该更高位的权就是该计算机的模。

9

2、定点小数与定点整数的模

(1)对于n+1的定点小数来说,可表示为Xs.X1X2…Xn,其中Xs是符号位,它的位权是20。符号位向更高位的进位会被丢失,所以定点小数以21为模。

(2)对于n+1的定点整数来说,可表示为XsX1X2…Xn,其中Xs是符号位,它的位权是2n。符号位向更高位的进位会被丢失,所以定点小数以2n+1为模。

10

(1)对于正数,补码与原码相同;对于负数,符号位与原码相同,数值部分按位取反,且在最低位上加1。

(2)若真值为纯小数

例5:X1=0.0110, [X1]

=0.0110

X2=-0.0110, [X2]

补=1.1010

3.补码表示

[X]

X (X>=0&&X<1 )

2+X=2-|X| (X>=-1&&X<0 )

(mod 2)

11

12

若真值为纯整数,它的补码形式为X s X 1X 2…X n ,其中X s 表示符号位。例6:X 1=1101,

[X 1]补=01101

X 2=-1101,[X 2]补=100110的补码表示形式是唯一的:[+0]补=[-0]补=00000

[X]补

X (X>=0&&X<2n )

2n+1+X= 2n+1-|X| (X>=-1&&X<0 )

(mod 2n+1)

当X为正数时,[X]补=[X]原=X

当X为负数时,由[X]原转换为[X]补的方法:

①[X]原除掉符号位外的各位取反加“1”。

②自低位向高位,尾数的第一个“1”及其右部的“0”保持不变,左部的各位取反,符号位保持不变。

例7:[X]

=1.1110011000

[X]

补=1.0001101000

4. 由原码转换为补码

不变

不变变反

13

五、反码表示法

?对于正数,数值部分与真值形式相同;对于负数,将真值的数值部分按位取反。

?在反码表示中,真值0也有两种不同的表示形式:

=00000

[+0]

[-0]

=11111

14

六、三种码制的比较与转换

1.比较

?对于正数它们都等于真值本身,而对于负数各有不同的表示。

?补码和反码的符号位可作为数值位的一部分看待,和数值位一起参加运算;原码的符号位不允许和数值位同等看待,必须分开进行处理。

?注意0在原、反、补码中的不同表示形式。

?但补码负数表示范围比正数表示范围宽,能多表示一个最负的数(绝对值最大的负数),其值等于-2n(纯整数)或-1(纯小数)。

15

2.转换

如果已知机器的字长,则机器数的位数应补够相应的位。例如,设机器字长为8位,则:

X1=1011 X2=-1011

[X1]原=00001011 [X2]原=10001011

[X1]补=00001011 [X2]补=11110101

[X1]反=00001011 [X2]反=11110100

X3=0.1011 X4=-0.1011

[X3]原=0.1011000 [X4]原=1.1011000

[X3]补=0.1011000 [X4]补=1.0101000

[X3]反=0.1011000 [X4]反=1.0100111

16

2.2机器数的定点表示与浮点表示

机器数的表示定点表示:小数点位置固定不变

浮点表示:小数点位置根据需要而浮动

定点数定点小数:即纯小数,小数点位置固定在最高有效位之前,符号位之后,记作:X s.X1X2…X n

定点整数:即纯整数,小数点位置隐含固定在最低有效数位之后,记作X s X1X2…X n。

17

一、定点表示法

1、定点小数(小数点位置是隐含约定的,小数点并不需

要真正地占据一个二进制位)

n位数值位

数符小数点位置(隐含)

X s X1X n-1X n

图2-2 定点小数格式

18

定点小数表示范围

(1)X s=0表示正数

当X1~X n=1时,X为最大正数。

X最大正数=1-2-n

当X1~X n-1=0,X n=1时,X为最小正数。

X最小正数=2-n

19

20

(2)当X s =1,表示X 为负数。

若机器数为原码表示,当X 1~X n 均等于1时,X 为绝对值最大的负数。

X 绝对值最大负数=-(1-2-n )

若机器数为补码表示,当X s =1,X 1~X n 均等于0时,X 为绝对值最大的负数。

X 绝对值最大负数=

-1

第3章 数值的机器运算

第3章数值的机器运算 3.1 基本内容摘要 1、定点数的加、减法运算和加、减法电路的实现 ◆定点数的加减运算 补码的加法公式、补码的减法公式; ◆补码的溢出判断和检测方法 溢出的产生、符号比较法、双进位法、双符号位法; ◆从半加器到算术逻辑部件ALU 半加器、全加器、并行加法器、加减法部件ASU、BCD码(十进制)加法器、算术逻辑部件ALU; 2、定点数的乘、除法运算和乘、除法电路的实现 ◆定点数的乘法运算和乘法电路的实现 原码一位乘法、原码一位乘法运算器、补码原码一位乘法、补码原码一位乘法运算器; ◆定点数的除法运算和除法电路的实现 原码除法、原码加减交替法除法运算器、补码除法; 3、逻辑运算 ◆“与”、“或”和“非”运算 逻辑与、逻辑或、逻辑非 ◆“异或”运算 4、定点运算器的基本结构与工作原理 ◆移位电路 ◆定点运算器的主要组成 5、浮点数运算和浮点数运算器的实现 ◆二进制数的浮点表示法 ◆二进制数的浮点运算 浮点数的加减法运算、浮点数的乘除法运算 ◆浮点运算器的基本结构 浮点加减运算器硬件结构及其工作原理

3. 2 知识点 一、逻辑运算 逻辑与:又称为“逻辑乘”,其逻辑表达式为: F=A×B=A·B=A∧B 逻辑或:又称“逻辑加”,其逻辑表达式为: F=A+B=A∨B 逻辑非:又称为“逻辑反”,其逻辑表达式为: B = A 异或:又称为“按位加”,其逻辑表达式: F=A⊕B=A∨B 二、定点数的加、减法运算和加、减法电路的实现 1、补码加减法 补码加法公式:[X+Y]补=[X]补+[Y]补 补码减法公式:[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补 当X、Y、X+Y均在一定字长补码所表示的数值范围内,公式成立; 补码运算加减运算中,符号位可一起参加运算,不考虑符号位和数值位的区别; 在补码减法运算中,有:[-y]补=-[y]补,[-y]补=[ [y]补]求补 求补运算指对[y]补包括符号位“求反且最末位加1” 2、溢出及其检测方法 定点数的运算中出现溢出,其运算结果不能表示正确结果,但可以通过一定方法修正。 加减运算中溢出的判别方法有: (1)符号比较法 溢出判断逻辑表达式: V = X s Y s (X+Y)s+X s Y s (X+Y)s+X s Y s(X-Y)s+X s Y s(X-Y)s (2)双进位法 溢出判断逻辑表达式: V = C in⊕C out 当C out C in=0 1,结果正溢;当C out C in=1 0 结果负溢 (3)双符号位法 溢出判断逻辑表达式: V = S S1⊕S S2 当S s1S s2=01 结果正溢(或上溢);当S s1S s2=10 结果负溢(或下溢); 在补码运算中,最高位(符号位)产生进位并不表示溢出,该进位虽然丢弃,但运算 结果仍然正确。 3、定点加减运算器的结构 (1)半加器:只是对两个输入数据位进行加法的电路,输出一个结果位和一个向高位的进位,不考虑低位的进位。半加器采用一个异或门和一个与门实现。 (2)全加器:两个输入数据位和低位进位输入进行加法运算,输出一个结果位和一个向高位的进位。全加器采用2个异或门、2个与门和1个或门实现。

数据在计算机中的表示

选择题 1.信息处理进入了计算机世界,实质上是进入了世界。 A、模拟数字 B、十进制数 C、二进制数 D、抽象数字 答案:C 2.计算机中使用二进制,下面叙述中不正确的是。 A、是因为计算机只能识别0和1 B、物理上容易实现,可靠性强 C、运算,通用性强 D、计算机在二进制数的0、1数码与逻辑量“真”和“假”的0与1吻合,便于表示和进行逻辑运算 答案:A 3.十进制数92转换为二进制数和十六进制数分别是。 A、01011100和5C B、01101100和61 C、和5D D、01011000和4F 答案:A 4.人们通常用十六进制而不用二进制书写计算机中的数,是因为。 A、十六进制的书写比二进制方便 B、十六进制的运算规则比二进制简单 C、十六进制数表达的范围比二进制大 D、计算机内部采用的是十六进制 答案:A 5.浮点数之所以能表示很大或很小的数,是因为使用了。 A、较多的字节 B、较长的尾数 C、阶码

D、符号位 答案:C 6.在科学计算时,经常会遇到“溢出”,这是指。 A、数值超出了内存容量 B、数值超出了机器的位所能表示的范围 C、数值超出了变量的表示范围 D、计算机出故障了 答案:B 7.下列有关二进制的说法中,是错误的。 A、二进制数只有0和1两个数码 B、二进制数只由两位数组成 C、二进制数各位上的权分别为1,2,4,…… D、二进制运算逢二进一 答案:B 8.下列关于字符之间大小关系的说法中,正确的是。 A、空格符>b>B B、空格符>B>b C、b>B>空格符 D、B>b>空格符 答案:C 9.目前在微机上最常用的字符编码是。 A、汉字字型码 B、ASCII码 C、8421码 D、EBCDIC码 答案:B 10.计算机多媒体技术是以计算机为工具,接受、处理和显示由等表示的信息技术。 A、中文、英文、日文 B、图像、动画、声音、文字和影视

第章数值的机器运算

哈尔滨学院2014年秋季学期单元测试试卷 课程名称:计算机组成原理 单元名称:第四章数值的机器运算 一、填空题 1.影响并行加法器速度的关键因素是。 2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。 3 ,算术右移1位后得。 4.向左规格化的规则为尾数,阶码为。 5.运算器的基本功能室实现运算和运算。 二、选择题 1.在串行进位的并行加法器中,影响加法器运算速度的关键因素是。A.门电路的级延迟B.元器件速度 C.进位传递延迟D.各位加法器速度的不同 2.并行加法器中每一位的进位产生函数Gi为。A.B.B?AB?A iiii C. D. CB?CA?B?A?iiiiii3.补码加/减法是指。 A.操作数用补码表示,两尾数相加/减,符号位单独处理 B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加/减数相同C.操作数用补码表示,连同符号位直接相加,减某数用加某数的机器负数代替,结果的符号在运算中形成 D.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理 4.两个补码数相加,采用1位符号位,当时,表示结果溢出。A.符号位有进位 B.符号位进位和最高数位进位异或结果为0 C. 符号位为1 1 .符号位进位和最高数位进位异或结果为D. 5.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。A. 00 B. 01 D. 11 C. 10 6.在定点机中执行算术运算时会产生溢出,其原因是。 A.主存容量不够B.操作数过大

C.操作数地址过大D.运算结果无法表示 7. 当定点运算发生溢出时,应进行。 A. 向左规格化B.向右规格化 C.发出出错信息D.舍入处理 8.。 A.B. C. D 9.将用8位二进制补码表示的十进制数-121,扩展成16位二进制补码,结果用十六进制表示为。 A.0087H B.FF87H D .FFF9H C.8079H X10.已知,计算机的机器字长为8位二进制编码,则。HC[]?6?][X补补2 A .8CH B.18H D .C. E3H F1H 11.对于二进制数,若小数点左移1位则数值,若小数点右移1位则数值。 A.扩大一倍,扩大一倍B.扩大一倍,缩小一半 C.缩小一半,扩大一倍D.缩小一半,缩小一半 12.X、Y为定点二进制数,其格式为1位符号位,n位数值位。若采用Booth 补码一位乘法实现乘法运算,则最多需要做加法运算的次数是。A.n-1 B.n C.n+1 D. n+2 13.原码加减交替除法又称为不恢复余数法,因此。 .不存在恢复余数的操作A. B.当某一步运算不够减时,做恢复余数的操作 C.仅当最后一步余数为负时,做恢复余数的操作 D.当某一步余数为负时,做恢复余数的操作 14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放 。 A.被乘数和被除数 B.被乘数和除数 C. 乘数和被除数 D.乘数和除数 15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。A.阶符与数符相同B.阶符与数符相异 C.数符与尾数最高有效位相同D.数符与尾数最高有效位相异

第二章 数据的机器级表示与处理1

第?二章 数据的机器级表?与处理

数制与编码

“转换”的概念在数据表示中的反映 具体实现 抽象概括感觉媒体信息树、链表等结构化数据描述int, float, array, struct等类型指令指定寄存器或内存中数据ALU中运算或总线上传输的数据逻辑门位信息问题(应用) 算法程序(语言)指令集体系结构(ISA) 微体系结构 电路 器件(晶体管)

各类数据之间的转换关系 对连续信息采样,以使信息离散化对离散样本用0和1进行编码定点运算指令 浮点运算指令逻辑、位操作或字符处理指令

信息的二进制编码 ?机器级数据分两大类 –数值数据:无符号整数、带符号整数、浮点数(实数) –非数值数据:逻辑数(包括位串)、西文字符和汉字 ?计算机内部所有信息都用二进制(即:0和1)进行编码 ?用二进制编码的原因 –制造二个稳定态的物理器件容易(电位高/低,脉冲有/无,正/负极)–二进制编码、计数、运算规则简单 –正好与逻辑命题真/假对应,便于逻辑运算 –可方便地用逻辑电路实现算术运算 ?真值和机器数( 非常重要的概念!) –机器数:用0和1编码的计算机内部的0/1序列 –真值:真正的值,即:现实中带正负号的数 例:unsigned short型变量x的真值是127,其机器数是多少? 127=27-1,其机器数为0000 0000 0111 1111

数值数据的表示 ?数值数据表示的三要素 –进位计数制 –定、浮点表示 –如何用二进制编码 即:要确定一个数值数据的值必须先确定这三个要素。例如,20137564的值是多少? 答案是:不知道!?进位计数制 –十进制、二进制、十六进制、八进制数及其相互转换?定/浮点表示(解决小数点问题) –定点整数、定点小数 –浮点数(可用一个定点小数和一个定点整数来表示)?定点数的编码(解决正负号问题) –原码、补码、反码、移码(反码很少用)

第3章数值的机器运算

第 3 章数值的机器运算 3.1基本内容摘要 1、定点数的加、减法运算和加、减法电路的实现 ◆定点数的加减运算 补码的加法公式、补码的减法公式; ◆补码的溢出判断和检测方法 溢出的产生、符号比较法、双进位法、双符号位法; ◆从半加器到算术逻辑部件ALU 半加器、全加器、并行加法器、加减法部件ASU、 BCD码(十进制)加法器、算术逻辑部件 ALU; 2、定点数的乘、除法运算和乘、除法电路的实现 ◆定点数的乘法运算和乘法电路的实现 原码一位乘法、原码一位乘法运算器、补码原码一位乘法、补码原码一位乘法运算器; ◆定点数的除法运算和除法电路的实现 原码除法、原码加减交替法除法运算器、补码除法; 3、逻辑运算 ◆“与”、“或”和“非”运算 逻辑与、逻辑或、逻辑非 ◆“异或”运算 4、定点运算器的基本结构与工作原理 ◆移位电路 ◆定点运算器的主要组成 5、浮点数运算和浮点数运算器的实现 ◆ 二进制数的浮点表示法 ◆ 二进制数的浮点运算 浮点数的加减法运算、浮点数的乘除法运算 ◆ 浮点运算器的基本结构 浮点加减运算器硬件结构及其工作原理

3. 2知识点 一、逻辑运算 逻辑与:又称为“逻辑乘”,其逻辑表达式为: F=A × B=A·B=A ∧ B 逻辑或:又称“逻辑加”,其逻辑表达式为: F=A+B=A ∨ B 逻辑非:又称为“逻辑反”,其逻辑表达式为: B = A 异或:又称为“按位加”,其逻辑表达式: F=A ⊕ B=A ∨B 二、定点数的加、减法运算和加、减法电路的实现 1、补码加减法 补码加法公式:[X+Y] 补=[X] 补+[Y] 补 补码减法公式:[X-Y]补=[X] 补-[Y] 补=[X]补+[-Y] 补 当 X 、Y 、X+Y 均在一定字长补码所表示的数值范围内,公式成立; 补码运算加减运算中,符号位可一起参加运算,不考虑符号位和数值位的区别; 在补码减法运算中,有: [-y ]补 =- [y ]补, [-y]补= [ [y ]补 ]求补 求补运算指对[ y]补包括符号位“求反且最末位加1” 2、溢出及其检测方法 定点数的运算中出现溢出,其运算结果不能表示正确结果,但可以通过一定方法修正。 加减运算中溢出的判别方法有: (1)符号比较法 溢出判断逻辑表达式: V = X s Y s (X + Y) s+ X s Y s (X + Y) s+ X s Y s(X - Y) s+ X s Y s(X - Y) s (2)双进位法 溢出判断逻辑表达式: V = C in⊕ C out 当 C out C in=0 1,结果正溢;当 C out C in=1 0结果负溢 (3)双符号位法 溢出判断逻辑表达式: V=S S1⊕ S S2 当 S s1S s2=01结果正溢(或上溢);当S s1S s2=10结果负溢(或下溢); 在补码运算中,最高位(符号位)产生进位并不表示溢出,该进位虽然丢弃,但运 算结果仍然正确。 3、定点加减运算器的结构 (1)半加器:只是对两个输入数据位进行加法的电路,输出一个结果位和一个向高位的进位,不考虑低位的进位。半加器采用一个异或门和一个与门实现。 (2)全加器:两个输入数据位和低位进位输入进行加法运算,输出一个结果位和一个向高 位的进位。全加器采用 2 个异或门、 2 个与门和 1 个或门实现。

数据的机器级表示与处理

作业三数据的机器级表示与处理一. 选择题 1.108对应的十六进制形式是()。 A.63H B. 6CH C. B4H D. 5CH 2.–1029的16位补码用十六进制表示为()。 A.7BFBH B. 8405H C. 0405H D. FBFBH 3.考虑以下C语言代码: short si=–8196; unsigned short usi=si; 执行上述程序段后,usi的值是()。 A.57339 B. 8196 C. 34572 D. 57340 4.考虑以下C语言代码: short si=–32768; unsigned short usi=si; 执行上述程序段后,usi的值是()。 A.65535 B. 32768 C. –32768 D. 65536 5.考虑以下C语言代码: unsigned short usi=65535;

short si=usi; 执行上述程序段后,si的值是()。 A.–1 B. 1 C. –65535 D. 65535 6.假定变量i、f的数据类型分别是int、float。已知i=12345,f=1.2345e3,则在一个 32位机器中执行下列表达式时,结果为“假”的是()。 A.i==(int)(float)i B. i==(int)(double)i C. f==(float)(double)f D. f==(float)(int)f 二、问答题 P75:3.实现下列各数的转换。(涉及8421码的不做) (1)(25.8125)10= (?)2= (?) 8= (?) 16 (2)(101101.011)2 = (?)10= (?) 8= (?) 16= (?) 8421 (3)(0101 1001 0110.0011)8421 = (?)10= (?) 2= (?) 16 P75:4.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的原码和补码表示。(如果无法完整表示,则写溢出)

第四章 数值的机器运算

习题 1.证明:在全加器里进位传递函数P=Ai+Bi=Ai①Bi, 2.某加法器采用组内并行、组间并行的进位链,4位一组,写出进位信号C6的逻辑表达式。 3.设计一个9位先行进位加法器,每3位为一组,采用两级先行进位线路。 4.已知X和Y,试用它们的变形补码计算出X+Y,并指出结果是否溢出。 (1)X=0.11011,Y=0.11111 (2)X=0.11011,Y=-0.10101 (3)X=-0.10110,Y=-0.00001 (4)X=-0.11011,Y=0.11110 5.已知X和Y,试用它们的变形补码计算出X-Y,并指出结果是否溢出。 (1)X=0.11011,Y=-0.11111 (2)X=0.10111,Y=0.11011 (3)X=0.11011,Y=-0.10011 (4)X=-0.10110,Y=-0.00001 6.已知:X=0.1011,Y=-0.0101。 求[1/2x]补,[1/4x]补,[-x]补,[1/2Y]补,[1/4Y]补,[-Y]补 7.设下列数据长8位,包括一位符号位,采用补码表示,分别写出每个数据右移或左移两位之后结果。 (1)0.1100100 (2)1.0011001 (3)1.1100110 (4)1.0000111 8.分别用原码乘法和补码乘法计算X×Y。 (1)X=0.11011,Y=-0.11111 (2)X=-0.11010,Y=-0.01110 9.根据补码两位乘法规则推导出补码3位乘法的规则。 10.分别用原码和补码加减交替法计算X÷y。 (1)X=0.10101,Y=0.11011 (2)X=-0.10101,Y=0.11011 (3)X=0.10001,Y=-0.10110 (4)X=-0.10llO,Y=-0.11011 11.设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题: (1)X=2101×(-0.1000l0),Y=2100×(-0.111110) (2)X=2-101×0.101100,Y=2-100×(-0.101000) (3)X=2-011×0.101100,Y=2-001×(-0.111100) 求X+Y,X—Y。 12.设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题: (1)x=23×13/16,Y=24×(-9/16) 求X×Y。 (2)x=23×(-13/16),Y=25×(15/16) 求X÷Y。 13.用流程图描述浮点除法运算的算法步骤。 14.设计一个一位5421码加法器。 15.某机利用二进制的加法器进行8421码的十进制运算,采用的方法是: (1)对某一操作数预加6后,与另一操作数一起进入二进制加法器。 (2)有进位产生时,直接得到和的8421码。

实验11_程序的机器级表示_过程_实验报告

浙江大学城市学院实验报告 课程名称计算机系统原理实验 实验项目名称实验十一程序的机器级表示——过程 学生姓名专业班级学号 实验成绩指导老师(签名)日期 注意: ●务请保存好各自的源代码,已备后用。 ●请把作业同时上传到BB平台和FTP。 ●文件名为:学号_姓名_日期_实验几,如30801001_姓名_20100305_实验01 ●ftp://10.66.28.222:2007huommupload 123456 一、实验目的: 了解IA32指令系统的常用指令,了解Linux汇编语言的基本语法、汇编语言的编写、调试技巧。 二、实验内容: 1、阅读给出test11_1.c以及对应的反汇编代码,为汇编代码添加注释,并画出函数调用前后的栈帧结构图。 2、阅读给出test11_2.c以及对应的汇编代码,为汇编代码添加注释,并补充完整c程序源码。 三、实验步骤: 1、阅读给出test11_1.c以及对应的反汇编代码,为汇编代码添加注释,并画出函数调用前后的栈帧结构图。 指令注释: 08048354 : 8048354: 55 push %ebp # 8048355: 89 e5 mov %esp,%ebp # 8048357: 53 push %ebx #

8048358: 8b 55 08 mov 0x8(%ebp),%edx # 804835b: 8b 4d 0c mov 0xc(%ebp),%ecx # 804835e: 8b 1a mov (%edx),%ebx # 8048360: 8b 01 mov (%ecx),%eax # 8048362: 89 02 mov %eax,(%edx) # 8048364: 89 19 mov %ebx,(%ecx) # 8048366: 01 d8 add %ebx,%eax # 8048368: 5b pop %ebx # 8048369: 5d pop %ebp # 804836a: c3 r et 0804836b : 804836b: 55 push %ebp # 804836c: 89 e5 mov %esp,%ebp # 804836e: 83 ec 18 sub $0x18,%esp # 8048371: c7 45 fc 7b 00 00 00 movl $0x7b,0xfffffffc(%ebp) # 8048378: c7 45 f8 c8 01 00 00 movl $0x1c8,0xfffffff8(%ebp) # 804837f: 8d 45 f8 lea 0xfffffff8(%ebp),%eax # 8048382: 89 44 24 04 mov %eax,0x4(%esp) # 8048386: 8d 45 fc lea 0xfffffffc(%ebp),%eax # 8048389: 89 04 24 mov %eax,(%esp) # 804838c: e8 c3 ff ff ff call 8048354 # 8048391: 8b 55 fc mov 0xfffffffc(%ebp),%edx # 8048394: 2b 55 f8 sub 0xfffffff8(%ebp),%edx # 8048397: 0f af c2 imul %edx,%eax # 804839a: c9 l eave # 804839b: c3 r et #

计算机中数据的表示和计算

第1章 计算机系统基础 1.1 计算机中数据的表示和计算 1.1.1 目标与要求 通过本节学习掌握如下内容: ? 掌握计算机中的常用数制,掌握十进制、二进制、八进制和十六进制之间相互转换的方法。 ? 理解数据的机内表示方法,掌握原码、反码、补码、移码等码制及其特点。 ? 掌握基本的算术和逻辑运算。 ? 理解常用校验码的原理和特点,了解海明码、循环冗余码的编码方法和校验方法,掌握奇偶校验的原理和方法。 本节为基础内容,但是在历次考试中也是必考内容。题目集中在上午的选择题部分。考生对这一部分的复习应该达到熟练程度。对于进制转换、几种码制的表示方式、其优缺点和不同码制的计算应熟练掌握,切忌在考场上为计算基本的转换而浪费宝贵的时间。 计算机中的数据是采用二进制表示的。计算机中的数据按照基本用途可以分为两类:数值型数据和非数值数据。数值型数据表示具体的数量,有正负大小之分。非数值数据主要包括字符、声音、图像等,这类数据在计算机中存储和处理前需要以特定的编码方式转换为二进制表示形式。 1.1.2 数制及其转换 1.数制 r 进制即r 进位制,r 进制数N 写为按权展开的多项式之和为: 1 k i r i i m N D r -=-= ?∑ 其中,i D 是该数制采用的基本数符号,r i 是权,r 是基数。 例如:十进制数123456.7可以表示为: 123456.7=1?105+2?104+3?103+4?102+5?101+6?100+7?10–1 计算机中常用的记数制是二进制、八进制、十六进制。 2.数制转换 数制间转换是计算机从业人员必须具备的最基本的技能之一,也是每次《计算机技术

数据表示与运算习题

填空题 1、计算机中的所有信息都以二进制表示的原因是()。D A、信息处理方便 B、运算速度快 C、节约元器件 D、物理器件特性所致 2、引入八进制和十六进制的目的是()。D A、节约元件 B、实现简单 C、可以表示更大范围的数 D、用于等价地表示二进制,便于阅读和书写 3、负零的补码表示是()。B A、1 000...0 B、0 000...0 C、0 111...1 D、1 111 (1) 4、[X]补=X0.X1…Xn(n为整数),它的模为()。D A、2n-1 B、2n C、1 D、2 5、[X]补=X0X1…Xn(n为整数),它的模为()。A A、2n+1 B、2n C、2n +1 D、2n-1 6、考虑下列C语言代码:D Short si=-8196; Unsigned short usi=si; 执行上述程序段后,usi的值是()。 A、8196 B、34572 C、57339 D、57340 7、设[X]原=1.X1X2X3X4,当满足( )时,X>-1/2成立。D A、X1必须为1,X2X3X4至少有一个为1 B、X1必须为1,X2X3X4任意 C、X1必须为0,X2X3X4至少有一个为1 D、X1必须为0,X2X3X4任意 8、若浮点数尾数用补码表示,则下列数中为规格化尾数形式的是()。D A、1.110 0000B B、0.011 1000B C、0.010 1000B D、1.000 1000B 9、若浮点数尾数用原码表示,则下列数中为规格化尾数形式的是()。A A、1.110 0000B B、0.011 1000B C、0.010 1000B D、1.000 1000B 10、用于表示浮点数的阶码的编码通常是( )。D A、原码 B、补码 C、反码 D、移码 11、若某数采用IEEE754单精度浮点数格式表示为4510 0000H,则其值为()。B A、(1.125)10*210 B、(1.125)10*210 C、(0.125)10*211 D、(0.125)10*210 12、假定变量i、f的数据类型分别是int、float.。已知i=12345,f=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是()。C A、i==(int)(float)i B、i==(int)(double)i C、f==(float) (int)f D、f==(float) (double)f 13、在一般的计算机系统中,西文字符编码普通采用()。B A、BCD码 B、ASCII码 C、格雷码 D、CRC码 14、假定某计算机按字节编址,采用小端方式,有一个float型变量x的地址为FFFF C000H,x=1234 5678H,则在内存单元FFFF C001H中存放的内容是( )。C A、1234H B、34H C、56H D、5678H 15、下面有关机器字长的叙述中,错误的是( )。D A、机器字长是指CPU中定点运算数据通路的宽度 B、机器字长一般与CPU中寄存器的位数相关 C、机器字长决定了数的表示范围和表示精度 D、机器字长对计算机硬件的造价没有影响。 16、假定下列字符编码中含有奇偶检验位,但没有发生数据错误,那么采用奇校验的字符编

运算基础——数值的机器级表示

第2章运算基础——数值的机器级表示 2.1 基本内容摘要 1、数制 ◆十进制数制 基数、位权、权展开式 ◆二进制数制 基数、位权、权展开式 ◆二进制数与十进制数之间的转换 ◆十六进制数制 基数、位权、权展开式; 十六进制数和二进制数、十进制数之间的转换 ◆二进制运算 加、减、乘、除运算规则 2、机器数与真值—带符号数和不带符号数的表示 ◆机器数与真值 带符号数、机器数、真值的概念 ◆带符号数的表示 原码的表示、反码的表示、补码的表示、移码的表示 ◆机器数和真值的转换 ◆无符号数的表示 3、定点表示法与浮点表示法 ◆定点表示法 定点小数、定点整数 ◆浮点表示法 浮点数的一般格式 IEEE754标准的浮点数格式 4、字符与字符串的表示 ◆二进制信息编码 8421 BCD码的格式及其转换 ◆ ASCⅡ码 数字字符的ASCⅡ码编码; 奇偶校验 5、汉字编码 ◆汉字的输入编码

◆国际码和汉字机内码 ◆汉字字模码 6、校验码 ◆基本概念:码距、冗余、检错、纠错 ◆奇偶校验码 简单奇偶检验方法及其实现电路 交叉奇偶校验方法 ◆循环冗余校验码 生成多项式、循环冗余校验码的校验原理、循环冗余码的生成、循环冗余码的校验 2. 2 知识点 一、数制及其转换 1、R进制 采用R个数码:0、1、……、R-1,基数为R ;计数的方法为逢R进一; 第i个数位上的数码所具有的位权为Ri; 一个R进制数N的权展开式为:N = ∑ai×Ri 若分别取R=10、2或16 就是十进制、二进制、十六进制。 十进制数表示时在数值后用下标10或用字母D ; 二进制数表示时在数值后用下标2或用字母B ; 十六进制数表示时在数值后用下标16或用字母H ; 2、二-十进制数(BCD码)的表示 8421码的表示:4位二进制数表示1位十进制数字。 3、不同数制的数之间的转换 (1)非十进制数(包括二进制数、十六进制数)转换为十进制数 按非十进制数N的权展开式计算 (2)十进制数转换为非十进制数 整数的转换方法:除R取余,先相除所得余数为低位,后除所得余数为高位。 数的转换方法:乘R取整,先相乘所得整数为高位,后乘所得整数为低位。 (3)二进制数和十进制数的转换 采用组位转换法,即根据一位十六进制数字和4位二进制数之间的关系进行转换,在二进制数转换为数进制数时,有时需要高位或低位补0。 (4)8421码和十进制数之间的转换 采用组位转换法,即根据一位十进制数字和4位二进制数之间的关系进行转换。 4、二进制运算规则

nahgiAAA计算机组成原理习题答案解析(蒋本珊)

n a h g i A A A计算机组成原理习题答案解析(蒋 本珊) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

第一章 1.电子数字计算机和电子模拟计算机的区别在哪里 解:电子数字计算机中处理的信息是在时间上离散的数字量,运算的过程是不连续的;电子模拟计算机中处理的信息是连续变化的物理量,运算的过程是连续的。 2.冯·诺依曼计算机的特点是什么其中最主要的一点是什么解:冯·诺依曼计算机的特点如下: ①计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成; ②计算机内部采用二进制来表示指令和数据; ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。 第③点是最主要的一点。 3.计算机的硬件是由哪些部件组成的它们各有哪些功能解:计算机的硬件应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。它们各自的功能是: ①输入设备:把人们编好的程序和原始数据送到计算机中去,并且将它们转换成计算机内部所能识别和接受的信息方式。 ②输出设备:将计算机的处理结果以人或其他设备所能接受的形式送出计算机。 ③存储器:用来存放程序和数据。 ④运算器:对信息进行处理和运算。

⑤控制器:按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。 4.什么叫总线简述单总线结构的特点。 解:总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。单总线结构即各大部件都连接在单一的一组总线上,这个总线被称为系统总线。CPU 与主存、CPU 与外设之间可以直接进行信息交换,主存与外设、外设与外设之间也可以直接进行信息交换,而无须经过CPU 的干预。 5.简单描述计算机的层次结构,说明各层次的主要特点。 解:现代计算机系统是一个硬件与软件组成的综合体,可以把它看成是按功能划分的多级层次结构。 第0级为硬件组成的实体。 第1级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。 第2级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。 第3级是操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。 第4级是汇编语言级。这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。

第三章 程序的机器级表示

第三章程序的机器级表示 一、教材导读 本章学习内容是汇编语言,现在直接写汇编的机会不多了,但一定要能读懂,信息安全的核心思维方式“逆向”在这有很好很直接的体现,反汇编就是直接的逆向工程。 本章重点是3.7,但没有3.1-3.6的基础也是不行,如果想真正的提高动手能力,3.11如何用GDB调试汇编要好好练习一下,不过大多GDB 技巧大家都会了。 3.1-3.7中练习,重点: 3.1,3.3,3.5,3.6,3.9,3.14,3.15,3.16,3.22,3.23,3.27,3.29,3.30,3.33,3.34 p104, p105: X86 寻址方式经历三代: 1 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全 2 8086的分段模式 3 IA32的带保护模式的平坦模式 p106: ISA的定义,ISA需要大家能总结规律,举一反三,比如能对比学习ARM的ISA;PC寄存器要好好理解;

p107:gcc -S xxx.c -o xxx.s 获得汇编代码,也可以用objdump -d xxx 反汇编; 注意函数前两条和后两条汇编代码,所有函数都有,建立函数调用栈帧,应该理解、熟记。 注意: 64位机器上想要得到32代码:gcc -m32 -S xxx.c MAC OS中没有objdump, 有个基本等价的命令otool Ubuntu中 gcc -S code.c (不带-O1)产生的代码更接近教材中代码(删除"."开头的语句) p108: 二进制文件可以用od 命令查看,也可以用gdb的x命令查看。有些输出内容过多,我们可以使用more或less命令结合管道查看,也可以使用输出重定向来查看 od code.o | more od code.o > code.txt p109: gcc -S 产生的汇编中可以把以”.“开始的语句都删除了再阅读 p110: 了解Linux和Windows的汇编格式有点区别:ATT格式和Intel 格式 p111: 表中不同数据的汇编代码后缀 p112: 这几个寄存器要深入理解,知道它们的用处。esi edi可以用来操纵数组,esp ebp用来操纵栈帧。对于寄存器,特别是通用寄存器中的eax,ebx,ecx,edx,大家要理解32位的eax,16位的ax,8位的ah,al 都是独立的,我们通过下面例子说明: 假定当前是32位x86机器,eax寄存器的值为0x8226,执行完addw $0x8266, %ax 指令后eax的值是多少?

计算机组成原理习题答案第二章

1.设机器数的字长8位(含1位符号位),分别写出下列各二进制数的原码、补码和 反码:0,-0,0.1000,-0.1000,0.1111,-0.1 111,1101,-1101。 解: 真值原码补码反码 0 -0 0.1000 -0.1000 0.1111 -0.1111 1101 -1101 00000000 10000000 0.10000001.1000000 0.1111000 1.1111000 00001101 10001101 00000000 00000000 0.10000001.1000000 0.1111000 1.0001000 00001101 11110011 00000000 11111111 0.10000001.0111111 0.1111000 1.0000111 00001101 11110010 2.写出下列各数的原码、补码和反码:7 16,4 16,1 16,±0,-1 16,-4

16,-7 16。 解:7 16=7×2-4=0.0111 4 16=4×2-4=0.0100 1 16=1×2-4=0.0001 数据的机器层次表示 3 3 真值原码补码反码 7160.01110.01110.01114160.01000.01000.01001160.00010.00010.000100.00000.00000.0000-01.00000.00001.1111-1161.00011.11111.1110-4161.01001.11001.1011-7161.01111.10011.1000 3.已知下列数的原码表示,分别写出它们的补码表示:[X1]原= 0.10100,[X2]原=1.10111。 解:[X1]补=0.10100,[X2]补=1.01001。 4.已知下列数的补码表示,分别写出它们的真值:[X1]补=0.1 0100,[X2]补=1.10111。 解:X1=0.10100,X2=-0.01001。 5.设一个二进制小数X ≥0,表示成X =0.a1a2a3a 4a5a6,其中a1~a6取“1”或“0”: (1)若要X >1/2 ,a1~a6要满足什么条件? (2)若要X ≥1/8 ,a1~a6要满足什么条件? (3)若要 1/4 ≥X >1 16,a1~a6要满足什么条件? 解:(1)X >12 的代码为:0.100001~0.111111。 a1=1,a2+a3+a4+a5+a6=1。 (2)X ≥1/8 的代码为: 0.0010001/8 … 0.1111116/3 6/4

第三章 数据在计算机中的表示

第三章数据在计算机中的表示 一、选择题 1.在下面关于字符之间大小关系的说法中,正确的是___C__________。 A. 空格符>b>B B.空格符>B>b C.b>B>空格符 D.B>b>空格符 2.汉字系统中的汉字字库里存放的是汉字的______C______。 A. 机内码 B.输入码 C.字形码 D.国标码 3.在汉字库中查找汉字时,输入的是汉字的机内码,输出的是汉字的( D )。 A. 交换码 B. 信息码 C. 外码 D. 字形码 4.对补码的叙述,_____B________不正确。 A.负数的补码是该数的反码最右加1 B.负数的补码是该数的原码最右加1 C.正数的补码就是该数的原码 D.正数的补码就是该数的反码 5.十进制数92转换为二进制数和十六进制数分别是______A_______。 A.01011100和5C B.01101100和61 C.10101011和5D D.01011000和4F 6.人们通常用十六进制而不用二进制书写计算机中的数,是因为_____A________。 A. 十六进制的书写比二进制方便 B.十六进制的运算规则比二进制简单 C.十六进制数表达的范围比二进制大 D.计算机内部采用的是十六进制 7.二进制数 10011010 转换为十进制数是( D )。 A. 153 B. 156 C. 155 D. 154 8.在科学计算时,经常会遇到“溢出”,这是指______B_______。 A.数值超出了内存容量 B.数值超出了机器的位所表示的范围 C.数值超出了变量的表示范围 D.计算机出故障了 9.有关二进制的论述,下面_______B______是错误的。 A. 二进制数只有0和l两个数码 B.二进制数只有两位数组成 C.二进制数各位上的权分别为2i(i为整数) D.二进制运算逢二进一 10.目前在微型计算机上最常用的字符编码是_____B________。 A.汉字字型码 B.ASCII码 C.8421码 D.EBCDIC码 11.在计算机内,多媒体数据最终是以______A_______形式存在的。 A.二进制代码 B.特殊的压缩码 C.模拟数据 D.图形 12.在不同进制的4个数中,最大的一个数是_____C________。 A.01010011 B B.67 O C.5F H D.78 D 13.在计算机中存储一个汉字信息需要( B )字节存储空间。 A. 1 B. 2 C. 3 D. 4 14.计算机中的机器数有3种表示方法,下列_______D______不属于这3种表示方式。

计算机组成数据的机器层次表示练习题.doc

单项选择题 1下列不同进位计数制得数中,最大的数是—。 A (0.101)2 B (0.62)10 C (0.52)8 D (0.75)16 2在____ 进位计数制下,有53+247=211。 A十进制B八进制C九进制D H^一进制 3若十进制数据为137.5,则其八进制为__o A 89.8 B 211.4 C 211.5 D 1011111.101 4下列说法有误差的是—o A任何二进制整数都可以用十进制表示 B任何二进制小数都可以用十进制表示 C任何I ?进制整数都可以丿IJ二进制表示 D任何十进制小数都可以川二进制表示 5一个16位无符号二进制数的表示范围是—。 A 0 ?5536 B 0 ?66535 0 —32768 ?32767 D —32768 ?327686 6BCD码中8421码100101010100表示十进制数是____ 。 A 954 B 864 C 362 D 有错误 7下列关T ASCII编码,正确的描述是__o A使用8位二进制代码,最右边一位为1 B使用8位二进制代码,最左边一位为0 C使用8位二进制代码,最右边一位为0 D使用8位二进制代码,最左边一位为1 8己知大写英文字母“A”的ASCII码值为41H,现字母“F”被存放在某个存储单元中, 若采用偶校验(假设最高为作为校验位),则该心储单元屮存放的十六进制数是___o A 46H B C6H C 47H D C7H 9用1位奇偶校验能检测出1位主存错误的百分比为—o A 0% B 100% C 50% D 无法计算 10用海明码來发现并纠止1位错,信息位为8位,则检验位的位数为—。 A 1 B 3 C 4 D 8 11 8位原码能表示的不同数据有—o A 15 B 16 C 255 D 256 12对真值0农示形式唯一的机器数是—o A原码B补码和移码C反码D以上都不对 13设寄存器嫩荣为11111111,若它等于+127,则为 _______ o A原码B补码C反码D移码 14若某数X的真值为一0」010,在计算机中的表示为1.0110,则该数所用的编码是—o A原码B补码C反码D移码 15设【X】原=1.X I X2X3X4,当满足下列_____ 时,X>—1/2成立。 A Xi必为0, X2?X4至少有一个为1 B Xi必为0, X2?X4任意 C Xi必为0, X2?X4任意 D 以上答案均不止确

计算机组成 数据的机器层次表示 练习题

单项选择题 1 下列不同进位计数制得数中,最大的数是____。 A (0.101)2 B (0.62)10 C (0.52)8 D (0.75)16 2 在____进位计数制下,有53+247=211。 A 十进制 B 八进制 C 九进制D十一进制 3 若十进制数据为137.5,则其八进制为____。 A 89.8 B 211.4 C 211.5 D 1011111.101 4 下列说法有误差的是____。 A 任何二进制整数都可以用十进制表示 B任何二进制小数都可以用十进制表示 C任何十进制整数都可以用二进制表示 D任何十进制小数都可以用二进制表示 5 一个16位无符号二进制数的表示范围是____。 A 0~5536 B 0~66535 C —32768~32767 D —32768~327686 6 BCD码中8421码100101010100表示十进制数是____。 A 954 B 864 C 362 D 有错误 7 下列关于ASCII编码,正确的描述是____。 A 使用8位二进制代码,最右边一位为1 B使用8位二进制代码,最左边一位为0 C使用8位二进制代码,最右边一位为0 D使用8位二进制代码,最左边一位为1 8 已知大写英文字母“A”的ASCII码值为41H,现字母“F”被存放在某个存储单元中,若采用偶校验(假设最高为作为校验位),则该存储单元中存放的十六进制数是____。 A 46H B C6H C 47H D C7H 9 用1位奇偶校验能检测出1位主存错误的百分比为____。 A 0% B 100% C 50% D 无法计算 10 用海明码来发现并纠正1位错,信息位为8位,则检验位的位数为____。 A 1 B 3 C 4 D 8 11 8位原码能表示的不同数据有____。 A 15 B 16 C 255 D 256 12 对真值0表示形式唯一的机器数是____。 A 原码 B 补码和移码 C 反码 D 以上都不对 13 设寄存器嫩荣为11111111,若它等于+127,则为____。 A原码 B 补码 C 反码D移码 14 若某数X的真值为—0.1010,在计算机中的表示为1.0110,则该数所用的编码是____。A原码 B 补码 C 反码D移码 15 设【X】原=1.X1X2X3X4,当满足下列____时,X>—1/2成立。 A X1必为0,X2~X4至少有一个为1 B X1必为0,X2~X4任意 C X1必为0,X2~X4任意 D 以上答案均不正确 16 若【X】补=1.1101010,则【X】原=____。 A 1.0010101 B 1.0010110 C 0.0010110 D 0.1101010 17 如果X为负数,由【X】补求【—X】补是将____。 A 【X】补各值保持不变

相关文档
相关文档 最新文档