微型计算机原理及应用课后习题答案
李伯成《微机原理》习题 第一章
本章作业参考书目:
① 薛钧义主编 《微型计算机原理与应用——Intel 80X86系列》
机械工业出版社 2002年2月第一版
② 陆一倩 编 《微型计算机原理及其应用(十六位微型机)》
哈尔滨工业大学出版社 1994年8月第四版
③ 王永山等 编 《微型计算机原理与应用》
西安电子科技大学出版社 2000年9月
1.1将下列二进制数转换成十进制数:
X=10010110B=
1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21
=128D+0D+0D+16D+0D+0D+4D+2D=150D
X=101101100B
=1*28+0*27+1*26+1*25+0*24+1*23+1*22+ 0*21+0*20
=256D+0D+64D+32D+0D+16D+4D+0D=364D
X=1101101B=
1*26+1*25+0*24+1*23+1*22+0*21 +1*20
=64D+32D+0D+8D+4D+0D+1D=109D
1.2 将下列二进制小数转换成十进制数:
(1) X=0.00111B=
0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=
0D+0D+0.125D+0.0625D+0.03125D=0.21875D
(2) X=0.11011B=
1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=
0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D
(3) X=0.101101B=
1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=
0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D
1.3 将下列十进制整数转换成二进制数:
(1)X=254D=11111110B
(2)X=1039D=[1**********]B
(3)X=141D=10001101B
1.4 将下列十进制小数转换成二进制数:
(1) X=0.75D=0.11B
(2) X=0.102 D=0.0001101B
(3) X=0.6667D=0.101010101B
1.5 将下列十进制数转换成二进制数
(1) 100.25D= 0110 0100.01H
(2) 680.75D= 0010 1010 1000.11B
1.6 将下列二进制数转换成十进制数
(1) X=1001101.1011B =77.6875D
(2) X=111010.00101B= 58.15625D
1.7 将下列二进制数转换成八进制数
(1) X=101011101B=101‘011‘101B=535Q
(2) X=[1**********]10B=1‘101‘111‘010‘010B=15722Q
(3) X=110B=6Q
1.8 将下列八进制数转换成二进制数:
(1) X=760Q=111'110'000B
(2) X=32415Q=11'010'100'001'101B
1.9 将下列二进制数转换成十六进制数:
X=101 0101 1110 1101B= 5 5 E D H
X= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9H
X= 1000110001B= 10 0011 0001 B= 2 3 1 H
1.10 将下列十六进制数转换成二进制数:
X= ABCH= 1010 1011 1100 B
X=3A6F.FFH = 0011 1010 0110 1111.1111 1111B
X= F1C3.4B =1111 0001 1100 0011 . 0100 1011B
1.11 将下列二进制数转换成BCD码:
(1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD
(2) X=1010110.001B= 1‘010‘110.001 =126.1 BCD
1.12 将下列十进制数转换成BCD码:
(1) X=1024D=0001 0000 0010 0100 BCD
(2) X=632 = 0110 0011 0010 BCD
(3) X= 103 = 0001 0000 0011 BCD
1.13 写出下列字符的ASCI I码:
A 41H 65D 0100 0001B
9 39H 47D
* 2AH 42D
= 3DH 45D
! 21H 33D
1.14 若加上偶校验码,下列字符的ASCII码是什么?
字符 原码 加上偶校验码之后
B 42H, 0100 0010B 42H,0100 0010B
4 34H, 0011 0100B B4H,1011 0100B
7 37H, 0011 0111B B7H,1011 0111B
= 3DH,0011 1101B BDH,1011 1101B
! 21H,0010 0001B 21H,0010 0001B
? 3FH 0011 1111B 3FH,0011 1111B
1.15 加上奇校验,上面的结果如何?
字符 原码 加上奇校验码之后
B 42H, 0100 0010B C2H,1100 0010B
4 34H, 0011 0100B 34H,0011 0100B
7 37H, 0011 0111B 37H,0011 0111B
= 3DH,0011 1101B 3DH,0011 1101B
! 21H,0010 0001B A1H,1010 0001B
? 3FH 0011 1111B BFH,1011 1111B
1.16 计算下式:
(1)[?B‘/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D
(2) 3CH – [(84D)/(16Q)+‘8‘/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D=
=47D
1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码:
(正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。正数的补码与原码相同;负数的补码除符号位以外,其余各位按位取反之后再加一。)
数据 原码 反码 补码
+99 0110 0011 0110 0011 0110 0011
-99 1110 0011 1001 1100 1001 1101
+127 0111 1111 0111 1111 0111 1111
-127 1111 1111 1000 0000 1000 0001
+0 0000 0000 0000 0000 0000 0000
-0 1000 0000 1111 1111 0000 0000
1.18 8位二进制数原码可表示数的范围是 +127~-128;
8位二进制数补码可表示的数的范围是 +127~-127;
8位二进制数反码可表示的数的范围是:+127~-128;
1.19 16位二进制数的原码、补码、反码可表示的数的范围是多少?
+32767~-32768、+32767~-32768、+32767~-32768;
1.20 至少写出3种用二进制编码状态表示十进制数字的编码方式。
8421码、 5421码 2421码 余3码 十进制数
0000 0000 0000 0011 0
0001 0001 0001 0100 1
0010 0010 1000 0101 2
0011 0011 1001 0110 3
0100 0100 1010 0111 4
0101 1000 1011 1000 5
0110 1001 1100 1001 6
0111 1010 1101 1010 7
1000 1011 1110 1011 8
1001 1100 1111 1100 9
李伯成《微机原理》习题 第二章
① 薛钧义主编 《微型计算机原理与应用——Intel 80X86系列》
机械工业出版社 2002年2月第一版
② 陆一倩 编 《微型计算机原理及其应用(十六位微型机)》
哈尔滨工业大学出版社 1994年8月第四
版
③ 王永山等 编 《微型计算机原理与应用》
西安电子科技大学出版社 2000年9月
④洪志全等 编 《现代计算机接口技术》
电子工业出版社 2002年4月 ⑤仇玉章主编 《32位微型计算机原理与接口技术》
清华大学出版社 2000年9月
2.1 8086CPU的RESET引脚的功能是什么?
答:RESET引脚称为复位引脚,输入、三态、高电平有效;RESET引脚将使CPU立即结束当前操作,处理器要求RESET信号至少要保持4个时钟周期的高电平,才能结束它正在进行的操作。CPU复位以后,除了代码段寄存器CS的值为FFFFH外,其余所有寄存器的值均为零,指令队列为空。
当RESET回到低电平时,CPU开始执行―热启动‖程序,由于此时CS的值为FFFFH,IP的值为0000H,所以CPU复位以后执行的第一条指令的物理地址为
FFFF0H,该单元通常放置一条段间直接转移指令JMP SS:OO,SS:OO即为系统程序的实际起始地址。
2.2 在8086 CPU 工作在最小模式时,
(1) 当CPU 访问存储器时,要利用哪些信号? 当CPU访问存储器时,要利用AD0~AD15、WR*、RD*、IO/M*以及A16~A19;
(2) 当CPU访问外设接口时,要利用哪些信号? 当CPU访问外设接口时,同样要利用AD0---AD15、WR*、RD*以及IO/M*,但不使用高端地址线A16---A19;
(3)当HOLD有效并得到响应时,CPU哪些引脚置高阻?
当HOLD有效并得到响应时,CPU除HOLD、HOLDA引脚外其余所有的信号引脚均为高阻态。
2.3 略
2.4 说明8086 CPU READY 信号的功能。
见 P23
2.5 8086 CPU 的NMI和INTR引脚的不同有几点?
两点:
(1) INTR是可以由用户用指令禁止的,(通
过中断允许标志IF的开---STI和关CLI进行);而NMI不能由用户禁止;
(2) INTR是可以区分优先级别的,NMI是最高级
的,没有中断优先级的排队。
2.6 说明8086CPU内部标志寄存器各位的含义。
8086 CPU的标志寄存器(PSW或FLAG)共有9个
标志位,分别是:
CF (Carry Flag)--- 进位或借位标志;
PF (Parity Flag)--- 奇偶标志;
AF (auxiliary Flag)----半进位标志;
ZF (Zero Flag) -----结果为零标志;
SF (Sign Flag) ----- 符号标志;
OF (Overflow Flag)-----溢出标志;
IF (Interrupt Enable Flag)-----中断允许标志;
DF (Direction Flag) ---- 方向标志;
TF (Trap Flag) ----- 陷阱标志。
2.7 说明8086CPU内部14个寄存器的作用。
8086内部的寄存器可以分为3类:
第一类:通用寄存器:
AX、BX、CX、DX、SI、DI、SP、BP,共8个可以存储数据或者地址的低16位;AX、BX、CX和DX可以分成8个8位的寄存器使用;SI、DI又称变址寄存器,用于存储变址地址;SP和BP存放指针变量值。
第二类:段寄存器:
CS、DS、SS、ES,共4个寄存器,只能存放对应段的段地址;
第三类为IP和FLAG,IP在通常情况下不允许用户访问,而FLAG是用以向用户提供了解ALU工作状态或者控制CPU工作方式的标志寄存器。
2.8 试画出8086CPU工作在最小模式时的总线形成示意图。
(注:BHE*引脚为34脚---即SS0,参见P25状态编码表)
四点说明:
A、MN/MX端接+5V,决定了8086工作在最小模式。
B、有一片8234A,作为 时钟发生器。
C、有三片8282或74LS373,用来作为 地址锁存器。
D、当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力, 这时,要用两片
8286/8287(74LS244或74LS245)作为 总线收发器。
2.9 8086/8088为什么采用地址/数据引线复用技术?
答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从时序逻辑的角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。
2.10 怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同?
答:引线MN/MX*的逻辑状态决定8086的工作模式,MN/MX*引线接高电平,8086被设定为最小模式;MN/MX*引线接低电平,8086被设定为最大模式。最小模式下所有的控制信号由CPU相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入由8086的S2─S0三条状态信号引线提供。
李伯成《微机原理》习题 第三章
本章作业参考书目:
1.周明德: 微型计算机IBM-PC系统原理与应用 清华大学出版社 1991
2.王永山等: 微型计算机原理与应用 西安电子科大出版社 1998
3.张怀莲: IBMPC汇编语言程序设计 电子工业出版社 1990
3.1
MOV AX,00H;
SUB AX,AX;
MOV AX,[BX];
MOV AX,TABLE;
MOV AL,ARAY1[SI];
MOV AX,[BX+6]; 立即寻址 寄存器寻址 寄存器间接寻址 直接寻址 寄存器相对寻址 寄存器相对寻址
3.2 若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。
程序片段如下:
ORG 100h
MOV CX,03FFH;数据个数
LEA SI,TABLE;源区首地址
LEA DI,NEXT; 目的区首地址
AGAIN: MOV AL,[SI];
MOV [DI],AL; 搬移
INC SI INC DI; 移动地址指针 DEC CX; 循环计数器递减 JNZ AGAIN; 循环未结束转 HLT; 暂停 TABLE DB 1024 dup ('A'); 源数据区 NEXT DB 1024 dup (0); 目的数据区
3.3 编写10个字(16位二进制数)之和的程序
ORG 100h LEA SI,ADD1;
LEA DI,ADD2;
LEA BX,SUM;
MOV CL,CONT;
MOV CH,0; 循环初始化
CLC; 进位清零
MADD1: MOV AX,[SI]; 读加数1
ADC ADD ADD MOV ADD LOOP HLT; AX,[DI] SI,2; DI,2; [BX],AX; BX,2; MADD1; 移动源区地址指针 移动目的区地址指针 回存计算结果 移动―和‖存储区地址指针 循环控制 暂停
ADD1
ADD2
SUM
CONT DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加数2 DB 10 DUP (0); 和存储单元 DB 5 ; 循环次数
3.4 某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。
ORG 100h MOV BL,2; 除数初值 AGAIN: MOV CX,NUM; 预计最大循环次数 MOV AL,BL; 0、1的平方根除外 MUL BL; 得到2的平方 CMP AX,CX; 大于原始数据么? JG EXIT; 若原始数据小于4转EXIT MOV AX,CX; 读数 DIV BL; 试除 INC BL; 除数递增 JMP AGAIN; 继续除 EXIT: DEC BL; 去除除数自加 MOV ANS,BL; 存商 MOV AL,BL; 恢复余数 MUL BL; SUB CX,AX; MOV REMAIN,CL; HLT NUM DW 7; ANSDB ?;
REMAIN DB ?;
3.5 在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。
MOV MOV CL,4; 移位次数 CH,CL; 循环次数 SI,OFFSET ASCBIN AX,AX DX,DX AL,7FH AL,'0' MOV CLD XOR XOR ASCB1: LODSB AND CMP ;不大于?0‘结束转换 JL ERR CMP AL,'9' JG ASCB2 ;大于?9‘转ASCB2 SUB AL,30H ; 数字形式二进制数减30H JMP ASCB3 ASCB2: CMP AL,'A' ;大于?9‘又小于?A‘结束转换 JL ERR CMP AL,'F' JG ERR SUB AL,37H ;大于?F‘为不合理数,结束转换 ;字符形式ASCII数减37H ASCB3: OR DL,AL ROL DX,CL DEC CH JNZ ASCB1 ROL DX,CL MOV BIN,DX;存储转换结果 ERR: NOP HLT
ASCBIN DB '1','B,'4','3'
BIN DW ?
3.7 编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。
解:第一种方法:常规乘法运算
ORG 100h MOV AL,MOLT MOV BL,20 MUL BL MOV ANS,AX
HLT
MOLT DB 2 ANSDW ?
第二种方法,将MOLT连加20次
第三种方法,将―20‖连加MOLT次
ORG 100h
MOV CX,MOLT MOV BX,20
XOR AX,AX
CLC
ADD1:ADC AX,BX
LOOP ADD1
MOV ANS,AX HLT
MOLT DW 5
ANSDW ?
在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单ORG 100h MOV CX,20 MOV BX,MOLT XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANSDW ? 3.8
元。
ORG 100h
XOR DL,DL
LEA DI,KVFF; NEXT0: LEA SI,BUFFER; MOV CL,99; 比较次数为N-1次
NEXT1: MOV AL,[SI];
INC SI;
CMP DL,AL;
JNC NEXT2;
MOV DL,AL; DL中始终存目前最大值
NEXT2: DEC CL;
JNZ NEXT1;
MOV [DI],DL; 最大值存储
HLT BUFFER DB ;自行定义100个数据
KVFF DB ?
3.9 若将数据按大小顺序排序,试编写程序..
解:此处采用 ―冒泡法‖予以处理:
ORG 100h LEA MOV DI,BUFFER; 数据区 BL,99; 外循环次数 NEXT0: NEXT3: NEXT5: MOV SI,DI; MOV CL,BL; 内循环次数 MOV AL,[SI]; 读数 INC SI; 移动指针 CMP AL,[SI]; 比较 JNC NEXT5; 大于转NEXT5 MOV DL,[SI]; MOV [SI-1],DL; MOV [SI],AL; 不大于互换 DEC CL; 内循环次数减一 JNZ DEC NEXT3; BL; 外循环次数减一 JNZ NEXT0 HLT BUFFER DB 自行定义100个字节型数据
3.10 在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.
A=60,Y=80.
ORG 100h
MOV AL,BVFF
CMP AL,20
JL EX1
CMP AL,60
JL EX2
MOV AL,80
JMP STOP
EX1: MOV BL,3
MUL BL
JMP STOP
EX2: SUB AL,20
STOP: MOV DES,AL
HLT
BVFF DB 8
DES DB ?
3.11址为DATAB开始的80个单元中,存放某班80个学生的某课程成绩,要求:
统计>=90分、80~89分、70~79分、60~69分、60分以下的人数,结果存放在
BTRX开始的5个单元中
求平均成绩,结果存放在LEVEL中。
解:寄存器使用分配:90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,总分、均分都在[DI]。
ORG 100h XOR AH,AH XOR DX,DX XOR BX,BX ;统计结果清零 ;统计结果清零 LEA SI,DATA LEA DI,LEVEL MOV CL,CONT; 总人数送循环计数器 CX goon: MOV AL,[SI] ;读原始数据 ADC [DI], AL;累加总分 ADC [DI+1],0 ;计算进位 CMP AL,90 JL PP8 ; 不高于90分者转PP8 INC DH ; 90--100分的人数加一 JMP STOR
PP8: PP7: PP6: CMP AL,80 JL PP7 ;不高于80分转PP7 INC DL ;80----89分的人数加一 JMP STOR CMP AL,70 JL PP6 ;不高于70分者转PP6 INC BH ;70---79分的人数加一 JMP STOR CMP AL,60 JL PP5 ;不高于60分者转PP5 INC BL ;60---69分的人数加一 JMP STOR PP5: INC AH ;低于60分的人数加一 STOR: INC SI ;读下一个分数 LOOP GOON ;CX=CX-1,CX不为零转GOON,继续统计 LEA SI,BUFFER ;回存统计结果 MOV INC SI MOV INC SI MOV INC SI MOV INC SI MOV MOV [SI],DH [SI],DL [SI],BH [SI],BL [SI],AH AX,WORD PTR [DI] ;计算平均成绩 MOV CL,CONT DIV CL MOV LEVEL,AL ;回存平均成绩
HLT
CONT DB 10
DATA DB 30,65,99,80,75, 89,100,45,60,70
BUFFER DB ?,?,?,?,?
LEVEL DB ? ,?
3.12 求两个有符号数(DATA1,DATA2)差的绝对值,结果存入DATA3.
ORG 100h MOV AL,DATA1;读入被减数 SUB AL,DATA2;减去减数 JC CHANGE;
JMP STOR
CHANGE: NEG AL
STOR: MOV DATA3,AL
HLT
DATA1 DB 3
DATA2 DB 5
DATA3 DB ?
3.13 存从40000H到4BFFH的个单元均写入55H,并再逐个读出,验证是否一致,若一致,置AL为7EH,否则置AL为81H.
ORG 100h
MOV AX,4000H;
MOV DS,AX;
MOV SI,0
START: MOV CX,0BFFFH
BEGIN: MOV [SI],55H
MOV AL,[SI]
INC SI
CMP AL,55H
JNZ ERR
LOOP BEGIN
MOV AL,7EH
JMP STOP
ERR: MOV AL,81H
STOP: HLT
3.14~3.15 端口03FBH的BIT5为状态标志,当该位为1时,表示外设忙,不能接收数据;当为0时,表示外设闲,可以接收数据;当CPU向端口03F8H写入一个字节的数据时,03FBH的BIT5置1,当它变为0状态时,又可以写入下一个数据。据此编写将起始地址为SEDAT的50个数据输出到03F8H端口的程序。
WAIT: MOV DX,03FBH IN AL,DX TEST AL,0010 0000B;(20H) JZ SEND JMP WAIT SEND:MOV DX,3F8H MOV AL,[SI]; CMP AL,0AH;输出字串结束标志符 JZ STOP OUT DX,AL WAIT JMP STOP:HLT
3.16 口02E0H的BIT2和BIT5同时为1,表示端口02E7H有一个字节型数据准备好可以
用以输入,当CPU从该端口读入数据后,02E0端口的BIT2和BIT5就不再同时为1;只有当02E7H端口的数据再次准备好时,它们才会再次同时为1,据此编写从02E7H端口输入32个数据然后存入A1000H单元开始的区域。
MOV AX,0A000H
MOV DS,AX
MOV SI,1000H; 设置存储区地址
MOV CL,20H; 输入数据个数
BEGIN:MOV DX,0E20H
IN AL,DX
TEST AL,0010 0100B; 测试状态位 BIT5、BIT2
JZ BEGIN; 不同时为1继续测试
MOV DX,02E7H
IN AL,DX; 输入数据
MOV [SI],AL; 存到指定区域
INC SI; 移动地址指针
LOOP BEGIN; 循环
HLT
3.17 在内存40000H开始的16K的单元中存放着一组数据,将其顺序搬移到起始地址为A0000H的区域。
解:利用字符串操作指令 MOVSB,16K即16*1024=3FFFH。
MOV MOV MOV MOV MOV MOV MOV AX,4000H DS,AX AX,A000H ES,AX SI,0 DI,0 CX,3FFFH
CLD
REPMOVSB
HLT
3.18 上题的基础上,将两个区域的数据逐个进行比较,若有错将BL置0,全对将BL置
FFH。
MOV MOV AX,4000H DS,AX
MOV MOV MOV MOV MOV AX,A000H ES,AX SI,0 DI,0 CX,03FFH
CLD
AAB: CMPSB
JNZ STOP
LOOP AAB
MOV BL,0FFH
JMP EX1 STOP: MOV BL,0; EX1: NOP
HLT
3.19 统计由40000H单元开始的16K个单元中所存字符?A‘的个数,统计结果存放在DX寄存器中。
MOV AX,4000H
MOV DS,AX
MOV SI,0;
MOV CX,3FFFH; 数据个数
MOV DX,0;统计结果寄存器清零 XOR DX,DX
CLD
AAB: LODSB
CMP AL,?A‘; 比较
JZ AAC;字符为?A‘转计数
LOOP AAB; 循环
JMP STOP; 处理完毕转结束
AAC: INC DX; 统计结果加1
DEC CX; 循环次数减1
JCXNZ AAB; CX0继续
STOP: HLT
3.20 编写对AL中的数据进行―偶校验‖的一个过程,并将校验结果放入AL寄存器。
PJY PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,DAT AND AL,AL JNP PJY1
3.21
MOV
AL,00H; 表示为偶
JMP EXIT
PJY1: MOV AL,FFH; 表示为奇 EXIT: POP DX PJY
POP CX POP BX POP AX RET ENDP DAT DB ?
对80000H开始的256个单元的数据加上偶校验。
ORG 100h
MOV AX,8000H MOV DS,AX
MOV SI,0
MOV CX,100H CLD
LODSB;(MOV AL,[SI] ;INC SI) TEST AL,AL JNP PAR1
LOOP PAR0 JMP STOP OR AL,80H; MOV [SI-1],AL DEC CX JNZ PAR0 HLT
PAR0:
PAR1: STOP:
4-1 某以8088为CPU的微型计算机内存RAM区为00000H ~3FFFFH,若采用6264、62256、
2164或21256各需要多片芯片? 解答: 8088 内存单元为8 bit,所以,从00000H 到3FFFFH,共需要214 个byte,共214*8bit,也就是共占用16K byte空间。由于各种芯片的数据总线根数不同,所以在连接时要特别注意芯片的位数; 对于如下芯片:
6264 有8根数据线,13根地址线,故其容量为 213*8bit,即8Kbyte, 所以需要2片; 62256 有8根数据线,15根地址线,故其容量为 215*8bit,即32 Kbyte, 所以仅需要1片;尽管题目要求只需要16K的空间,但在使用62256时不得不使用1片。
2164 有8根数据线,12根地址线,故其容量为 212*8bit,即4Kbyte, 所以需要4片; 21256 有1根数据线,10根地址线(实际为20根,分两组),但由于仅有一根数据线,要构成八位的存储器至少需要8片,但总容量为8*256Bit,远远超过题目的要求。
4.2 利用全地址译码将6264接在8088的系统总线上,其所占的地址范围为BE000H~BFFFFH,试画出连接图。
解答:6264有13根地址线,连接时接到系统总线的低13位,即A0~A12, 其他7根地址线A19~A13的 地址译码输入应该为:1011 111 B,故而有如下的连接:
4.3
试利用6264 芯片,在8088系统总线上实现0000H~03FFFH的内存区域,试画出电路连接图。
解答:0000H~03FFFH的地址范围为214=16K, ,而6264芯片的容量为8*8K, 所以需要连接2片,其中,第一片的地址为00000H~01FFFH,第二片的地址为02000H~03FFFH,这里用74LS138的Y0、Y1 作为两个芯片的片选。
4.4
叙述EPROM的编程过程,说明EEPROM的编程过程。
EPROM编程通常采用两种模式:标准编程和快速编程:
标准编程是在VCC、VPP、CE、OE、地址信号、数据信号有效并稳定后加入50毫秒的PGM编程负脉冲,可以在写入一个数据后使OE变高而立即校验,也可以在所有数据写入后逐一校验。
标准编程有两大缺陷:一是时间过长,比如2764全片编程约需7分钟,时间过长;再是编程脉冲宽度稍大容易造成芯片因功耗过大而烧毁。
快速编程将PGM的宽度减小到100微妙左右,显然速度加快了500倍左右。 能否使用快速编程取决于芯片的型号。
EEPROM 由于可以在线擦除信息,所以可以单字节编程或自动按页编程。 在单字节写入时,CE为低,OE为高,在WE加入100纳秒的负脉冲,写入时间包括擦除原有内容和写入新内容的时间,一般为10毫秒以内,可以通过查询READY/BUSY的状态判定。
自动按页编程用高位线决定页地址,低位线决定页容量,然后一次写入一页内容,写完后查询READY/BUSY状态,此一过程耗时在300微秒左右,所以速度较快。
4.5已有两片6116,现欲将其接到8088系统中去,其地址范围为40000H~40FFFH,试画出电路连接图;写入某数据并读出与之比较,若有错,则在DL中写入01H,若全对,在DL中写入EEH,试编写此检测程序。 解答:电路连接如图示:
检测程序定义为一个过程,编程如下: CHKRAM
PROC FAR
SI; DL; CX; AX;
CX,10000H;
待检验的单元个数
PUSH PUSH PUSH PUSH
MOV MOV MOV MOV MOV MOV MOV
SI,4000H; 存储体段地址 DS,SI; SI,0000H; AL,0FFH; [SI],AL; AL,[SI];
存储体首地址
写入检验数据FFH 读出
CHK:
ADD JNZ
AL,01H RAMERR
写入另一格检验数据 读出
MOV AL,0; MOV MOV AND JNZ
[SI],AL; AL,[SI]; AL,AL RAMERR
MOV DL,0EEH; JMP MOV
RAMCHKOUT DL, 01H;
所有单元全对
RAMERR: 发现错误单元
RAMCHKOUT: POP
POP
AX; CX;
POP DL; POP SI;
RET ENDP CHKRAM
4.6 利用全地址译码将EPROM27128接到首地址为A0000H的内存区,试画出电路图。 解答:EPROM27128 的容量为8* 16K,所以有14根地址线, 那么如果将其接到首地址为A0000H 内存区,高6位地址线的排列应该为:1010 00B,所以有如下的连接:
4.7 内存地址从40000H到BBFFFH共有多少K?
解答:从40000H到BBFFFH的地址空间应该为 BBFFFH-40000H= 7BFFFH 每K为210,即3FFH,7BFFFH/3FFH=1F0H=496D
所以,该地址空间的范围应该为496KByte。
4.8 试判断8088系统中存储器译码器74LS138的输出Y0、Y4、Y6和Y7所决定的内
存地址范围,电路连接见附图。 解答:
根据示意图,A19、A18、A17、A16 的电平值为 1X00B,由于采用的是部分译码(A18未使用),所以每个地址译码输出对应的两个地址范围。
Y0对应 A15、A14、A13 均为0,所以其地址范围应该为: 当A18=0时,地址范围为:
1000 0000 0000 0000 ~ 1000 0001 1111 1111 1111 B 即80000H~ 81FFFH 当 A18=1时,地址范围为:
1100 0000 0000 0000 ~ 1100 0001 1111 1111 1111B 即C0000H~ C1FFFFH
Y4 对应的 A15、A14、A13 为 100,所以其地址范围应该为:
当A18=0 时,地址范围为:
1000 1000 0000 0000 0000B~ 1000 1001 1111 1111 1111B 即88000H~ 89FFFH 当A18=1时,地址范围为:
1100 1000 0000 0000 0000 ~1100 1001 1111 1111 1111B 即C8000H~C9FFFH
转载请保留出处,http://www.wendangku.net/doc/13fd56b369dc5022aaea000f.html