《微型计算机原理与接口技术》第三版)习题答案

MOV DL,0

LEA SI,BLOCK LP: MOV AH,1 INT 21H

CMP AL,0DH JZ EXIT

MOV [SI],AL CMP AL,30H JAE NEXT CMP AL,39H JBE NEXT INC DL NEXT: INC SI JMP LP

EXIT: MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS

END START

3.16 已知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元。

【解答】

DATA SEGMENT

BLOCK DB -7,1,12,-90,-70,34,-1,56,45,-12 DB -3,-4,23,0,12,11,-9,-8,67,-56 CN EQU $-BLOCK COUNT DB ? DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0

LEA SI,BLOCK MOV CX,CN LP: MOV AL,[SI] TEST AL,80H JZ NEXT INC DL NEXT: INC SI LOOP LP

MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS

END START

3.17 从键盘输入一个大写英文字母,将其转换为小写字母并显示出来,要求输入其它字符时,能够有出错提示信息。

【解答】

DATA SEGMENT

MESS DB 'INPUP ERROR!',0AH,0DH,'$' DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX

MOV AH,01H INT 21H

CMP AL,'A' JB ERR CMP AL,'Z' JA ERR

ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXIT

ERR: MOV DX,OFFSET MESS MOV AH,09H INT 21H

EXIT: MOV AH,02H INT 21H CODE ENDS

END START

3.18 比较宏指令与子程序,它们有何异同?它们的本质区别是什么?

【解答】宏与子程序两者的相同之处在于都是用来处理在编程过程中多次使用的功能程序的方法,两者均能简化源程序。

两者的区别在于:

(1)宏调用通过宏指令名进行,汇编时,随时调用随时展开,并不简化目标程序;子程序调用是在程序执行期间执行CALL指令,代码只在目标程序中出现一次,所以也简化了目标程序。

(2)宏调用时的参数由汇编程序通过实参转换成形参的方式传递,具有很大的灵活性。宏定义中允许设置若干形式参数代替数值、指令、寄存器、各种字符串等。宏调用时可用程序所需要的实际参数来替换,使编程人员感觉非常灵活;而子程序的参数传递要麻烦得多。

(3)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。

故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。 3.19 试定义将一位十六进制数转换为ASCII码的宏指令。 【解答】

HEXTOA MACRO AND AL,0FH CMP AL,9 JNA HEXTOA1 ADD AL,7H

HEXTOA1:ADD AL,30H ENDM

3.20 试定义一个字符串搜索宏指令,要求文本首地址和字符串首地址用形式参数。 【解答】

SCANC MACRO ADDRESS,CHAR1 MOV SI,ADDRESS MOV AL,[SI] MOV DI,CHAR1 REPNZ SCASB ENDM

习题4

4.1 半导体存储器有哪些优点?SRAM、DRAM各自有何特点?

【解答】特点是容量大、存取速度快、体积小、功耗低、集成度高、价格便宜。

SRAM存放的信息在不停电的情况下能长时间保留不变,只要不掉电所保存的信息就不会丢失。而DRAM保存的内容即使在不掉电的情况下隔一定时间后也会自动消失,因此要定时对其进行刷新。

4.2 ROM、PROM、EPROM、E2PROM、Flash Memory各有何特点?用于何种场合?

【解答】掩膜式ROM中的信息是在生产厂家制造时写入的。制成后,信息只能读出不能改写。 PROM中晶体管的集电极接VCC,基极连接行线,发射极通过一个熔丝与列线相连。出厂时,晶体管阵列的熔丝完好。写入信息时,选中某个晶体管,输入高低电平保留或烧断熔丝对应1和0。烧断熔丝不能再复原,因此只能进行一次编程。

EPROM芯片的顶部开有一石英窗口,通过紫外线的照射可擦除片内原有信息,一块芯片可多次使用,缺点是只能进行整片写。

E2PROM是可用电擦除和编程的只读存储器,能在线读写,断电情况信息不丢失,能随机改写;其擦写次数可达1万次以上,数据可保存10年以上。可作为系统中可靠保存数据的存储器。

Flash Memory是新型的半导体存储器,可实现大规模电擦除,擦除功能可迅速清除整个存储器的所有内容;可高速编程;闪速存储器可重复使用,适用于文件需要经常更新的可重复编程应用中。对于需要实施代码或数据更新的嵌入性应用是一种理想的存储器。

4.3 动态RAM为什么需要经常刷新?微机系统如何进行动态RAM的刷新?

【解答】动态RAM是利用电容存储电荷的原理来保存信息的,由于电容会泄漏放电,所以,为保持电容中的电荷不丢失,必须对动态RAM不断进行刷新。

