学习-----好资料
20. 编程,在数据段DATA1开始的80个连续的存储单元中,存放80位同学某门课程
的考试成绩(0~100)。编写程序统计成绩≥90分的人数,80~89分的人数,70~79分的人数,60~69分以及<60分的人数。将结果存放到DATA2开始的存储单元中。
解:DATA SEGMENT
DATA1 DB 80 DUP(?) ;假定学生成绩已放入这80个单元中 DATA2 DB 5 DUP(0) ;统计结果的存放单元 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV CX,80 ;统计80个学生的成绩
LEA SI,DATA1 LEA DI,DATA2
AGAIN: MOV AL,[SI] CMP AL,90 ;与90比较
JC NEXT1 ;小于90分,转NEXT1 INC BYTE PTR [DI] ;否则90分以上的人数加1
JMP STO ;转循环控制处理 NEXT1: CMP AL,80 ;与80比较
JC NEXT2 ;小于80分,转NEXT2
INC BYTE PTR[DI+1] ;否则80分以上的人数加1 JMP STO
NEXT2: CMP AL,70 ;与70比较 JC NEXT3 ;小于70分,转NEXT3
INC BYTE PTR [DI+2] ;否则70分以上的人数加1
JMP STO
NEXT3: CMP AL,60 ;与60比较
JC NEXT4 ;小于60分,转NEXT4
INC BYTE PTR [DI+3] ;否则60分以上的人数加1 JMP STO ;转循环控制处理 NEXT4 NEXT4: INC BYTE PTR [DI+4] ;60分以下的人数加1 STO: INC SI ;指向下一个学生成绩 LOOP AGAIN ;循环,直到所有成绩都统计完 MOV AH,4CH ;返回DOS INT 21H CODE ENDS
END START
更多精品文档
学习-----好资料
第五章习题及答案
1. 半导体存储器按照工作方式可分为哪两大类?它们的主要区别是什么? 答:(1)半导体存储器按照工作方式可分为ROM 和 RAM 。
(2)它们之间的主要区别是:
ROM在正常工作时只能读出,不能写入。RAM则可读可写。 断电后,ROM中的内容不会丢失,RAM中的内容会丢失。
2. 静态RAM和动态RAM的存储元的工作原理是什么? 动态RAM为什么需要定时刷新?
答:(1)静态RAM的存储元的工作原理是利用双稳态触发器的工作原理保存信息; 动态RAM的存储元的工作原理是把电荷存储到电容中来实现信息存储。
(2)DRAM的存储元以电容来存储信息,由于存在漏电现象,电容中存储的电荷会逐渐泄漏,从而使信息丢失或出现错误。因此需要对这些电容定时进行“刷新”。
3. 存储器的地址译码方法有哪两种方式?
答:存储器的地址译码方法有:全地址译码和部分地址译码两种。
4. 什么是位扩展?什么是字扩展?
答:(1)当存储芯片每个单元的字长小于所需内存单元字长时,需要用多个芯片构成满足字长要求的存储模块,这就是位扩展。
(2)当存储芯片的容量小于所需内存容量时,需要用多个芯片构成满足容量要求的存储器,这就是字扩展。
5. 设计一个4KB ROM与4KB RAM组成的存储器系统,芯片分别选用2716(2K×8)和6116
(2K×8),其地址范围分别为4000H~4FFFH和6000H~6FFFH,CPU地址空间为64K,画出存储系统与CPU连接图。
答:分析:2716(2KX8) 11根地址线 A0~~A10
6116(2KX8) 11根地址线 A0~~A10 CPU:64K= 26X210 16根地址线 A0~~A15
分别需芯片个数:
2716: 4KX8/ 2KX8=2 6116: 4KX8/ 2KX8=2
更多精品文档
学习-----好资料
将地址展开成二进制:① 4KB的ROM地址空间 4000H~4FFFH
A15 A14 A13 A12 A11 A10…..A0 0 1 0 0 0 0…… 0 0 1 0 0 0 1……1 0 1 0 0 1 0……0 0 1 0 0 1 1 ……1
2716(2KX8):2片
第一片 地址范围:4000~~47FFH 第二片 地址范围:4800H~~4FFFH ②4KB的RAM地址空间:6000H~6FFFH
A15 A14 A13 A12 A11 A10…..A0 0 1 1 0 0 0……0 0 1 1 0 0 1……1 0 1 1 0 1 0……0 0 1 1 0 1 1 ……1
6116(2KX8):2片
第一片 地址范围:6000~~67FFH 第二片 地址范围:6800H~~6FFFH
利用:CPU 的剩余地址线A15~A11,使用3:8译码器进行全地址译码,生成片选信号#Y0 、#Y1、#Y4、#Y5,为四个芯片使用。 C B A # Y A15 A14 A13 A12 A11
0 1 0 0 0 #Y0 0 1 0 0 1 #Y1 0 1 1 0 0 #Y4 0 1 1 0 1 #Y5
存储系统与CPU连接图如下图所示:
更多精品文档
学习-----好资料
D0~D7 A0 A10 MEMR D0~D7 A0 A10 2716 WE A0 A10 D0~D7 … … … MEMW D0~D7 A0 A10 MEMR MEMW A14 MEMW A15 … … OE R/WD0~D7 A0 A10 6116 OE … CE 2716 OE CE WE CS D0~D7 A0 A10 6116 OE CS R/W… … … … G 1 G 2A G 2B C B A 74LS138 Y0 Y1 Y4 Y5 A13 A12 A11
6. 试利用全地址译码将6264芯片接到8088系统总线上,使其所占地址范围为32000H~
33FFFH。
答:将地址范围展开成二进制形式如下图所示。
0011 0010 0000 0000 0000 0011 0011 1111 1111 1111
6264芯片的容量为8K×8,需要13根地址线A0~A12。而剩下的高7位地址应参加该芯片的地址译码。 电路如图所示:
更多精品文档
学习-----好资料
8088系统 BUSD0~D7A 0 A 12MEMW MEMR SRAM 6264 D0~D7 A 0 A 12WE CS2 OE · · ·+5V A 19 18A A17 A16 A15 A14 A13 & CS1
7. 若采用6264芯片构成内存地址从20000H~8BFFFH的内存空间,需要多少片6264芯
片?
答:从20000H~8BFFFH的内存空间共有8BFFFH-20000H+1=6C000H(432K)个字节,每个6264芯片的容量位8KB,故需432/8=54片。
8. 设某微型机的内存RAM区的容量为128KB,若用2164芯片构成这样的存储器,需多少
2164芯片?至少需多少根地址线?其中多少根用于片内寻址?多少根用于片选译码? 答:
(1)每个2164芯片的容量为64K×1bit,共需128/64×8=16片。 (2)128KB容量需要地址线17根。 (3)16根用于片内寻址。 (4)1根用于片选译码。
注意,用于片内寻址的16根地址线要通过二选一多路器连到2164芯片,因为2164芯片是DRAM,高位地址与低位地址是分时传送的。
9. 高速缓冲存储器的工作原理是什么?为什么设置高速缓冲存储器? 答:(1)高速缓冲存储器的工作原理是基于程序和数据访问的局部性原理。 (2)设置高速缓冲存储器为了缓解CPU和内存之间存取速度的矛盾,将当前正在执
行的指令及相关联的后继指令集从内存读到Cache,使CPU执行下一条指令时,从Cache中读取。Cache的存在使CPU既可以以较快的速度读取指令和数据,又不至于使微机的价格大幅提高。
10. 现有两片6116芯片,所占地址范围为61000H~61FFFH,试将它们连接到8088系统
中。并编写测试程序,向所有单元输入一个数据,然后再读出与之比较 ,若出错则显示“Wrong!“,全部正确则显示”OK!“。
更多精品文档