• 602.00 KB
  • 2022-04-22 11:22:40 发布

李伯成《微型计算机原理及应用》课后习题答案.doc

  • 18页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'李伯成《微机原理》习题第三章3.1MOVAX,00H;立即寻址SUBAX,AX;寄存器寻址MOVAX,[BX];寄存器间接寻址MOVAX,TABLE;直接寻址MOVAL,ARAY1[SI];寄存器相对寻址MOVAX,[BX+6];寄存器相对寻址3.2若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。程序片段如下:ORG100hMOVCX,03FFH;数据个数LEASI,TABLE;源区首地址LEADI,NEXT;目的区首地址AGAIN:MOVAL,[SI];MOV[DI],AL;搬移INCSIINCDI;移动地址指针DECCX;循环计数器递减JNZAGAIN;循环未结束转HLT;暂停TABLEDB1024dup("A");源数据区NEXTDB1024dup(0);目的数据区3.3编写10个字(16位二进制数)之和的程序ORG100hLEASI,ADD1;LEADI,ADD2;LEABX,SUM;MOVCL,CONT;MOVCH,0;循环初始化CLC;进位清零MADD1:MOVAX,[SI];读加数1ADCAX,[DI]ADDSI,2;移动源区地址指针ADDDI,2;移动目的区地址指针MOV[BX],AX;回存计算结果ADDBX,2;移动“和”存储区地址指针LOOPMADD1;循环控制HLT;暂停ADD1DB0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1ADD2DB56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;加数2SUMDB10DUP(0);和存储单元CONTDB5;循环次数3.4某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。ORG100hMOVBL,2;除数初值AGAIN:MOVCX,NUM;预计最大循环次数MOVAL,BL;0、1的平方根除外MULBL;得到2的平方CMPAX,CX;大于原始数据么?JGEXIT;若原始数据小于4转EXITMOVAX,CX;读数DIVBL;试除INCBL;除数递增JMPAGAIN;继续除EXIT:DECBL;去除除数自加 MOVANS,BL;存商MOVAL,BL;恢复余数MULBL;SUBCX,AX;MOVREMAIN,CL;HLTNUMDW7;ANSDB?;REMAINDB?;3.5在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。MOVCL,4;移位次数MOVCH,CL;循环次数MOVSI,OFFSETASCBINCLDXORAX,AXXORDX,DXASCB1:LODSBANDAL,7FHCMPAL,"0";不大于‘0’结束转换JLERRCMPAL,"9"JGASCB2;大于‘9’转ASCB2SUBAL,30H;数字形式二进制数减30HJMPASCB3ASCB2:CMPAL,"A";大于‘9’又小于‘A’结束转换JLERRCMPAL,"F"JGERR;大于‘F’为不合理数,结束转换SUBAL,37H;字符形式ASCII数减37HASCB3:ORDL,ALROLDX,CLDECCHJNZASCB1ROLDX,CLMOVBIN,DX;存储转换结果ERR:NOPHLTASCBINDB"1","B,"4","3"BINDW?3.7编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。解:第一种方法:常规乘法运算ORG100hMOVAL,MOLTMOVBL,20MULBLMOVANS,AXHLTMOLTDB2ANSDW?第二种方法,将MOLT连加20次ORG100hMOVCX,20MOVBX,MOLTXORAX,AXCLCADD1:ADCAX,BXLOOPADD1MOVANS,AXHLT MOLTDW5ANSDW?第三种方法,将“20”连加MOLT次ORG100hMOVCX,MOLTMOVBX,20XORAX,AXCLCADD1:ADCAX,BXLOOPADD1MOVANS,AXHLTMOLTDW5ANSDW?3.8在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。ORG100hXORDL,DLLEADI,KVFF;NEXT0:LEASI,BUFFER;MOVCL,99;比较次数为N-1次NEXT1:MOVAL,[SI];INCSI;CMPDL,AL;JNCNEXT2;MOVDL,AL;DL中始终存目前最大值NEXT2:DECCL;JNZNEXT1;MOV[DI],DL;最大值存储HLTBUFFERDB;自行定义100个数据KVFFDB?3.9若将数据按大小顺序排序,试编写程序..解:此处采用“冒泡法”予以处理:ORG100hLEADI,BUFFER;数据区MOVBL,99;外循环次数NEXT0:MOVSI,DI;MOVCL,BL;内循环次数NEXT3:MOVAL,[SI];读数INCSI;移动指针CMPAL,[SI];比较JNCNEXT5;大于转NEXT5MOVDL,[SI];MOV[SI-1],DL;MOV[SI],AL;不大于互换NEXT5:DECCL;内循环次数减一JNZNEXT3;DECBL;外循环次数减一JNZNEXT0HLTBUFFERDB自行定义100个字节型数据3.10在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.A<20,Y=3*A;A<60,Y=A-20;A>=60,Y=80.ORG100hMOVAL,BVFFCMPAL,20JLEX1 CMPAL,60JLEX2MOVAL,80JMPSTOPEX1:MOVBL,3MULBLJMPSTOPEX2:SUBAL,20STOP:MOVDES,ALHLTBVFFDB8DESDB?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]。ORG100hXORAH,AHXORDX,DX;统计结果清零XORBX,BX;统计结果清零LEASI,DATALEADI,LEVELMOVCL,CONT;总人数送循环计数器CXgoon:MOVAL,[SI];读原始数据ADC[DI],AL;累加总分ADC[DI+1],0;计算进位CMPAL,90JLPP8;不高于90分者转PP8INCDH;90--100分的人数加一JMPSTORPP8:CMPAL,80JLPP7;不高于80分转PP7INCDL;80----89分的人数加一JMPSTORPP7:CMPAL,70JLPP6;不高于70分者转PP6INCBH;70---79分的人数加一JMPSTORPP6:CMPAL,60JLPP5;不高于60分者转PP5INCBL;60---69分的人数加一JMPSTORPP5:INCAH;低于60分的人数加一STOR:INCSI;读下一个分数LOOPGOON;CX=CX-1,CX不为零转GOON,继续统计LEASI,BUFFER;回存统计结果MOV[SI],DHINCSIMOV[SI],DLINCSIMOV[SI],BHINCSIMOV[SI],BLINCSIMOV[SI],AHMOVAX,WORDPTR[DI];计算平均成绩MOVCL,CONT DIVCLMOVLEVEL,AL;回存平均成绩HLTCONTDB10DATADB30,65,99,80,75,89,100,45,60,70BUFFERDB?,?,?,?,?LEVELDB?,?3.12求两个有符号数(DATA1,DATA2)差的绝对值,结果存入DATA3.ORG100hMOVAL,DATA1;读入被减数SUBAL,DATA2;减去减数JCCHANGE;JMPSTORCHANGE:NEGALSTOR:MOVDATA3,ALHLTDATA1DB3DATA2DB5DATA3DB?3.13存从40000H到4BFFH的个单元均写入55H,并再逐个读出,验证是否一致,若一致,置AL为7EH,否则置AL为81H.ORG100hMOVAX,4000H;MOVDS,AX;MOVSI,0START:MOVCX,0BFFFHBEGIN:MOV[SI],55HMOVAL,[SI]INCSICMPAL,55HJNZERRLOOPBEGINMOVAL,7EHJMPSTOPERR:MOVAL,81HSTOP:HLT3.14~3.15端口03FBH的BIT5为状态标志,当该位为1时,表示外设忙,不能接收数据;当为0时,表示外设闲,可以接收数据;当CPU向端口03F8H写入一个字节的数据时,03FBH的BIT5置1,当它变为0状态时,又可以写入下一个数据。据此编写将起始地址为SEDAT的50个数据输出到03F8H端口的程序。WAIT:MOVDX,03FBHINAL,DXTESTAL,00100000B;(20H)JZSENDJMPWAITSEND:MOVDX,3F8HMOVAL,[SI];CMPAL,0AH;输出字串结束标志符JZSTOPOUTDX,ALJMPWAITSTOP:HLT3.16口02E0H的BIT2和BIT5同时为1,表示端口02E7H有一个字节型数据准备好可以用以输入,当CPU从该端口读入数据后,02E0端口的BIT2和BIT5就不再同时为1;只有当02E7H端口的数据再次准备好时,它们才会再次同时为1,据此编写从02E7H端口输入32个数据然后存入A1000H单元开始的区域。MOVAX,0A000H MOVDS,AXMOVSI,1000H;设置存储区地址MOVCL,20H;输入数据个数BEGIN:MOVDX,0E20HINAL,DXTESTAL,00100100B;测试状态位BIT5、BIT2JZBEGIN;不同时为1继续测试MOVDX,02E7HINAL,DX;输入数据MOV[SI],AL;存到指定区域INCSI;移动地址指针LOOPBEGIN;循环HLT3.17在内存40000H开始的16K的单元中存放着一组数据,将其顺序搬移到起始地址为A0000H的区域。解:利用字符串操作指令MOVSB,16K即16*1024=3FFFH。MOVAX,4000HMOVDS,AXMOVAX,A000HMOVES,AXMOVSI,0MOVDI,0MOVCX,3FFFHCLDREPMOVSBHLT3.18上题的基础上,将两个区域的数据逐个进行比较,若有错将BL置0,全对将BL置FFH。MOVAX,4000HMOVDS,AXMOVAX,A000HMOVES,AXMOVSI,0MOVDI,0MOVCX,03FFHCLDAAB:CMPSBJNZSTOPLOOPAABMOVBL,0FFHJMPEX1STOP:MOVBL,0;EX1:NOPHLT3.19统计由40000H单元开始的16K个单元中所存字符‘A’的个数,统计结果存放在DX寄存器中。MOVAX,4000HMOVDS,AXMOVSI,0;MOVCX,3FFFH;数据个数MOVDX,0;统计结果寄存器清零XORDX,DXCLDAAB:LODSBCMPAL,‘A’;比较JZAAC;字符为‘A’转计数LOOPAAB;循环JMPSTOP;处理完毕转结束AAC:INCDX;统计结果加1DECCX;循环次数减1 JCXNZAAB;CX<>0继续STOP:HLT3.20编写对AL中的数据进行“偶校验”的一个过程,并将校验结果放入AL寄存器。PJYPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAL,DATANDAL,ALJNPPJY1MOVAL,00H;表示为偶JMPEXITPJY1:MOVAL,FFH;表示为奇EXIT:POPDXPOPCXPOPBXPOPAXRETPJYENDPDATDB?3.21对80000H开始的256个单元的数据加上偶校验。ORG100hMOVAX,8000HMOVDS,AXMOVSI,0MOVCX,100HCLDPAR0:LODSB;(MOVAL,[SI];INCSI)TESTAL,ALJNPPAR1LOOPPAR0JMPSTOPPAR1:ORAL,80H;MOV[SI-1],ALDECCXJNZPAR0STOP:HLT第四章4-1某以8088为CPU的微型计算机内存RAM区为00000H~3FFFFH,若采用6264、62256、2164或21256各需要多片芯片?解答:8088内存单元为8bit,所以,从00000H到3FFFFH,共需要214个byte,共214*8bit,也就是共占用16Kbyte空间。由于各种芯片的数据总线根数不同,所以在连接时要特别注意芯片的位数;对于如下芯片:6264有8根数据线,13根地址线,故其容量为213*8bit,即8Kbyte,所以需要2片;62256有8根数据线,15根地址线,故其容量为215*8bit,即32Kbyte,所以仅需要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的地址译码输入应该为:1011111B,故而有如下的连接: 4.2试利用6264芯片,在8088系统总线上实现0000H~03FFFH的内存区域,试画出电路连接图。解答:0000H~03FFFH的地址范围为214=16K,,而6264芯片的容量为8*8K,所以需要连接2片,其中,第一片的地址为00000H~01FFFH,第二片的地址为02000H~03FFFH,这里用74LS138的Y0、Y1作为两个芯片的片选。4.3叙述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,试编写此检测程序。解答:电路连接如图示:检测程序定义为一个过程,编程如下:CHKRAMPROCFARPUSHSI;PUSHDL;PUSHCX;PUSHAX;MOVCX,10000H;待检验的单元个数MOVSI,4000H;存储体段地址MOVDS,SI;MOVSI,0000H;存储体首地址CHK:MOVAL,0FFH;MOV[SI],AL;写入检验数据FFHMOVAL,[SI];读出ADDAL,01HJNZRAMERRMOVAL,0;MOV[SI],AL;写入另一格检验数据MOVAL,[SI];读出ANDAL,ALJNZRAMERRMOVDL,0EEH;所有单元全对JMPRAMCHKOUTRAMERR:MOVDL,01H;发现错误单元RAMCHKOUT:POPAX; POPCX;POPDL;POPSI;RETENDPCHKRAM4.6利用全地址译码将EPROM27128接到首地址为A0000H的内存区,试画出电路图。解答:EPROM27128的容量为8*16K,所以有14根地址线,那么如果将其接到首地址为A0000H内存区,高6位地址线的排列应该为:101000B,所以有如下的连接: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时,地址范围为:1000000000000000~10000001111111111111B即80000H~81FFFH当A18=1时,地址范围为: 1100000000000000~11000001111111111111B即C0000H~C1FFFFHY4对应的A15、A14、A13为100,所以其地址范围应该为:当A18=0时,地址范围为:10001000000000000000B~10001001111111111111B即88000H~89FFFH当A18=1时,地址范围为:11001000000000000000~11001001111111111111B即C8000H~C9FFFHY6对应的A15、A14、A13为110,所以其地址范围为:当A18=0时,地址范围为:10001100000000000000B~10001101111111111111B即8C000H~8DFFFH当A18=1时,地址范围为:11001100000000000000B~11001101111111111111B即CC000H~CDFFFHY7对应的A15、A14、A14为111,所以其地址范围为:当A18=0时,地址范围为:10001110000000000000B~10001111111111111111B即8E000H~8FFFFH当A18=1时,地址范围为:11001110000000000000B~11001111111111111111B即CE000H~CFFFFH。第五章5-1满足那些条件8086CPU才能响应中断源的中断请求?参考答案:8088/8086的中断承认需要满足4个条件:(1)一条指令执行之后---因为8088/8086CPU只在指令周期的最后一个时钟周期检测INTR信号;(2)中断允许标志IF=1;(3)没有发生NMI、HOLD和RESET;(4)指令STI、IREI指令执行之后须再执行一条其他指令,但一些指令组合(如REP)要视为一个指令总体。5-2说明8088/8086软件中断指令INTn的执行过程。由指令INTn引起的中断也称为“异常”,即软件中断或内部中断。这里,INT为指令操作码,n是中断类型号(中断向量码);当该指令执行时,CPU根据中断向量码的数值在中断向量表(IDT---InterruptDirectionTable)找到相应的中断服务程序入口地址,在对CS、IP和FLAG进行入栈保护之后,进而转向指定程序的运行。5-3用三态门74LS244作为输入接口,接口地址规定为04E5H,试画出其与8088的总线连接图。解:根据题意,当地址线上的电平为0000010011100101且IOR信号为低(IOR低电平有效)时,74LS244的门控信号E1、E2应该为低,据此画出下列电路: 5-3利用具有三态输出的锁存器74LS374作为输出接口,就接口地址为0E504H,试画出连接图。若5-3题中的输入接口的BIT3、BIT4、BIT7同时为1时,将DATA为首地址的10个内存数据连续由输出接口输出。若不满足则等待,试编写程序。解:根据题意,当地址线上的电平为1110010100000100且IOW信号为低(IOW低电平有效)时,74LS374的时钟端CP应该为低,而74LS374的OE始终为低,据此画出下列电路:根据题5-3和题5-4电路,如果题5-3电路中的BIT3、BIT4和BIT7同时为1,则将以DATA为首地址的10个数据连续由0E504H输出口输出,不满足条件等待,对应的程序段如下:OUTWAIT:MOVDX,04E5HINAL,DXTESTAL,98H;10011000BJZOUTWAIT; MOVSI,OFFSETDATAMOVCL,0AH;数据个数MOVDX,0E504HOUTPUT:MOVAL,SIINCSIOUTDX,ALLOOPOUTPUT5-5若要求8259的地址为E010H和E011H,试画出与8080总线的连接图。若系统中只有一片8259,允许8个中断源边沿触发,不要缓冲,一般全嵌套方式,中断向量定为40H,试编写初始化程序。解:电路连接见图示,根据8259的ICW格式,有如下数据:ICW100010011=13H特征位无意义特征位边沿触发无意义单片有ICW4ICW20100000=40H无ICW3(单片,无级连控制)ICW400000011=03H无意义一般嵌套非缓冲模式自动EOI8086模式据上述有下列初始化语句:MOVDX,0E010H;方式控制寄存器端口1地址MOVAL,13HOUTDX,ALMOVDX,0E011H;方式控制寄存器端口2地址MOVAL,40HOUTDX,ALMOVAL,03HOUTDX,AL;5-3DMAC(8237)占几个接口地址?这些地址在读写时的作用是什么?叙述DMAC由内存向接口传送一个数据块的过程。若希望利用8237把内存中的一个数据块传送到内存的另一个区域,应当如何处理?当考虑到8237工作在8088系统,数据是由内存的某一段向另外的一段传送且数据块的长度大于64KB,应当如何考虑?答:8237的A0~A3在其空闲周期作为内部寄存器的选址线,故而8237共占用16个端口地址; 当利用8237由内存向接口传送一个数据块时,8237送出内存地址及MEMR控制信号,将选中的存储单元的内容读出并放置到数据总线,同时,DMAC送出IOW控制信号,将数据写到预选的规定接口中,此后,DMAC自动修改内部寄存器得值,以适应下一个数据的传送;当利用8237把内存中的一个数据块传送到内存的另一个区域时,选择通道0和通道1实现传送。这时由通道0送出源区地址和MEMR控制信号,将选中的数据送入8237内部暂存器,同时修改源区地址指针;此后,由通道1送出目的区地址和MEMW信号,将内部暂存器的数据写到目的区,同时通道1修改地址和字节计数,当通道1的字节计数器为零时或者外部输入了EOP信号,传送结束。数据是由内存的某一段向另外的一段传送且数据块的长度大于64KB时,可以利用页面寄存器技术来完成,即改变写入页面寄存器74LS670的内容,以达到传送64KB以上的内容。5-7说明微机中常用的外设编址方式及其优缺点。答:在微机系统中主要采用两种外设的编址,即外设与内存统一编址和外设和内存独立编址;统一编址又称存储器映射编址,即把内存的部分地址分配给外设,这样,外设就占用了部分内存地址,这样做的好处是不需要I/O指令,但也就不易分辨存储器操作指令还是I/O指令,同时,内存范围相应的减小了。独立编址时,内存空间和外设地址空间是相对独立的。这样,地址范围相应扩大,但需要IO/M信号和对应的输入、输出指令。5-8说明8088中采用中断方式工作时必须由设计人员完成的3项工作。答:在采用中断方式工作时,程序设计人员通常要做的3项工作如下:(1)、编写中断服务程序,即ISP;在编写ISP时,要注意现场保护、中断嵌套以及中断标志的处理;(2)、确定中断向量,此时要注意,如果系统采用了8259,那么在中断向量表内至少要有32个连续的字节;(3)、填写中断向量表,即把ISP的段地址和偏移地址填入向量表中相应的字节,这是,可以用机器指令方式,也可以统过DOS调用来完成,具体方法如下:机器指令方式:MOVAX,0MOVDS,AX;中断向量表段地址设置MOVSI,(向量码*4);向量表中的地址MOVDX,OFFSETISP;中断服务程序偏移地址MOV[SI],DXMOVDX,SEGISP;中断服务程序的段地址MOV[SI+2],DXDOS调用方式:MOVAH,25H;DOS调用功能号MOVAL,向量码;MOVDX,SEGISPMOVDS,DXMOVDX,OFFSETISPINT21H7-2-3某外设原理框图如下图所示,当BUSY(BUSY信号接8255的PC0脚)为低电平时,表示外设可以接收数据。试编写利用8255的初始化程序及输出程序段,完成将内存BUF缓冲区中的100个字节数据通过8255的A端口输出到外设(设,8255的端口A、端口B、端口C及控制口端口地址分别为PORTA、PORTB、PORTC、PORTD) 参考答案:【解】8255的PA口数据输出,PC0接BUSYMOVCX,100;循环初始化LEASI,BUFMOVAL,81H;8255方式选择初始化MOVDX,PORTDOUTDX,ALLP:MOVDX,PORTC;测试PC0INAL,DXSHLAL,1JCLP;PC0=1转LPMOVAL,[SI];取内存数据INCSIMOVDX,PORTA;数据送PA口OUTDX,ALLOOPLP;循环判断9. 如下图所示,8255的PA口与8个发光二极管相连接,PB口与8个DIP开关相连接。请编写初始化程序段,并编程序段以查询方式实现以下功能:当8个DIP开关中某个按键闭合,则PA口对应号码的发光二极管被点亮。(不考虑抖动)。 参考答案:【解】(设,8255的端口A、端口B、端口C及控制口端口地址分别为PORTA、PORTB、PORTC、PORTD),端口A方式0输出,端口B方式0输入。初始化字:10000010B(还有其它初始化字)。功能程序如下:MOVAL,10000010BOUTPORTD,ALINAL,PORTBOUTPORTA,AL 7-1若8253芯片可利用8088的外设接口地址D0D0H~D0DFH,试画出电路连接图。时钟信号为2MHZ,利用计数器012分钟分别产生周期为100us的对称方波以及每1s和10s产生的一个负脉冲,试说明8253应如何连接写出程序 MOVDX,D0D3HMOVAL,00110110BOUTDX,ALMOVAL,200MOVDX,D0D0HOUTDX,ALMOV,AL,0OUT DX,ALMOVDX,D0D3HMOVAL,01110100BOUTDX,ALMOVDX,D0D1HMOVAL,10000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,D0D3HMOVAL,10110100BOUTDX,ALMOVDX,D0D2HMOVAL,10OUTDX,ALMOVAL,AHOUTDX,ALHLT  7-2规定8255的并行接口地址为FFEOH~FFE3H,连到8088系统,若希望8255的三个口24条线均为输出,且为A,F为任意方波程序    MOVDX,FFE3H    MOVAL,10000000B.(方式0)    OUTDX,ALGOON:MOVDX,FFEOH    MOVAL,0    OUTDX,AL    MOVDX,FFE1H    MOVAL,0    OUTDX,AL    MOVDX,FFE2H    MOV AL,0    OUTDX,AL    MOVDX,FFEOH    MOVAL,FFH(1)    OUTDX,AL    MOVDC,FFE1H    MOVAL,FFH    OUTDX,AL    MOVDX,FFE2HG    MOVAL,FFH    OUTDX,AL    JMPGOON'