微型计算机原理与接口技术(答案)(3)

2019-08-03 12:56

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 【解答】程序第8行错误:LEA SI,OFFSET DD1,应去掉OFFSET;

程序第10行错误:RCR AL,CL,应使用ROR或ROL,改为ROR AL,CL3.11 已知用寄存器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。

【解答】参考程序如下:

LEA BX,BUF MOV AX,[BX] ADD AX,[BX+2] ADD AX,[BX+4] MOV [BX+6],AX

3.12 分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性? 【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下:

(1)代码段用来存放程序和常数。 (2)数据段用于数据的保存。

(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。 (4)附加数据段用于数据的保存。

语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。 3.13 执行完下列程序后,回答指定的问题。

MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX

ADD BX,2 LOOP LP

问:(1) 该程序的功能是 。

(2) 程序执行完成后,(AX)= 。 【解答】

(1)完成0到100间所有偶数求和的功能。 (2)2550

3.14 编写程序,计算下面函数的值。

?2x?s??3x?4x?【解答】

(x?0)(0??x??10)x?10

DATA SEGMENT

X DW 34 S DW ? DATA ENDS

CODE SEGMENT

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

MOV AX,X ;将X送到AX中 CMP AX,0 ;(AX)>0吗? JL DOUB ;是,转向doub

CMP AX,10 ;否,(ax)<10吗?

11

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 JLE TRIB ;是,转向trib SAL AX,1 ;否,乘以4 SAL AX,1 JMP EXIT

DOUB: SAL AX,1 ;乘以2 JMP EXIT

TRIB: SAL AX,1 ;乘以3 ADD AX,X

EXIT: MOV S,AX ;保存结果 MOV AH,4CH ;结束 INT 21H CODE ENDS

END START

注意,在比较的过程中使用的是针对带符号数的跳转指令,χ应该看作带符号数。程序中还用了移位指令代替了乘法指令。

3.15 从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。 【解答】

DATA SEGMENT

BLOCK DB 100 DUP (?) COUNT DB ? DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX 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

12

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 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)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。

13

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。 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寻址能力的利用率太低,会造成大量的地址空间浪费。

14

免费学习资料及资源网 木木家园(www.mumu-home.cn) 大学生综合资料网 全译码:将低位地址总线直接连至各芯片的地址线,余下的高位地址总线全部参加译码,译码输出作为各芯片的片选信号。可以提供对全部存储空间的寻址能力。

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

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地址线中哪些参与片内寻

15

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


微型计算机原理与接口技术(答案)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钢筋混凝土单向板肋梁楼盖课程设计(样版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: