五,问答题
某微机有16条地址线,现用SRAM 2114(1K×4)存储器芯片组成存储系统。 1
问:(1) 采用线选法译码时,系统的存储器容量最大为多少?此时需要多少个2114 存储器芯片? (2)若采用全译码译码,系统最大存储量又为多少?需要多少2114芯片? 答:(1)采用线选法Mmax=6KB,芯片数为12片。
(2)采用全译码法Mmax=64KB,芯片数为128片。
某微机有16条地址线,现用DRAM 2118(16K×1)存储器芯片组成存储系统。 2
问:(1) 采用线选法译码时,系统的存储器容量最大为多少?此时需要多少个2118 存储器芯片? (2) 若采用全译码法译码,系统最大存储量又为多少?需要多少2118芯片? 答:(1)采用线选法Mmax=32KB,芯片数为16片。
(2)采用全译码法Mmax=64KB,芯片数为32片。
某微机系统,ROM为2KB,其最后一个单元的地址为1FFFH;RAM为3KB。已知其地址是连续的,且ROM3
在前,RAM在后。求该存储器的首地址和末地址。 答:首地址1800H 未地址2BFFH
某微机系统中,用两片EPROM2716(2K×8)和2片SRAM2114(1K×4)组成存储器系统。已知EPROM在前,4
SRAM在后,起始地址为0800H。试写出每一存储芯片的地址空间范围。 答;第一片:0800H——OFFFH;第二片:000FFH——17FFH; 第三片:1800H——1BFFH;第四片:1800H——1BFF
用256×4RAM芯片和74LS139(2:4译码器)构成一个1K的存储器子系统,试画出存储器系统与CPU的5
连接图。
解:用256×4 RAM芯片构成一个1K的存储器子系统,需进行位扩充和字扩充,两个芯片一组,共需8个芯片。存储器系统与CPU的连接图如下:
A0~A7 A0~A7 CS1 256×4 A0~A7 CS1 256×4 A0~A7 CS4 256×4 A0~A7 CS4 256×4 ??? D0~D3 D0~D7 D4~D7 D0~D3 D4~D7 A8 A9
2:4 74LS139
CS1 CS2 CSCS3 4
对8253定时/计数器各通道的初始化编程是否要按一定顺序?初始化包括哪些内容?设8253的端口地址6
为360H,362H,364H,366H,试对其3个通道进行初始化编程,使计数器0设置为方式1,计数初值为2500H;计数器1设置为方式2,计数初值为3000H,计数器2设置为方式3,计数初值为1000。
答:8253定时/计数器各通道的初始化编程,可以不按一定顺序进行,这是因为在控制字格式中设定了通道的选择位,用于选择不同的通道。8253初始化编程主要是写入控制字和写入计数初值二个内容。初始化编程时,一定要先写入控制字,再写入计数初值。对每个计数器,控制字必须写在计数值之前。这是因为计数器的读/写格式由它的控制字决定。 计数器0初始化
控制字:00100010B=22H 计数初值:2500H
MOV AL,22H MOV DX,366H OUT DX,AL MOV AL,25H MOV DX,360H OUT DX,AL 计数器1初始化
控制字:01100100B=64H 计数初值:3000H
MOV AL,64H MOV DX,366h OUT DX,,AL MOV AL,30H MOV DX,362H OUT DX,AL
计数器0初始化
控制字:10100111B=0A7H
计数初值:2500H
MOV AL,0A7H MOV DX,366h OUT DX,AL MOV AL,10H MOV DX,364H OUT DX,AL
将8253的计数器1作为5ms定时器,设输入时钟频率为200kHz,计数器1的端口地址为7
3F82H,控制口地址为3F86H,试编写8253的初始化程序
注:8253控制格式为 D7D6:选择通道。
D5D4:00—计数器锁存;
01—只读/写计数器低字节;
10—只读/写计数器高字节;
11—先读/写计数器低字节,再读/写计数器高字节。 D3D2D1:确定工作方式。
D0:1—BCD码计数;0—二进制计数。 解:(1)计数初值N计算
已知输入时钟CLK频率为200kHz,则时钟周期为T=1/f=1/200kHz=5μs,于是计数初值N为:N=5ms/T=5ms/5μs=1000。 (2)确定控制字
按题意选计数器1,按BCD码计数,工作于方式0,由于计数初值N=1000,控制字D5D4应为11,于是8253的控制字为:01100001B=61H。 (3)选择8253各端口地址
设计数器1的端口地址为3F82H,控制口地址为3F86H。 (4) 初始化程序如下
MOV AL,61H MOV DX,3F86H OUT DX,AL MOV DX,3F82H MOV AL,10H OUT DX,AL 试画出并行接口典型结构简图。 8
8086CPU 数据信息 控制信息 状态信息 地址信息 状态端口 控制信息 数据端口 数据信息 外 设 状态信息 控制端口 设8255A的A口,B口,C口和控制寄存器的端口地址为80H、82H、84H和86H。要求A口工作在方式09
输入,B口工作方式0输入,C口高4位输入,低4位输出。试编写8255A的初始化程序 答:方式控制字为:10011010B=9AH
初始化的程序段为: MOV AL,9AH OUT 86H,AL
试画出串行接口典型结构简图。 10
8086CPU 数据状 态 寄 存 状态控制数 据 输 出 寄 并行输入/串行输串行输入/并行输地址数 据 输 入 寄 串行串行控 制 寄 存 控制 外 设 状态
以下程序的功能是:从键盘输入一行字符,要求第1个键入的字符必须是空格符。如果不是则退出程序,11
如果是则开始接受键入的字符并按顺序存放在首址为BUFFER的缓冲区中(空格符不存入),直到接收到第2个空格符时退出程序。请将程序补充完整。 DATA SEGMENT
BUFFER DB 80 DUP(?) FLAG DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX
LEA BX,BUFFER MOV FLAG,0
NEXT: MOV AH,01H INT 21H
TEST FLAG,01H JNZ FOLLOW CMP AL,20H JNZ EXIT MOV FLAG,1 JMP NEXT
FOLLOW:CMP AL,20H JZ EXIT
MOV [BX],AL INC BX JMP NEXT
EXIT:MOV AH,4CH INT 21H CODE ENDS END START
以下程序的功能是:完成 Y=2(A+B)-C,请将程序补充完整。STACK STACK SEGMENT STACK 12
DW 20H DUP(0) STACK ENDS DATA SEGMENT A DB 25 B DB 43 C DB 76 Y DB ? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX
MOV AL,A ADD AL,B SAL AL,1 SUB AL,C MOV Y,AL MOV AH,4CH INT 21H CODE ENDS
END START
用2114SRAM芯片(1K*4位)组成4K*8位的RAM,试问需要多少片芯片?在位方向和字13
方向上分别需要进行什么样的扩充?片内寻址需要多少根地址线?片选需要多少根地址线?
共8片;两片2114SRAM芯片组成1K*8位,4组1K*8位的RAM组成4K*8位的RAM;片内需10根地址线,片选需2根地址线
请说明8086CPU有多少根数据线及地址线?可寻址的内存空间是多少? 14
数据线:16根;地址线:20根;可寻址空间为1M 在EDIT中编辑源程序(.ASM),用汇编程序(masm)将源程序编程目标程序(.OBJ),15
用LINK程序将目标程序变成可执行文件(.EXE),在DEBUG程序中调试(.EXE)。 某一8086CPU系统中,采用一个8259A进行中断管理,设定8259A工作在普通全嵌套方式,16
发自动结束中断,采用边沿触发方式请求中断,IR0对应的中断向量号为90H,奇地址端口21H,偶地址端口20H,请编写8259A的初始化程序段。 MOV AL,13H OUT 90H,AL MOV AL,90H OUT 91H,AL MOV AL,03H OUT 91H,AL
下列程序执行后BL、AL寄存器中存放的是8259A的哪个寄存器的内容? 17
MOV AL,0BH
OUT 20H,AL (BL)=ISR (AL)=IMR NOP
IN AL,20H MOV BL,AL IN AL,21H
编写 S=1+3+5+??+99 18
DATA SEGMENT S DW 0 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CALL LOOP MOV AH,4CH INT 21H LOOP PROC MOV CX,100 MOV AX,0
NEXT: INC AX ADD S,AX LOOP NEXT RET
LOOP ENDP CODE ENDS
END START
编程 S=2+4+6+??+100 19
DATA SEGMENT S DW 0 DATA ENDS
STACK SEGMENT STACK DW 20H DUP(0) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA START:MOV AX,DATA MOV DS,AX CALL LOOP MOV AH,4CH INT 21H
LOOP PROC MOV CX,50 MOV AX,0
NEXT: INC AX INC AX ADD S,AX LOOP NEXT RET
LOOP ENDP CODE ENDS
END START
指出下列指令中源操作数和目标操作数的寻址方式。若是存储器寻址,写出其有效地址EA和物理地址20
PA的计算表达式. CMP AX,[BP]
源操作数:寄存器间接寻址(1分), EA=(BP) (1分),PA=(SS)*16+EA(1分);目标操作数:寄存器寻址(1分)
MOV ES:[SI],BX 源操作数:寄存器寻址(1分);目标操作数:寄存器间接寻址(1分),EA=(SI) (1分),PA=(ES)*16+EA(1分)
ADD DS,[BX+DI]
源操作数:基址+变址寻址(1分),EA=(BX)+(DI) (1分),PA=(DS)*16+EA(1分);目标操作数:寄存器寻址(1分) PUSH DS
源操作数:寄存器寻址(1分);目标操作数:固定寻址(1分),EA=(SP) (1分),PA=(SS)*16+EA(1分) SUB BX,[0401H]
源操作数:直接寻址(1分),EA=0401H (1分),PA=(DS)*16+EA(1分);目标操作数:寄存器寻址(1分) 21
设有一个具有20位地址和32位字长的存储器,问:( 10 分) 22
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512×8位SRAM芯片组成,需要多少片? (3)需要多少位地址作芯片选择?
2020
解:(1)32位字长为4B,2 = 1M = 1024K,存储器容量为2×4B = 4MB,可存储4M字节的信息 (2)SRAM芯片容量为512K×8位 = 512KB = 0.5MB 所需芯片数目为:4MB ÷ 0.5MB = 8片
19
(3)因为2 = 512K,即芯片片内地址线19位,存储器容量为1M,地址线为20位,故需1位地址线作芯片片选选择(CS),用A19选第1个模块,用A19选第2个模块。
指出下列指令中源操作数和目标操作数的寻址方式。若是存储器寻址,写出其有效地址EA和物理地址23
PA的计算表达式(每题4分,共20分)。 AND [BP+SI],0FF00H
源操作数:立即寻址(1分);目标操作数:基址+变址寻址(1分),EA=(BP)+(SI) (1分),PA=(SS)*16+EA(1分)
OR [BX],DI
源操作数:寄存器寻址(1分);目标操作数:寄存器间接寻址(1分),EA=(BX),P(1分)A=(DS)*16+EA(1分)
MOV [1000H],100
源操作数:立即寻址(1分);目标操作数:直接寻址(1分),EA=1000H(1分),PA=(DS)*16+EA(1分) POP AX
源操作数:固定寻址(1分),EA=(SP) (1分),PA=(SS)*16+EA(1分);目标操作数:寄存器寻址(1分) TEST [DI+10],CX
源操作数:寄存器寻址(1分);目标操作数:变址寻址(1分);EA=(DI)+10(1分),PA=(DS)*16+EA(1
分)
试编写一段程序,以实现8086系统中8259A的IRR、ISR、IMR3个寄存器的内容读出,并送入存储器从24
0080H开始的数组中,设8259A的偶地址为20H,奇地址为21H. MOV AL,0AH OUT 20H,AL IN AL,20H MOV [080H],AL MOV AL,0BH OUT 20H,AL IN AL,20H MOV [081H],AL IN AL,21H MOV [082H],AL 编写 S=2(34+88)-56 25
STACK SEGMENT STACK DW 20H DUP(0) STACK ENDS DATA SEGMENT X DB 34 Y DB 88 Z DB 56 S DB ? DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AL,X ADD AL,Y SAL AL,1 ADD AL,Z MOV S,AL MOV AH,4CH INT 21H CODE ENDS
END START