第一章1.电子数字计算机和电子模拟计算机的区别在哪里?解:电子数字计算机中处理的信息是在时间上离散的数字量,运算的过程是不连续的;电子模拟计算机中处理的信息是连续变化的物理量,运算的过程是连续的。2.冯·诺依曼计算机的特点是什么?其中最主要的一点是什么?解:冯·诺依曼计算机的特点如下:①计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成;②计算机内部采用二进制来表示指令和数据;③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。第③点是最主要的一点。3.计算机的硬件是由哪些部件组成的?它们各有哪些功能?解:计算机的硬件应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。它们各自的功能是:①输入设备:把人们编好的程序和原始数据送到计算机中去,并且将它们转换成计算机内部所能识别和接受的信息方式。②输出设备:将计算机的处理结果以人或其他设备所能接受的形式送出计算机。③存储器:用来存放程序和数据。④运算器:对信息进行处理和运算。⑤控制器:按照人们预先确定的操作步骤,控制整个计算机的各部件有条不紊地自动工作。4.什么叫总线?简述单总线结构的特点。解:总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。单总线结构即各大部件都连接在单一的一组总线上,这个总线被称为系统总线。CPU与主存、CPU与外设之间可以直接进行信息交换,主存与外设、外设与外设之间也可以直接进行信息交换,而无须经过CPU的干预。5.简单描述计算机的层次结构,说明各层次的主要特点。解:现代计算机系统是一个硬件与软件组成的综合体,可以把它看成是按功能划分的多级层次结构。第0级为硬件组成的实体。第1级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。第2级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。第3级是操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。第4级是汇编语言级。这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。第5级是高级语言级。这级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。第6级是应用语言级。这一级是为了使计算机满足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。6.计算机系统的主要技术指标有哪些?解:计算机系统的主要技术指标有:机器字长、数据通路宽度、主存容量和运算速度等。机器字长是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。数据通路宽度是指数据总线一次所能并行传送信息的位数。主存容量是指主存储器所能存储的全部信息量。运算速度与机器的主频、执行什么样的操作、主存本身的速度等许多因素有关。第二章1.设机器数的字长8位(含1位符号位),分别写出下列各二进制数的原码、补码和反码:0,-0,0.1000,-0.1000,0.1111,-0.1111,1101,-1101。3.已知下列数的原码表示,分别写出它们的补码表示:[X1]原=0.10100,[X2]原=1.10111。解:[X1]补=0.10100,[X2]补=1.01001。4.已知下列数的补码表示,分别写出它们的真值:[X1]补=0.10100,[X2]补=1.10111。解:X1=0.10100,X2=-0.01001。8.一个n位字长的二进制定点整数,其中1位为符号位,分别写出在补码和反码两种情况下:(1)模数;(2)最大的正数;(3)最负的数;(4)符号位的权;(5)-1的表示形式;(6)0的表示形式。9.某机字长16位,问在下列几种情况下所能表示数值的范围:(1)无符号整数;(2)用原码表示定点小数;(3)用补码表示定点小数;(4)用原码表示定点整数;(5)用补码表示定点整数。10.某机字长32位,试分别写出无符号整数和带符号整数(补码)的表示范围(用十进制数表示)。11.某浮点数字长12位,其中阶符1位,阶码数值3位,数符1位,尾数数值7位,阶码以2为底,阶码和尾数均用补码表示。它所能表示的最大正数是多少?最小规格化正数是多少?绝对值最大的负数是多少?12.某浮点数字长16位,其中阶码部分6位(含1位阶符),移码表示,以2为底;尾数部分10位(含1位数符,位于尾数最高位),补码表示,规格化。分别写出下列各题的二进制代码与十进制真值。(1)非零最小正数;(2)最大正数;(3)绝对值最小负数;(4)绝对值最大负数。13.一浮点数,其阶码部分为p位,尾数部分为q位,各包含1位符号位,均用补码表示;尾数基数r=2,该浮点数格式所能表示数的上限、下限及非零的最小正数是多少?写数据的机器层次表示出表达式。14.若上题尾数基数r=16,按上述要求写出表达式。15.某浮点数字长32位,格式如下。其中阶码部分8位,以2为底,移码表示;尾数部分一共24位(含1位数符),补码表示。现有一浮点代码为(8C5A3E00)16,试写出它所表示的十进制真值。16.试将(-0.1101)2用IEEE短浮点数格式表示出来。17.将下列十进制数转换为IEEE短浮点数:18.将下列IEEE短浮点数转换为十进制数:(1)11000000111100000000000000000000;(2)00111111000100000000000000000000;(3)01000011100110010000000000000000;(4)01000000000000000000000000000000;(5)01000001001000000000000000000000;(6)00000000000000000000000000000000。19.对下列ASCII码进行译码:1001001,0100001,1100001,11101111000101,1010000,1010111,010010020.以下列形式表示(5382)10。(1)8421码;(2)余3码;(3)2421码;(4)二进制数。21.填写下列代码的奇偶校验位,现设为奇校验:101000010001100101001110解:3个代码的校验位分别是0,0,1。22.已知下面数据块约定:横向校验、纵向校验均为奇校验,请指出至少有多少位出错。23.求有效信息位为01101110的海明校验码。24.设计算机准备传送的信息是:1010110010001111,生成多项式是X5+X2+1,计算校验位,写出CRC码。第三章1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。2.零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。例如,前述零地址和一地址的加法指令。3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。5.指令格式同上题,能否构成:三地址指令4条,单地址指令255条,零地址指令64条?为什么?6.指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?66解:主存容量越大,所需的地址码位数就越长。对于相同容量来说,最小寻址单位越小,地址码的位数就越长。7.试比较间接寻址和寄存器间址。解:间接寻址方式的有效地址在主存中,操作数也在主存中;寄存器间址方式的有效地址在寄存器中,操作数在主存中。所以间接寻址比较慢。8.试比较基址寻址和变址寻址。解:基址寻址和变址寻址在形成有效地址时所用的算法是相同的,但是它们两者实际上是有区别的。一般来说,变址寻址中变址寄存器提供修改量(可变的),而指令中提供基准值(固定的);基址寻址中基址寄存器提供基准值(固定的),而指令中提供位移量(可变的)。这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。在某些大型机中,基址寄存器只能由特权指令来管理,用户指令无权操作和修改。9.某机字长为16位,主存容量为64K字,采用单字长单地址指令,共有50条指令。若有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。解:操作码6位,寻址方式2位,地址码8位。10.某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。试说明:(1)若只采用直接寻址方式,指令能访问多少主存单元?(2)为扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少?(3)采用页面寻址方式,若只增加一位Z/C(零页/现行页)标志,指令寻址范围为多少?指令直接寻址范围为多少?(4)采用(2)、(3)两种方式结合,指令的寻址范围为多少?指令直接寻址范围为多少?11.设某机字长32位,CPU有32个32位的通用寄存器,设计一个能容纳64种操作的单字长指令系统。(1)如果是存储器间接寻址方式的寄存器-存储器型指令,能直接寻址的最大主存空间是多少?(2)如果采用通用寄存器作为基址寄存器,能直接寻址的最大主存空间又是多少?解:因为计算机中共有64条指令,所以操作码占6位;32个通用寄存器,寄存器编号占5位;其余部分为地址码或标志位。(1)如果是存储器间接寻址方式的寄存器-存储器型指令,操作码6位,寄存器编号5位,间址标志1位,地址码20位,直接寻址的最大主存空间是字。(2)如果采用通用寄存器作为基址寄存器,,能直接寻址的最大主存空间是字。12.已知某小型机字长为16位,其双操作数指令的格式如下:其中:OP为操作码,R为通用寄存器地址。试说明下列各种情况下能访问的最大主存区域有多少机器字?(1)A为立即数。(2)A为直接主存单元地址。(3)A为间接地址(非多重间址)。(4)A为变址寻址的形式地址,假定变址寄存器为R1(字长为16位)。解:(1)1个机器字。(2)256个机器字。(3)65536个机器字。(4)65536个机器字。13.计算下列4条指令的有效地址(指令长度为16位)。(1)000000Q(2)100000Q(3)170710Q(4)012305Q16.举例说明哪几种寻址方式除去取指令以外不访问存储器?哪几种寻址方式除去取指令外只需访问一次存储器?完成什么样的指令,包括取指令在内共访问4次存储器?解:除去取指令以外不访问存储器:立即寻址,寄存器寻址。除去取指令外只需访问一次存储器:直接寻址,寄存器间接寻址,变址寻址,基址寻址,相对寻址,页面寻址。二级间接寻址包括取指令在内共访问4次存储器。17.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H,且CPU每取一个字节便自动完成(PC)+1→PC的操作。试问当执行JMP*+8和JMP*-9指令(倡为相对寻址特征)时,转移指令第二字节的内容各为多少?转移的目的地址各是什么?解:转移指令第二字节的内容分别为:00001000(+8),11110111(-9)转移的目的地址分别为:200AH,1FF9H。20.什么叫主程序