DRAM的刷新常采用两种方法:一是利用专门的DRAM控制器实现刷新控制,如Intel 8203控制器;二是在每个DRAM芯片上集成刷新控制电路,使存储器件自身完成刷新,如Intel 2186/2187。

4.4 常用的存储器地址译码方式有哪几种?各自的特点是什么? 【解答】

线选译码:连接简单,无须专门的译码电路;缺点是地址不连续,CPU寻址能力的利用率太低,会造成大量的地址空间浪费。

全译码:将低位地址总线直接连至各芯片的地址线,余下的高位地址总线全部参加译码,译码输出作为各芯片的片选信号。可以提供对全部存储空间的寻址能力。

部分译码:该方法只对部分高位地址总线进行译码,以产生片选信号,剩余高位线可空闲或直接用作其它存储芯片的片选控制信号。

4.5 半导体存储器在与微处理器连接时应注意哪些问题?

【解答】半导体存储器与CPU连接前,要确定内存容量的大小并选择存储器芯片的容量大小,要考虑存储器地址分配问题;在进行存储器地址分配时,要将ROM和RAM分区域安排。

4.6 计算机在什么情况下需要扩展内存?扩展内存需要注意哪些问题?

【解答】单个存储芯片的存储容量是有限的,因此常常需要将多片存储器按一定方式组成具有一定存储单元数的存储器。

4.7 已知某微机系统的RAM容量为4K×8位,首地址为2600H,求其最后一个单元的地址。 【解答】RAM的容量为4K×8位=4KB,对应的地址有4K个,首地址为2600H,则其最后一个单元的地址为

2600H+(4K—1)= 2600H+4095 = 2600H+FFFH = 35FFH 4.8 已知一个具有14位地址和8位数据的存储器,回答下列问题:

(1)该存储器能存储多少字节的信息?

(2)如果存储器由8K×4位RAM芯片组成,需要多少片? (3)需要多少位地址作芯片选择?

【解答】(1)该存储器能存储的字节个数是214= 24×210 = 16K。

(2)该存储器能存储的总容量是16KB,若由8K×4位RAM芯片组成,需要的片数为(16K×8)/(8K×4)= 4片

(3)因为该存储器中读写数据的宽度为8位,所以4片8K×4位RAM芯片要分成两组,用一位地址就可区分;另一方面,每一组的存储容量为8K×8位 = 213×8位,只需要13位地址就可完全访问。

4.9 用16K×1位的DRAM芯片组成64K×8位的存储器,要求画出该存储器组成的逻辑框图。 【解答】总容量为64K×8位,由16K×1位的DRAM芯片组成: (64K×8位)/(16K×1位)= 32片

既要进行位扩展又要进行字扩展:由8片组成一组进行位扩展,由这样的4组进行字扩展。 每一组的存储容量为16K×8位 = 16KB = 214B,需要14位地址做片内寻址;4组芯片需要2位地址做片组选择,即片选信号。

逻辑框图见图4-1。为清楚起见,图中只画出了各个芯片的部分连线。

D7…D016K×1 CS……16K×1 CS…………16K×1 CSCPU……16K×1 CS16K×1 CS……16K×1 CS……A0…A13A14A15译码器……

4.10 若用4K×1位的RAM芯片组成16K×8位的存储器,需要多少芯片?A19~A0地址线中哪些参与片内寻址?哪些作为芯片组的片选信号?

【解答】(16K×8位)/(4K×1位)= 32片

每8片一组,分成4组。每组的存储容量为4KB = 212B,片内寻址需要12位地址线,即A11~A0;4组芯片可用2位地址线进行区分,即可用A13~A12做片选信号,A19~A14可浮空或做其他用途。

4.11 若用2114芯片组成2KB RAM,地址范围为3000H~37FFH,问地址线应如何连接?(假设CPU有16条地址线、8条数据线)

【解答】2114芯片单片容量为1K×4位,组成2K×8位RAM需要: (2K×8位)/(1K×4位)= 4片

每2片一组,分成2组。每组的存储容量为1KB = 210B,片内寻址需要10位地址线。对应的地址范围为3000H~37FFH = 0011000000000000B ~ 0011011111111111B,可见,CPU的16条地址线中A9~A0用于片内寻址,A10用做片选信号,A13~A12接高电平,A15~A14、A11接地。

4.12 简述计算机中为什么要采用高速缓存器Cache?分析其工作原理。

【解答】Cache存储空间较小而存取速度很高,位于CPU和主存之间,用来存放CPU频繁使用的指令和数据,可以减少存储器的访问时间,所以能提高整个处理机的性能。

图4-1 题4.9存储器组成逻辑图

联系客服:779662525#qq.com(#替换为@)