logo资料库

周荷琴 微机原理与接口技术习题参考答案.docx

第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
资料共41页,剩余部分请下载后查看
热工基础答案
第一章
1-4解:
1-7解:由于空气压力正比于气球的直径,所以可设,式中c为常数
该过程空气对外所作的功为
1-8解:(1)气体所作的功为:
(2)摩擦力所消耗的功为:
所以减去摩擦力消耗的功后活塞所作的功为:
第二章
习 题
2-3解:
2-4解:状态b和状态a之间的内能之差为:
所以,a-d-b过程中工质与外界交换的热量为:
工质沿曲线从b返回初态a时,工质与外界交换的热量为:
根据题中给定的a点内能值,可知b点的内能值为60kJ,所以有:
由于d-b过程为定容过程,系统不对外作功,所以d-b过程与外界交换的热量为:
所以a-d-b过程系统对外作的功也就是a-d过程系统对外作的功,故a-d过程系统与外界交换的热量为:
2-9 解:是否要用外加取暖设备,要看室内热源产生的热量是否大于通过墙壁和门窗传给外界的热量,室内热源每小
小于通过墙壁和门窗传给外界的热量为3(105 kJ,所以必须外加取暖设备,供热量为:
微机原理与接口技术习题参考答案 第一章(p20) 1、参考答案:冯?诺伊曼计算机的设计思想(EDVAC 方案:存储程序通用电子计算机方案):①计算机分为计算器、控 制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”。其 中第三点是冯?诺依曼计算机设计的精华,所以人们又把冯?诺依曼原理叫做程序存储原理,即程序由指令组成并和数 据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述 的处理工作。冯?诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。 2、参考答案:微处理器就是中央处理器 CPU,是计算机的核心,单独的 CPU 不能构成计算机系统;微型计算机由微 处理器、主存储器、I/O 接口(注意:不是 I/O 设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件 (即操作系统)、应用软件、外存储器和 I/O 设备等。微型计算机系统结构如下图所示。 6、参考答案:由于 8086 微处理器的地址总线的宽度为 20 位,所以它可寻址 220=1M 字节的存储空间;而 PentiumII 微处理器的地址总线的宽度为 36 位,所以它可寻址 236=64G 字节的存储空间。 7、参考答案:①PCI(Peripheral Component Interconnect:外围设备互联),是 Intel 公司 1992 年发布 486 微处理器时推出 的 32/64 位标准总线,数据传输速率位 132MB/s,适用于 Pentium 微型计算机。PCI 总线是同步且独立于微处理器的具 有即插即用(PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基 地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI 总线允许任何微处理器通过桥接口连接到 PCI 总线上。 ②USB(Universal Serial Bus:通用串行总线),是 1994 年由 Compaq,IBM,Microsoft 等多家公司联合提出的。USB 有两 种规格:V1.1 和 V2.0,USB 1.1 传输速度为 12M/秒,而 USB 2.0 提高至 360 到 480M/秒。USB 2.0 是向下兼容 USB 1.1, 这意味着将一个 USB 2.0 的设备插到 USB 1.1 口中,只能按 USB 1.1 的速度运行。 USB 连接方式十分灵活,支持热插拔, 不需要单独的供电系统。可以通过一条 4 线串行线缆访问 USB 设备,用于连接键盘、鼠标、投影仪、数码相机等,现 在成为每一台计算机都必须配备的标准接口。 8、参考答案: DB----Define byte 定义一个字节类型的变量,并为该变量分配内存 DW…Define word 定义一个字类型的变量,并为该变量分配内存 DD….Define double word 定义一个双字类型的变量,并为该变量分配内存 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.3125 10、参考答案:(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.1875 11、参考答案:(1)23=10111B=27Q=17H (2)107=1101011B=153Q=6BH (3)1238=10011010110B=2326Q=4D6H (4)92=1011100B=134Q=5CH 12、参考答案:即把下面的数用 8 位补码表示 (1)+32=00100000B (3)+100=01100100B 13、参考答案:压缩 BCD 码就是用 4 位二进制表示一个 0~9 之间的十进制数 非压缩的 BCD 码就是用 8 位二进制表示一个 0~9 之间的十进制数,8 位二进制的最高 4 位可以位任何数,例如 0000, 0~9 的 ASCII 码实际上就是 0~9 的非压缩 BCD 码的表示。 十进制数 压缩 BCD 码 非压缩 BCD 码 102 0001 0000 0010 44 0100 0100 301 0011 0000 0001 1000 14、参考答案:如果二进制最高位为 0,则该数为正数,反之,如果最高位为 1,则该数为负数,对其做求补运算就得 00000001 00000000 00000000 00000000 00000001 00000000 00000010 (2)-12=11110100B,即求-12 的补码 (4)-92=10100100B,即求-92 的补码 00000100 00000100 00000011 00000000 00000001 0001 0000 0000 0000
到其相反数。 (1)10000000B=-128 (2)00110011B=+51 (3)10010010B=-78 (4)10001001B=-119 15、参考答案:一个单精度浮点数占 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=0 01111111 10000000000000000000000B 写成十六进制数为:+1.5=3F C0 00 00H (2)-10.625=C12A0000H (3)+100.25=42C88000H (4)-1200.0=C4960000H 16、参考答案: (1)0 10000000 11000000000000000000000B=3.5 (2)1 01111111 00000000000000000000000B=-1.0 (3)0 10000000 10010000000000000000000B=3.125 第二章(p55~p56) 4、参考答案(其他可以参照本章相关内容): CPU:又称微处理器,是计算机系统的核心,一般由逻辑运算单元、控制单元和一些寄存器组成。这些寄存器用于 CPU 在处理数据过程中数据的暂时保存。它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或 I/O 接口之间传送数据;程序的流向控制等。 存储器:是计算机系统的记忆部件,主要用来存储程序和数据。存储器一般分为内部存储器和外部存储器两大类。内 部存储器(内存)存放当前正在使用或经常使用的程序和数据,CPU 可以直接访问;外存存放“海量”数据,相对来 说不经常使用,CPU 使用时要先调入内存。内部存储器又可以分为随机存取存储器(RAM)和只读存储器(ROM)。计 算机系统存储器的三层结构:按存储容量由低到高(或按存取速度由高到低)分为高速缓冲存储器(CACHE)、主存、 辅存三层。 堆栈(Stack):堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用 SP 指向,栈 底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令 PUSH 和出栈指令 POP 可将数据压入堆栈或从堆栈中弹出数据,栈顶指针 SP 的变化由 CPU 自动管理,入栈操作 SP 减小,出栈操作 SP 增大;堆栈的操作以字为单位。 机器语言(Machine Language):计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一 条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统, 不同型号的计算机的指令系统不同。使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出 来的程序全是由 0 和 1 的数字组成,直观性差、难以阅读。不仅难学、难记、难检查、又缺乏通用性,给计算机的推 广使用带来很大的障碍。 汇编语言(Assembly Language):是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符 (Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。使用汇编语言编写的程序,机器不能直 接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序 MASM.EXE。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言比机器语言易于读写、调试和修改,同 时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系 结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 指令(Instruction):指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。一条指令通常 由两个部分组成:操作码+操作数。操作码:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。 操作数:指明操作对象的内容或所在的存储单元地址(地址码),操作数在大多数情况下是地址码,地址码可以有 0~3
标志位 值 个。 5、参考答案: 题号 (1) ZF 如果相等,ZF=1;反之,ZF=0 (2) SF 如果为正,SF=0;反之,SF=1 (3) OF 如果溢出,OF=1;反之,OF=0 (4) PF 如果结果低 8 位 1 的个数为偶数,PF=1;反之,PF=0 (5) CF 如果相减的第一个数小于第二个数,CF=1;反之,CF=0 (6) IF 如果允许中断,IF=1;如果禁止中断,IF=0 6、答案略,见 p36~38 7、参考答案:设存储单元地址由左向右递增,每个字符以它的 ASCII 码形式存放存储单元中,则字符串‘What time is it?’在内存中的存储状况如下(以十六进制表示): 57 68 61 74 20 74 69 6D 65 20 69 73 20 69 74 3F 8、参考答案: DW 1234H DW A122H DW B100H 在内存中的分布为(设存储单元地址由左向右递增,存储单元的阿内容以十六进制表示):34 12 22 A1 00 B1 9、参考答案: 段起始地址 段结束地址 题号 a)1000H 10000H 1FFFFH b)1234H 12340H 2233FH c)2300H 23000H 32FFFH d)E000H E0000H EFFFFH e)AB00H AB000H BAFFFH 注意:①段起始地址和段结束地址均为 20 位的物理地址; ②段起始的偏移量为 0000H,所以段起始地址为段基地址×16+偏移地址; ③由于每个段的最大容量为 64K 字节,段结束的偏移量为 FFFFH,所以段结束地址为段基地址×16+偏移地址=段基 地址×16+FFFFH 10、参考答案: CS:IP=1000H:2000H 下一条指令的存储器地址为(CS)×16+(IP)=12000H CS:IP=2000H:1000H 下一条指令的存储器地址为(CS)×16+(IP)=21000H CS:IP=1A00H:B000H 下一条指令的存储器地址为(CS)×16+(IP)=25000H CS:IP=3456H:AB09H 下一条指令的存储器地址为(CS)×16+(IP)=3F069 H 11、参考答案: DS=1000H,DI=2000H 存储单元地址为:(DS)×16+(DI)=12000H SS=2300H,BP=3200H 存储单元地址为:(SS)×16+(BP)=26200H DS=A000H,BX=1000H 存储单元地址为:(DS)×16+(BX)=A1000H SS=2900H,SP=3A00H 存储单元地址为:(SS)×16+(SP)=2CA00H 12、参考答案: ①堆栈段在存储器中的物理地址(即堆栈段的起始地址)为: (SS)×16+0000H=35000H ②入栈 10 个字节后,SP=0800H-10=07F6H ③再出栈 6 个字节,SP=07F6H+6=07FCH 13、参考答案: 示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。 ①由于字 2A8CH 存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字; ②由于字 1EE5H 存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。 14、参考答案:
源操作数寻址方式 目的操作数寻址方式 段 段起始地址 段结束地址 DS 10E40H 20E3FH ES 10F40H 20F3FH SS 21F00H 31EFFH CS 31FF0H 41FEFH 可见,①DS 和 ES 有部分的重叠,重叠区域大小为:20E3FH-10F40H+1=FF00H 字节;②ES 和 SS 之间有空隙,空隙的大 小为:21F00H-20F3FH+1=0FC2H 字节;③SS 和 CS 之间有空隙,空隙的大小为:31FF0H-31EFFH+1=00F2H 字节 ④OF SF ZF CF 均为 0 17、参考答案:IF 标志位控制 INTR 引脚 20、答案略,见 p49 21、答案略 第三章(p121~p124) 1、参考答案: 题号 (1) 立即寻址 寄存器寻址 (2) 立即寻址 寄存器寻址 (3) 寄存器间接寻址 寄存器寻址 (4) 寄存器寻址 寄存器相对寻址 (5) 寄存器寻址 寄存器相对寻址 (6) 立即寻址 基址变址寻址 (7) 基址变址寻址 寄存器寻址 (8) 寄存器寻址 相对基址变址寻址 (9) 直接寻址* 寄存器寻址 (10) 寄存器寻址 寄存器寻址 *对于 IN 指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址; 如果是短格式,即端口地址存放在 DX 寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:IN AX,DX 对于 OUT 指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻 址,如 OUT 20H,AL;如果是短格式,即端口地址存放在 DX 寄存器中,则目的操作数的寻址方式为寄存器间接寻址, 如:OUT DX,AX 2、参考答案: 题号 (1) 立即寻址 ------- (2) 直接寻址 0200H (3) 寄存器寻址 ------- (4) 寄存器相对寻址 0203H (5) 基址变址寻址 0202H (6) 相对基址变址寻址 0204H 注:10200H~10205H 单元存储状况如左图所示 3、参考答案: 题号 (1) 直接寻址 0100H (2) 直接寻址 0030H (DS)×16+EA=10100H (3) 寄存器间接寻址 0100H (4) 寄存器间接寻址 0100H (ES)×16+EA=20100H (5) 寄存器间接寻址 00A0H (DS)×16+EA=100A0H (DS)×16+EA=10110H (6) 寄存器相对寻址 0110H (7) 寄存器间接寻址 0200H (SS)×16+EA=35200H (8) 相对基址变址寻址 02D0H (SS)×16+EA=352D0H (9) 相对基址变址寻址 0154H (DS)×16+EA=10154H (10) 基址变址寻址 0224H 源操作数寻址方式 源操作数有效地址 源操作数物理地址 指令执行后 AX 中的内容 ------ 0200H 10200H 2A10H ------ 0200H 源操作数寻址方式 源操作数有效地址 源操作数物理地址 10203H 5946H 10202H 463CH 10204H 6B59H (DS)×16+EA=10100H (DS)×16+EA=10030H (SS)×16+EA=35224H
B C D E 错误原因 执行后的结果 0F 10 11 12 13 14 15 16 00 00 00 00 00 00 9A 45 00 12 4D 50 55 54 45 52 34 12 FF AL=24H DX=1234H DL=24H,A 变量的第一个单元的内容变为 34H 4、答案略 5、参考答案: (1)该数据段的存储状况如下表所示: A 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 24 10 43 4F 注:①表格的第一行为变量名称;②第三行的每个小格子代表一个存储单元;③第二行为存储单元的偏移地址以十六 进制表示,从中可以看出各变量在数据段中的偏移地址,A 的偏移地址为 0000H,B 的偏移地址为 0002H,C 的偏移地 址为 000AH,D 的偏移地址为 000EH,E 的偏移地址为 0013H;④第三行为存储单元的具体内容,以十六进制表示。 (2)写出各条指令执行后的结果 指令 MOV AL,A MOV DX,C XCHG DL,A MOV BX,OFFSET B BX=0002H MOV CX,3[BX]CX=5550H LEA BX,D BX=000EH LEA SI,E SI=0013H LEA DI,E DI=0013H 6、参考答案: 题号 (1) 两操作数的类型不一致 (2) 立即数不能做目的操作数 (3) 立即数不能直接传送给段寄存器 (4) 两操作数不能同时为存储器操作数 (5) IP 寄存器的内容不能由用户更改,而由系统自动修改 (6) 正确 (7) 两基址寄存器不能放在一起使用 (8) 正确 (9) 两变址寄存器不能放在一起使用 (10) 不能取立即数的偏移地址,OFFSET 操作符使用不当 (11) 存储单元的偏移地址应为字类型,不能放到字节寄存器中 (12) XCHG 指令的操作数不能为立即数 (13) IN 指令从端口读取的数据只能放在累加器 AL 或 AX 中 (14) OUT 指令的源操作数应为累加器,目的操作数应为端口地址,且如果端口地址超过 0FFH(255),端口地址应 放在 DX 寄存器中 7、程序片段如下: LEA BX,TABLE MOV AL,57 MOV AH,0 MOV DL,10 DIV DL PUSH AX XLAT MOV CH,AL POP AX MOV AL,AH XLAT MOV CL,AL MOV BX,CX
8、解答: SP 的变化情况 指令执行后 SP 内容 指令执行后相关寄存器内容 PUSH AX SPSP-2 00FEH PUSH BX SPSP-2 00FCH POP BX SPSP+2 00FEH POP AX SPSP+2 0100H 9、已知 AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1 则单独执行下列各条指令后,各相关寄存器内容是什么? 题号 (1) AL=0ACH (2) BX=8ACFH (3) AX=EB24H (4) BX=3455H (5) CX=0A988H (6) BL=57H (7) 乘积为双字存放在 DX:AX 中:DX=03B8H AX=0AD78H (8) 商存放在 AL 中,余数存放在 AH 中:AL=26H AH=64H 10、参考程序片段如下: ;定义数据段 DATA SEGMENT ARRAY DB 60,65,72,76,77,66,79 NEW DB 7 DUP(0) SUM DB 0 AVERAGE DB 0 DATA ENDS ;程序代码如下 …… MOV CX,7 MOV SUM,0 MOV SI,0 NEXT: MOV AL,ARRAY[SI] ADD SUM,AL ;总分存入 SUM 中 ADD AL,5 MOV NEW[SI],AL INC SI LOOP NEXT MOV AL,SUM MOV AH,0 MOV CL,7 DIV CL MOV AVERAGE,AL 11、参考答案: CF 题号 (1) AH=04H 0 (2) BL=36H 0 (3) AX=0DAF7H 0 (4) CX=0FFF4H 0 (5) 相关寄存器内容没有改变 0 (6) 相关寄存器内容没有改变 0 (7) DX=0186H ;平均分存入 AVERAGE 中 结果 0
(8) AL=04H 0 (9) BH=0F0H 0 (10) AX=4A10H (11) BX=1E6CH (12) DX=4186H 12、参考答案: (1)程序片段如下: LEA SI,STRING LEA DI,GET_CHAR MOV CX,26 CLD REP MOVSB (2)程序片段如下:先定义一个附加段,用来存放’The computer’ EXTRA SEGMENT S2 DB ‘The computer’ EXTRA ENDS … LEA SI,STRING LEA DI,S2 MOV CX,12 CLD REPZ CMPSB JZ NEXT ;若比较的两个字符串相同,则跳到 NEXT 执行 MOV AL,0 SUB CL,12 NEG CL MOV BL,CL RET NEXT: MOV AL,1 MOV BL,12 RET (3)程序片段如下: LEA DI,STRING;被查找的字符串 STRING 作为目的串 MOV AL,’&’ MOV CX,26 CLD REPNZ SCASB JNZ EXIT ;如果没有找到,直接退出 DEC DI MOV BYTE PTR ES:[DI],20H ;用空格字符替换 EXIT: RET (4)完整的程序如下*: ;这里的 DATA 既作为数据段,又作为附加段,即数据段和附加段公用一个段 DATA SEGMENT ; 若比较的两个字符串不相同 ;比较的次数存入 BL 中 0 0 0 ;找到’&’字符的位置 STRING DB ‘The Personal Computer & TV’ COUNT EQU $-STRING CAPS DB COUNT DUP(0) CHART DB COUNT DUP(0) DATA ENDS
CODE SEGMENT ASSUME DS:DATA,ES:DATA,CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX ;把字符串中大写字母传送到 CAPS 开始的单元中 LEA SI,STRING LEA DI,CAPS MOV CX,COUNT CLD AGAIN1:LODSB CMP AL,41H JB NEXT1 CMP AL,5AH JA NEXT1 STOSB NEXT1:LOOP AGAIN1 ;把字符串中其余字母传送到 CHART 开始的单元中 LEA SI,STRING LEA DI,CHART MOV CX,COUNT CLD AGAIN2:LODSB CMP AL,41H JB NEXT CMP AL,5AH JBE NEXT2 STOSB NEXT: NEXT2:LOOP AGAIN2 ;将 STRING 字符串清零 LEA DI,STRING MOV AL,0 MOV CX,COUNT CLD REP STOSB RET MAIN ENDP CODE ENDS END MAIN 13、完整的程序如下: CODE SEGMENT ASSUME CS:CODE MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX
分享到:
收藏