微机原理习题与实验-F 下载本文

SCORE DB 30 DUP(?) ORG 2000H SEQU DB 30 DUP(?) DATA ENDS

STACK SEGMENT

STA DW 32 DUP(?) TOP DW ? STACK ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX

MOV SP,TOP MOV AH,09H

MOV DX,OFFSET MESS1 INT 21H MOV SI,OFFSET SCORE MOV CX,STUNUM UUU: CALL GETNUM MOV [SI],DL INC SI LOOP UUU

MOV CX,STUNUM MOV DI,OFFSET SEQU VVV: CALL SCAN MOV AL,STUNUM SUB AL,CL

INC AL MOV BX,DX

MOV [DI+BX],AL LOOP VVV

MOV CX,STUNUM MOV SI,OFFSET SEQU WWW: MOV AL,[SI] CALL DISPI PUSH DX PUSH AX

MOV AH,02 MOV DL,20H INT 21H POP AX POP DX INC SI

;初始化

;显示提示信息 ;成绩表首址 ;学生数送CX

;读取键入数值送DX ;存入成绩表缓冲区 ;指向下一单元 ;学生数 ;名次表首址 ;扫描子程序 ;学生数 ;计算名次

;记DX学号对应名次;学生数 ;名次表首址

LOOP WWW ;显示排定的学生名次 MOV AX,4C00H INT 21H

SCAN PROC NEAR ;子程序,每扫描一遍成绩表缓冲区, 找出其 PUSH CX ;中成绩最高者(由DX指针指示对应学生),之 MOV CX,STUNUM ;后将该成绩清除以便下一次扫描学生数 MOV AL,00H MOV BX,OFFSET SCORE MOV SI,BX CCC: CMP AL,[SI] JAE JJJ MOV AL,[SI] MOV DX,SI SUB DX,BX JJJ: INC SI LOOP CCC ADD BX,DX

MOV BYTE PTR [BX],00H POP CX RET SCAN ENDP

DISPI PROC NEAR PUSH CX MOV BL,AL MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISPL MOV DL,BL AND DL,0FH CALL DISPL POP CX RET DISPI ENDP

DISPL PROC NEAR ADD DL,30H CMP DL,3AH JB DDD ADD DL,27H DDD: MOV AH,02H INT 21H RET

DISPL ENDP

;最低成绩 ;指向成绩表首址 ;AL中的成绩不低于成绩表指 ;针SI所指单元的成绩则转JJ ;AL存放较高的成绩 ;DX为对应学号 ;指向下一单元 ;本次扫描成绩最高者清0

GETNUM PROC NEAR PUSH CX XOR DX,DX GGG: MOV AH,01H INT 21H

CMP AL,0DH JZ PPP

SUB AL,30H JB KKK CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL,07H CMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2FH JA KKK SUB AL,20H GETS: MOV CL,04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGG

KKK: MOV AH,09H

MOV DX,OFFSET ERROR INT 21H PPP: PUSH DX CRLF

POP DX POP CX RET

GETNUM ENDP CODE ENDS END START

第5章 存储器

5.1 知识要点

1.半导体存储器存贮器的分类,

半导体存储器存贮器的分类即随机读写存储器(RAM)和只读存储器(ROM)。对于随机读写存储器,有可分为静态随机读写存储器和动态随机读写存储器,静态随机读写存储器的存储原理是利用双稳态触发器存储信息,动态随机读写存储器的存储原理是利用电容来存储信息。对于动态随机读写存储器,由于电容泄漏电荷,存储单元的电荷需要定时补充,故动态随机读写存储器需要刷新。

2.常用的存储芯片,静态的RAM主要以6264为例,动态的RAM主要以2164为例。 6264芯片是一个容量为8K×8bit的MOS型SRAM芯片,含有8K个存储单元,每个存储单元存储8位二进制信息,共有28条引线,包括13根地址线、8根数据线和4根控制信号线。

2164含有64K个存储单元,每个单元存储1位信息。 2. 地址译码

地址译码的方法:全地址译码和部分地址译码。

全地址译码方法全地址译码就是把系统中全部地址线与芯片连接,其中高位地址线经过译码电路译码后作为芯片的片选信号;低位地址线与系统中的相应地址线一对一连接。全地址译码方式下,每个存储单元都有唯一的地址。

部分地址译码就是只使用系统地址总线中的一部分与芯片中的地址线相连。高位地址线只使用了一部分经过译码电路译码后作为芯片的片选信号;低位地址线与系统中的相应地址线一对一连接。采用部分地址译码时,存储单元的地址不唯一,存在地址重叠现象。

3. 介绍存储器的扩展

任何存储芯片的存储容量都是有限的。要构成一定容量的内存,往往单个芯片不能满足要求,可能是存储单元个数不够,也可能字长不符合要求,更可能字长、存储单元数都不能满足要求。这时就需要多个存储芯片组合,这种组合称为存储器的扩展。存储器扩展包括位扩展、字扩展和字位扩展三种方式。

当存储芯片每个单元的字长小于所需内存单元字长时,需要用多个芯片构成满足字长要求的存储模块,这就是位扩展。

当存储芯片的容量小于所需内存容量时,需要用多个芯片构成满足容量要求的存储器,这就是字扩展。

5. 只读存储器

只读存储器ROM一般用于存放固定的程序,如BIOS。常用的只读存储器类型有:掩膜式ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM (E2PROM)和闪存(Flash Memry)。

6. 高速缓冲存储器

为了缓解CPU和内存之间存取速度的矛盾,在CPU和内存之间插入一小块SRAM,称为Cache,将当前正在执行的指令及相关联的后继指令集从内存读到Cache,使CPU执行下一条指令时,从Cache中读取。Cache的存在使CPU既可以以较快的速度读取指令和数据,又不至于使微机的价格大幅提高。

高速缓冲存储器的工作原理是基于程序和数据访问的局部性。