1微机原理与接口技术习题参考答案第一章(p20)1、参考答案:冯•诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。其中第三点是冯•诺依曼计算机设计的精华,所以人们又把冯•诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作。冯•诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。微型计算机系统结构如下图所示。3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间。7、参考答案:①PCI(PeripheralComponentInterconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium2微型计算机。PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plugandplay,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI总线上。②USB(UniversalSerialBus:通用串行总线),是1994年由Compaq,IBM,Microsoft等多家公司联合提出的。USB有两种规格:V1.1和V2.0,USB1.1传输速度为12M/秒,而USB2.0提高至360到480M/秒。USB2.0是向下兼容USB1.1,这意味着将一个USB2.0的设备插到USB1.1口中,只能按USB1.1的速度运行。USB连接方式十分灵活,支持热插拔,不需要单独的供电系统。可以通过一条4线串行线缆访问USB设备,用于连接键盘、鼠标、投影仪、数码相机等,现在成为每一台计算机都必须配备的标准接口。8、参考答案:DB----Definebyte定义一个字节类型的变量,并为该变量分配内存DW…Defineword定义一个字类型的变量,并为该变量分配内存DD….Definedoubleword定义一个双字类型的变量,并为该变量分配内存9、参考答案:(1)1101.01b=13.25d(或13.25)(2)111001.0011b=57.1875(3)101011.0101b=43.3125(4)111.0001b=7.0625如何转换?例如:101011.0101b=1×25+1×23+1×2+1+1×2-2+1×2-4=32+8+2+1+0.25+0.0625=43.312510、参考答案:(1)A3.3H=10×16+3+3×16-1=163.1875(2)129.CH=1×162+2×16+9+12×16-1=297.75(3)AC.DCH=10×16+12+13×16-1+12×16-2=172.259375(4)FAB.3H=15×162+10×16+11+3×16-1=4011.187511、参考答案:(1)23=10111B=27Q=17H(2)107=1101011B=153Q=6BH(3)1238=10011010110B=2326Q=4D6H(4)92=1011100B=134Q=5CH12、参考答案:即把下面的数用8位补码表示(1)+32=00100000B(2)-12=11110100B,即求-12的补码(3)+100=01100100B(4)-92=10100100B,即求-92的补码13、参考答案:压缩BCD码就是用4位二进制表示一个0~9之间的十进制数非压缩的BCD码就是用8位二进制表示一个0~9之间的十进制数,8位二进制的最高4位可以位任何数,例如0000,0~9的ASCII码实际上就是0~9的非压缩BCD码的表示。十进制数压缩BCD码非压缩BCD码10200010000001000000001000000000000001044010001000000010000000100301001100000001000000110000000000000001100000010000000000000000000100000000000000000000000014、参考答案:如果二进制最高位为0,则该数为正数,反之,如果最高位为1,则该数为负数,对其做求补运算就得到其相反数。(1)10000000B=-128(2)00110011B=+51(3)10010010B=-783(4)10001001B=-11915、参考答案:一个单精度浮点数占4个字节(双字),即32位二进制,其中符号位占1位,指数部分占8位,尾数部分占23位。十进制数表示成单精度浮点数的方法如下:①填充符号位,如果是正数填0,如果是负数填1②将数表示成二进制形式,并进行规格化③对于单精度浮点数,指数加上127(7FH);对于双精度浮点数,指数要加上1023(3FFH),并填充指数位④填充尾数位(1)+1.5①由于是正数,所以符号位为0;②写成二进制并规格化得到1.1×20,③由于2的指数是0,所以指数部分以0+127=01111111填充;④由②知,尾数为1,所以尾数部分以10000000000000000000000(1后面跟22个0)填充,综上,得到+1.5的单精度浮点数表示为:+1.5=00111111110000000000000000000000B写成十六进制数为:+1.5=3FC00000H(2)-10.625=C12A0000H(3)+100.25=42C88000H(4)-1200.0=C4960000H16、参考答案:(1)01000000011000000000000000000000B=3.5(2)10111111100000000000000000000000B=-1.0(3)01000000010010000000000000000000B=3.125第二章(p55~p56)1、答案略,见p22~242、答案略,见p24~273、答案略,见p334、参考答案(其他可以参照本章相关内容):①CPU:又称微处理器,是计算机系统的核心,一般由逻辑运算单元、控制单元和一些寄存器组成。这些寄存器用于CPU在处理数据过程中数据的暂时保存。它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或I/O接口之间传送数据;程序的流向控制等。②存储器:是计算机系统的记忆部件,主要用来存储程序和数据。存储器一般分为内部存储器和外部存储器两大类。内部存储器(内存)存放当前正在使用或经常使用的程序和数据,CPU可以直接访问;外存存放“海量”数据,相对来说不经常使用,CPU使用时要先调入内存。内部存储器又可以分为随机存取存储器(RAM)和只读存储器(ROM)。计算机系统存储器的三层结构:按存储容量由低到高(或按存取速度由高到低)分为高速缓冲存储器(CACHE)、主存、辅存三层。③堆栈(Stack):堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用SP指向,栈底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理,入栈操作SP减小,出栈操作SP增大;堆栈的操作以字为单位。④机器语言(MachineLanguage):计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统,不同型号的计算机的指令系统不同。使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写4出来的程序全是由0和1的数字组成,直观性差、难以阅读。不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍。⑤汇编语言(AssemblyLanguage):是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序MASM.EXE。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。⑥指令(Instruction):指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。一条指令通常由两个部分组成:操作码+操作数。操作码:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。操作数:指明操作对象的内容或所在的存储单元地址(地址码),操作数在大多数情况下是地址码,地址码可以有0~3个。9、参考答案:题号段起始地址段结束地址a)1000H10000H1FFFFHb)1234H12340H2233FHc)2300H23000H32FFFHd)E000HE0000HEFFFFHe)AB00HAB000HBAFFFH注意:①段起始地址和段结束地址均为20位的物理地址;②段起始的偏移量为0000H,所以段起始地址为段基地址×16+偏移地址;③由于每个段的最大容量为64K字节,段结束的偏移量为FFFFH,所以段结束地址为段基地址×16+偏移地址=段基地址×16+FFFFH10、参考答案:a)CS:IP=1000H:2000H下一条指令的存储器地址为(CS)×16+(IP)=12000Hb)CS:IP=2000H:1000H下一条指令的存储器地址为(CS)×16+(IP)=21000Hc)CS:IP=1A00H:B000H下一条指令的存储器地址为(CS)×16+(IP)=25000Hd)CS:IP=3456H:AB09H下一条指令的存储器地址为(CS)×16+(IP)=3F069H11、参考答案:a)DS=1000H,DI=2000H存储单元地址为:(DS)×16+(DI)=12000Hb)SS=2300H,BP=3200H存储单元地址为:(SS)×16+(BP)=26200Hc)DS=A000H,BX=1000H存储单元地址为:(DS)×16+(BX)=A1000Hd)SS=2900H,SP=3A00H存储单元地址为:(SS)×16+(SP)=2CA00H12、参考答案:①堆栈段在存储器中的物理地址(即堆栈段的起始地址)为:(SS)×16+0000H=35000H②入栈10个字节后,SP=0800H-10=07F6H③再出栈6个字节,SP=07F6H+6=07FCH13、参考答案:5示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。14、参考答案:段段起始地址段结束地址DS10E40H20E3FHES10F40H20F3FHSS21F00H31EFFHCS31FF0H41FEFH可见,①DS和ES有部分的重