微机原理与接口技术第四版周何琴课后习题答案.docx
91«岬小业1 .将下列二三w数转换成十进制数。(1) 11001010B=202(2)00111101B=61(3)O1.OO1.101B=77(4)10100100B1643.将下列十进制数分别转换为二进制数和十六进制数.(2)76=100I1.OOB=4CH(4)134=10000110B=86H4.求下列十进制数的BCD制(1) 327=1100100111(BCD码)(2) 1256=1001001010110(BCD码)6.求出下列10进制数的J1.(码、反码和补寓(2)+85(4)-85解:85=0101O1.O1.B原码:+85=O1.O1.0101B-85=I1.O1.O1.O1.B反码:+85=O1.O1.O1.O1.B-85=1010IO1.OB补码:+85=O1.O1.O1.O1.B-85=1010101IB10.出软型计算机的基本结树S图,说明各部分的主要功能是什么?触微型计算机的必本结构框图如下:微处理叁CPU:限制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和限制程序流向。微处理叁主要完成:(1)指令限制:从存储器中取指令,指令译码;(2)数据加工:简洁的算术逻辑运算;(3)操作限制:在微处理器和存储器或者I/O之间传送数据;(4)时间限制:程序流向限制.存储善:用来存放数据和指令。I/O接口:主机和外设间的桥梁,供应数据缓冲强动、信号电平转换、信息转换、地址译码、定时限制等各种功能,I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。总线:连接计算机系统中各功能部件的信息通道。第2章8086CPU作业2. 8086CPU内部由舞两部分组成?它们的大致是如何工作的?答:(1) 8086CPU山指令执行部件EU和总线接口部件BIU两部分组成。(2)B1.U先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。存储器的物理地址=CS16÷IP,在地址加法器中形成“EU从指令队列中取走指令,经EU限制器译码分析后,向各部件发限制吩咐,以完成执行指令的操作。BIU与EU是并行工作方式。当指令队列已满,EU在执行指令,未向总线接口单元BIU申请读/写内存或I/O操作时,B1.U处于空闲状态。指令执行过程中,若需对存储器或I/O端口存取数据,EU就要求BIU去完成相应的总线周期。5.两个带符号数IoI1.o100B和I100oII1.B相加,运算后各标记位的值等于多少?事些标记位是有意义的?假如把这两个数当成无符号数,相加后事当标记位是有意义的?解:(1)两个带符号数:不考虑CF标记10110100+1100O1.1.1.1O1.1.1.1011运算后各标记位状态如下:CF=I,存进位,对于带符号数,无意义。PF=I,结果有偶数个1AF=O,无半进位,非BCD码运第,无意义。ZF=O,结果非0SF=O,结果为正数OF=I,溢出(两个负数相加,结果变成了正数)(2)两个无符号数:不考虑SF和OF标记10110100+110001111O1.1.1.1011运算后各标记位状态如下:CF=I,有进位PF=I,结果有偶数个】ZF=O,结果非0AF、SF、OF无意义。20.简要说明下列名词的意义.CPU:中心处理单元CPU(Contro1.ProcessingUnit)也称微处理器,是微型计算机的核心部件,由运算器A1.U、限制器、寄存器组以与总线接口等部件组成C主要完成各种运算,负责对整机的限制。存储用于存储程序和数据的硬件设备。堆枝:堆栈是一种数据结构,是内部RAM的一段区域。设置堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的爱护与复原。IP:指令指针寄存器,用于限制CPU的指令执行依次(只存放偏移量:),只能和代码段寄存器CS协作运用,可以确定当前所要取的指令的内存地址,且始终指向代码段中下一条将要读取到CPU指令队列的那条指令。依次执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节。SP:堆栈指针寄存器,用于指示堆栈的栈顶地址偏移电的寄存器,它确定了堆栈在内部RAM中的物理位置。只能和SS段寄存器协作运用,且始终指向堆栈的栈顶,在堆栈指令中隐含的运用它来定位栈顶数据。BP:基址指针寄存器。用于存放偏移量,通常和SS段寄存器协作运用,在间接寻址中用于定位堆栈段中的内存单元。殿寄存器:由于CPU内部的寄存擀都是16位的,为了能够供应20位的物理地址,8086系统中采纳了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段基址,由指令供应当单元相对于相应段起始地址的16位偏移量。状态标记:表示前一步操作(如加、减等)执行以后,A1.U所处的状态,后续操作可以依据这些状态标记进行推断,实现转移。限制标记:可以通过指令人为设置,用以对某种特定的功能起限制作用(如中断屏版等),反映了人们对微机系统工作方式的可限制性C物理地址:存储器的实际地址,它是指CPU和存储器进行数据交换时所运用的地址。物理地址是由段地址与偏移地址共同确定的,计算物理地址的表达式为:物理地址=段地址×16+偏移地址嵬辑地址:是在程序中运用的地址,它由段地址和偏移地址两部分组成。逻辑地址的表示形式为“段地址:偏移地址”。机器语言:干脆用二进制编码表述的指令系统语言,通常称为机器语言,机器语言指令是计算机惟一能干脆识别和执行的指令。汇编语言:便于记忆和运用,通常运用汇编语言(符号指令或指令助记符)来描述计算机的指令系统。指令:让计算机完成某种操作的附咐称为指令C指令系端:一台计算机所能识别、执行的指令的集合就是它的指令系统。总线:连接计算机系统中其他主要功能部件的桥梁,是计竟机系统中信息输送的枢组,只有通过总线,计算机系统的各部件才能实现相互通信。内部总线:微处理器内部各个器件之间传送信息的通路。系统总线:微处理机机箱内的底板总线。可分为:ISA、EISA、VESA局部总线、PC1.局部总线等。时钟周期:CPU时钟频率的倒数称为时钟周期,也称T状态总线周期:B1.U完成一次访问存储器或I/O端口操作所须要的时间称为总线周期。一个基本的总线周期是由4个(或4个以上)时钟周期蛆成的。指令周期:执行一条指令所须要的时间称为指令周期,不同指令的指令周期的长短是不同的C一个指令周期是由几个总线周期组成的。21.要完成下列运算前限制,用什么标记判别?其值是什么?(1)比较两效是否相审(2)两款运算后结果是正数还是负效?(3)两败相加后是否溢出?(4)"校改推断。(5)两数相减后比较大小。(6)中断信号能否允许?答:(1)比较两数是否相等:两数相减后用零标记ZF推断,ZF=I,则相等。(2)两数运算后结果是正数还是负数:用符号标记SF推断,SF=I,则结果为负数。(3)两数相加后是否溢出:用溢出标记OF推断,OF=I,则有溢出。(4)奇阳校髓推断:采纳儡校验方式,判定是否要补“1”?用奇偶标记PF推断,若数据结果低8位中含有偶数个“1",则PF=I;不用补“1”。(5)两数相减后比较大小:ZF=I,两数相等。对于无符号数,CF=I,则被减数小于减数;CF=O,则被减数大于减数;ZF=I,则两数相等。对于带符号数,SFeOF=I,则被减数小于减数;SFeOF=O,则被减数大于减数。(6)中斯信号能否允许:用中断允许标记IF推断,IF=I,则能允许可屏蔽中断,22.说明8086系城中”小模式W和“大模式”两种工作方式的主要区分。最小模式(最小工作方式):单微处理器系统(系统中只有一个8086微处理器),哈部的总线限制信号,都是干脆由8086CPU产生的,适用于规模较小的微机应用系统C当把8086的33脚MN/MX接+5V时,8086CPU就处于最小工作方式。最大模式(最大工作方式):多微处理器系统(包含有两个或多个微处理器,一个主处理器8086CPU,其他的处理器称为协处理器它们是帮助主处理器工作的。),主要用在中等或大规模的8086系统中。当把8086的33脚MN/MX接地时,8086CPU就处于最大模式。第3章作业1.分别说明下列指令的源操作数和目的掾作数各采纳什么寻址方式。源H的(I)MOVAX12048H马上寻址寄存器J址(2)MOVC1.,OFFH马上d址寄存器寸址MOVBX,SI寄存器间接寻址寄存器d址(4)MOV5BX,B1.寄存器寻址寄存器相对d址MOVBP+100H,AX寄存器寻址寄存器相对J址MOVBX+DI,'$'马上寻址基址变址寻址MOVDX,ES:BX+SI基址变址寻址寄存器寻址MOVVA1.BP+DI,DX寄存器寻址相对基址加变址寻址(9) INA1.,05HI/O端口寻址(或干脆寻址)寄存器寻址(10) MOVDS,AX寄存器寻址寄存器寻址2.已知:DS-I(XX)H,BX-02H,SI-02H,内存10200H10205H单元的内容分制为10H,2AH,3CH,46H,59H,6BH.下列每条指令执行完后AX寄存寄的内容各是什么?AX内容(I)MOVAX,0200H;(2) MOVAX,200H;(3) MOVAX,BX;MOVAX,3BX;MOVAX,BX+SI);MOVAX,2BX+SI;6.指出下列指令中舞些是借误的,(1)MOVD1.,AX(AX)=0200H(AX)=2A10H(AX)=0200H(AX)=5946H(AX)=463CH(AX)=6B59H借在什么地方错误,源和目的操作数类型不匹配,D1.是8位寄存器,AX是16位寄存器。(2) MOV8650H,AX(3) MOVDS,0200H器赋值。(4) MOVIBX,12OOH脆传送数据(5) MOVIP,OFFH(6) MOV(BX+SI+3,IP(7) MOVAX,BXBP1(8) MOVA1.,ES:BP(9) MOVD1.,SI)DI(10) MOVAX,OFFSET0A20H错误,马上数不能作为H的操作数.错误,不能用马上数干脆给段寄存错误,不能在两个存储单元之间干错误,IP不能作目的操作数或不能用马匕数干脆给IP寄存器赋值。错误,IP不能作源操作数,错误,基址变址寻址方式必需是一个基址寄存器与一个变址寄存器,不能两个同时为基址寄存器(BX、BP均为基址寄存器)。正确。错误,必址变址寻址方式必需是一个基址寄存器与一个变址寄存器,不能两个同时为变址寄存器(ShD1.均为变址寄存器)。错误,OFFSET后必需是存储单元标陛地址,不能是马上数。(三)MOVA1.,OFFSETTAB1.E错误,操作数类型不匹配,A1.为8位,TAB1.E为16位。不能是马上数。(13) INB1.,05H是累加器(14) OUTA1.,OFFEH错误,IN指令的目的操作数必需错误,OUT指令的源操作数必需是累加器,目的操作数为8位I/O端口地址或用DX做桥梁的16位I/O端口地址。10.已知AX-2508H,BX-0F36H,CX-04H,DX-1864H,求下列每条指令执行后的结果是什么?标记位CF等于什么?(1)ANDAH,C1.(AH)-04HCF-O(2)ORB1.,30H(B1.)-36HCF-O(3)NOTAX(AX)-0DAF7HCF不变(不给响CF)(4)XORCX,OFFFOH(CX)-0FFF4HCF-O(5)TESTDH,OFH(DH)-18HCF-O(6)CMPCX,H(CX)-04HCF-O(7)SHRDX,C1.(DX)-0186HCF-O(8)SARA1.,1(A1.)-04HCF-O(9)SH1.BH,C1.(BH)-OFOHCF-O(10)SA1.AX,1(AX)-4A10HCF-O(I1.)RC1.BX,1CF-1,(BX)-1E6DH,CF-O,(BX)-1E6CHCF-O(12)RORDX,C1.U.假设数据定义如下:DATASEGMENT(DX)-4186HCF-OSTRINGDB*ThePersona1.Computer&TV,DATAENDS试用字符串掾作指令编程完成以下功能:(1)把该字符串传送到附加段中偏移地址为GET_CHAR起先的内存单兀中。M:程序段如下:;置源申偏移地址;置目的申偏移地址;置串长度;方向标记复位;字符串传送1.EASI,STRING1.EADI,GET-CHARMOVCX,26C1.DREPMOVSB12.编程将AX寄存器中的内容以相反的次序传送到DX寄存卷中,并要求AX中的内容不被破坏,候后端计DX寄存卷中1的个数是多少。解:将AX的内容用ROR循环右移,16次之后AX的内容不变(假如用算术/逻辑在移SH1./SA1.,则AX的内容破坏,须要用堆栈PUSHUAX/POPAX爱护),其最低位移入CF中,再运用RC1.循环左移将CF中的值移入DX中。并且,假如CF的值为1,则将B1.加1。MOVCX,16XORB1.,B1.1.P1.:RORAX,1JNC1.P2INCB1.1.P2:RC1.DX,11.OOP1.P1.H1.T调试程序:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDTSEGMENTBUFDW12BUF1.DW100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DSQATA,SS:STACKSTART:PUSHDSMOVAX1DATAMOVDS,AXMOVAX,1234HXORB1.,B1.1.P1.:RORAX,1JNC1.P2INCB1.1.P2:RC1.DX,11.OOP1.P1.H1.TCODEENDSENDSTART15.某班有七个同学的英语成果低于80分,分数存在ARRAY数Ia中,试编程完成以下工作:给每人加5分,结果存到NEW1.tta中.解:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTARRAYDB7DUP(?)NEWDB7DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SSrSTACKSTART:MOVCX,7MOVBX,01.P1.:MOVA1.,ARRAYBXADDA1.,O5HDAAMOVNEW(BXI),A1.INCBX1.OOP1.P1.H1.TCODEENDSENDSTART调试程序:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68HNEWDB7DUP(?)BUF1.DW100DUP(?)DATAENDSCODESEGMENTASSUMECSrCODE,DS:DATA,SS:STACKSTART:PUSHDSASSUMECS:CODE,DS:DATA,SSrSTACKSTART:PUSHDSINT21HDECJNZPOPMOVMOVMOVMOVMOVSTI:MOVRORMOVANDADDCMPJBEADDDISP:MOVMOVAX,DATADS,AXA1.,BUFDH,A1.CH,02HC1.,4DH,C1.A1.,DHA1.,OFHA1.,30HA1.,39HDISPA1.,07HD1.,A1.AH,02HCHST1.DSMOVDI,3000HMOVCX,1001.P2:MOVA1.,SI1.XCHGDI),A1.INCSIINCDI1.OOP1.P2H1.T(3)利用换商指令X1.ATMOVBX,2000HMOVDI,3000HMOVCX,1001.P3:XORA1.,A1.X1.ATMOV1DI,1.INCBXINCDI1.OOP1.P3H1.T(4)利用堆栈实现数据传送MOVSI,2000HMOVDI,3000HMOVCX,501.P4:PUSH1SIPOPDIINCSIINCSIINCDIINCDI1.OOP1.P4H1.T(5)利用串舞作指令REPMOVSB22.在DATA起先的4个单元中存放着一个32位数,求出其中的“1”的个数,并存入COUNT单元中。解:dtsegmentDATA1.DBOFEH,86H,7CH,35HC0UNTDBOOHDataendsSTACKSEGMENTDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSI,OFFSETDATA1.MOVBX,(SIMOVDX,SI+2MOVCX,32XORA1.,A1.1.P1.:RCRDX,1RCRBX1IJNC1.P2INCA1.1.P2:1.OOP1.P1.MOVCOUNT,A1.POPDSMOVAH,4CHINT21HH1.TCODEENDSENDSTART1.下列变各占多少字节?4字节6字节4×2×5-405×3×4-60A1.DW23H,5876HA2DB3DUP(?),OAH,ODH9A3DD5DUP(1234H,567890H)字节A4DB4DUP(3DUP(1,2t,ABC,)字节调试程序:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTDA1.DW23H,5876HDA2DB3DUP(?),OAH,ODH,$DA3DD5DUP(1234H,567890H)DA4DB4DUP(3DUP(1.,2,'ABC')jDA5DB10DUP(?)DATAENDSCODESEGMENTASSUMECSrCODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVAXjOFFSETDA1.MOVBXtOFFSETDA2MOVCXiOFFSETDA3MOVDX,OFFSETDA4MOVDIiOFFSETDA5POPDSH1.TCODEENDSENDSTART5 .对于下的鼐相定义,各条MoV指令执行后,有关寄存器的内容是什么?DA1.DB?DA2DW10DUP(?)DA3DB'ABCD'MOVAX,TYPEDA1.MOVBX,SIZEDA2MOVCX,1.ENGTHDA3解:各条MOV指令执行后,有关寄存器的内容如下:MOVAX,TYPEDA1.;(AX)=1MOVBX,SIZEDA2;(BX)=20MOVCX,1.ENGTHDA3;(CX)=1调试程序STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTDA1.DB?DA2DW10DUP(?)DA3DB,ABCD,DATAENDSCODESEGMENTASSUMECS:CODE,DSQATA,SS:STACKSTART:PUSHDSMOVAX1DATAMOVDS,AXMOVAX,TYPEDA1.MOVBX,SIZEDA2MOVCXi1.ENGTHDA3POPDSH1.TCODEENDSENDSTART6 .下段程序完成后,AH等于什么?,INA1.,5FHTESTA1.,80HJZ1.1.MOVAH,0JMPSTOP1.I:MOVAH,OFFHSTOP:H1.T假如地址为5FH的外设输入到A1.中的数据的及高位=1,则(AH)=0,否则,(AH)=OFFH010.编制两个通用过程,完成两位十六进制数转换成Ase1.I玛,并将ASC11码字符显示。(1)两位十六进制数转换威AsCn玛设两位十六进制数存放在D1.中,输出的ASCII码存放在BXcCONPROCPUSHAXPUSHCXMOVC1.14MOVA1.,D1.ANDA1.,OFHCMPA1.,OAHJNC1.P1.ADDA1.,30HJMP1.P21.P1.:ADDA1.,37H1.P2:MOVB1.,A1.MOVA1.,D1.SHRA1.,C1.ANDA1.,OFHCMPA1.,OAHJNC1.P3ADDA1.,30HJMP1.P41.P3:ADDA1.,37H1.P4:MOVBH,A1.POPCXPOPAXRETCONENDP四位十六进制数转换成ASC11菖,设四位十六进制数存放在存储器BUF1.单元中,输出的ASC1.1.码存放在存储器BUF2起先的单元中。CONPROCPUSHAXPUSHCXPUSHDXMOVDI,OFFSETBUF2MOVSI,OFFSETBUF1.MOVDH,4MOVDX,画DX,C1.A1.,D1.A1.,OFA1.530HA1.,3AH1.P2MOVC1.,41.P1.:RO1.MOVANDADDCMPJCADDA1.,07H1.P2:MOV(DI,A1.INCDIDECCHJNZ1.P1.POPDXPOPXRETCONENDP(2)ASC1.I码字符显示设2个ASCII码字符在BX中nDISPPROCPUSHAXMOVD1.,B1.MOVAH,2INT21HMOVD1.,BHINT21HPoPAXRETDISPENDP调试程序STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTDA1.DB5FH,0A4H,0C7HDA2DB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SSrSTACKSTART:PUSHDSMOVX,DTMOVDS1AXMOVD1.,D1CA1.1.CONCA1.1.DISPPOPDSH1.TCON:PUSHAXPUSHCXMOVC1.,4MOVA1.,D1.ANDA1.,OFHCMP1.,OHJNC1.P1.ADDA1.,30HJMP1.P21.P1.:ADDA1.,37H1.P2:MOVB1.,A1.MOVA1.,D1.SHRA1.,C1.ANDA1.,OFHCMP1.,OAHJNC1.P3ADD1.,30HJMP1.P41.P3:ADDA1.,37H1.P4:MOVBH,A1.POPCXPOPAXRETDISP:PUSHAXMOVD1.fB1.MOVAH,2INT21HMOVD1.,BHINT21HPOPAXRETCODEENDSENDSTART13.将黄盘上输入的一位为十六进制裁转换成十进制数,在屏幕上显示。DatasegmentDATA1.DB10DUP(?)DATA2DB10DUP(?)DataendsSTACKSEGMENTSTACKDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXKEY:MOVAH,1INT21HZH:CMP1.,3AHJAEZH1.SUBA1.,30HJMPZH2ZHI:SUBA1.,37HADDA1.,0DAAZH2:MOVB1.,A1.ANDA1.tOFOHMOVC1.,4SHRA1.,C1.ADDA1.,30HMOVBH,A1.MOVA1.,B1.ANDA1.,OFHADDA1.,30HMOVB1.,A1.DISP:MOVD1.,BHMOVAH,2INT2IHMOVD1.,B1.MOVAH,2INT2IHPOPDSMOVAH,4CHINT21HH1.TCODEENDSENDSTART调试程序:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTBUF1.DBP1.easeinputonehexadecima1.(0-9,A-F):',ODH,0AH,$BUF2DB20H,20H,'Decima1.(0-15):',0DH,0AH,$,BUF3DB10DUP(?)DTENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAXjDATAMOVDS1AXMOVDXiOFFSETBUF1.MOVAH,9INT2IHKEY:MOVAH1IINT21HPUSHAXMOVDX1OFFSEtBUF2MOVAH,9INT2IHPOPAXZH:CMPA1.,3AHJAEZH1SUBA1.,30HJMPZH2ZHI:SUBA1.,37HADDA1.,0DAAZH2:MOVB1.,A1.ANDA1.tOFOHMOVC1.,4SHRA1.,C1.ADDA1.,30HMOVBH,A1.MOVA1.,B1.ANDA1.,OFHADD1.,30HMOVB1.,A1.DISP:MOVD1.,BHMOVAH,2INT2IHMOVD1.,B1.MOVAH,2INT2IHPOPDSMOVAH,4CHINT21HH1.TCODEENDSENDSTART22.编程序端计学生的数学成果,分别总类90-99分,80-89分,70一79分,6069分与60分以下,并科各段的人数送入内存单元中。解:STACKSEGMENTDB100DUP(?)STACKENDSDatasegmentDT1DB200DUP(?)DATA2DB100DUP(?)DTA3DB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVMOVXORKEY:MOVKEY1.:MOVINT21HAX,DATADS,AXCXCXSI;OFFSETDATA1.AH,1CMPA1.,'$'JZZHINCCXMOVSI1,A1.INCSIJMPKEY1.ZH:MOVSI,OFFSETDATA1.MOVDI,OFFSETDATA2SHRCX,1PUSHCXZHI:MOVANDA1.,(SIA1.,OFHSH1.A1.,1SH1.A1.,1SH1.A1.,1SH1.A1.,1MOVB1.,A1.INCSIMOVANDA1.,A1.,SIOFHORA1.,B1.MOVDI),A1.INCSIINCDI1.OOPZH1.TJ:POPCXMOVDI,OFFSETDATA2TJO:MOVA1.,DICMPA1.,90HJNBTJ1.CMPA1.,80HJNBTJ2CMPA1.,70HJNBTJ3CMPA1.,60HJNBTJ4INC4DATA3JMPTJ5TJ1.:INCJMPDATA3TJ5TJ2:INC1DATA3JMPTJ5TJ3:INC2DATA3JMPTJ5TJ4:INC3DATA3TJ5:INCDI1.OOPTJOPOPDSMOVAH,4CHINT21HH1.TCODEENDSENDSTARTSTACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTDATA1.DB80DUP(?)DATA2DB80DUP?DATA3DB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXXORCX,CXKEY:MOVSIjOFFSETDATA1.KEY1.:MOVAH,1INT21HCMPA1.,'$,JZZHINCCXMOVSI,A1.INCSIJMPKEY1.ZH:MOVSI,OFFSETDATA1.MOVDI,OFFSETDATA2SHRCX,1PUSHCXZHI:MOVA1.,SIANDA1.,OFHSH1.A1.,1SH1.A1.,1SH1.A1.,1SH1.A1.,1MOVB1.,A1.INCSIMOVA1.,SIANDA1.,OFHORA1.,B1.MOVDI),A1.INCSIINCDI1.OOPZH1.TJ:POPCXMOVDI,OFFSETDATA2TJO:MOVA1.,(DI)CMPA1.,90HJNBTJ1.CMPA1.,80HJNBTJ2CMPA1.,70HJNBTJ3CMPA1.,60HJNBTJ4INC4DATA3)JMPTJ5TJ1.:INCDATA31JMPTJ5TJ2:INC1DATA3JMPTJ5TJ3:INC2DATA3)JMPTJ5TJ4:INC3(DATA3各类小型存储介质:CF卡(紧凑式闪存)、SM卡(固态软盘卡)、SD卡(平安数码卡)、MMC卡(多媒体卡)、MS卡(记忆棒)、XD卡(尖端数字图像将等。12.什么是Cache?它处在计算机的什么位置上?起作用是什么?答:(1) Cache:高速缓冲存储器(2) Cache在计算机中位于CPU和DRAM之间。(3)在慢速DRAM和快速CPU之间设置1个容以较小的高速缓冲存储器(Cache)。能不明显增加成本而提高CPU存取数据速度C以解决计算机存储器系统的容量、存取速度与单位成本之间的冲突。为了解决存储器系统的容量、存取速度与单位成本之间的冲突,可以采纳CaChe一主存存储结构,即在主存和CPU之间设置高速缓冲存储器Cache,把正在执行的指令代码单元旁边的部分指令代码或数据从主存装入CaChe中,供CPU在一段时间内运用,在肯定容量CaChe的条件下,可以做到使CPU大部分取指令代码与进行数据读写的操作都只要通过访问Cache,而不是访问主存而实现.18.用8KX8位的RAM6264构成T32KX8位存储器,存储善的起始地址为18000H,要求存储芯片的地址连续,用741.S138俄译碍器,系统中只用到了地址线A18-A0,采纳部分译码法设计译码电路,MWtH硬件电路图,并用列表说明每块芯片的地址他国。(选用8088CPU);8253初始化;通道。初始化程序MOVA1.,00110101B式2,十进制计数OUT43H,A1.MOVA1.,OOHOUT40H,A1.MOVA1.,20HOUT40H,A1.;通道1初始化程序MOVA1.,01110111B式3,卜进制计数OUT43H,A1.MOVA1.,OOHOUT41H,A1.MOVA1.,IOHOUT41H,A1.;主程序STIZX:NOPJMPZX;中断服务子程序IRQ2:PUSHAXSTIINA1.,60HNOTA1.OUT61H,A1.;通道O限制字,读写两字节,方;写入低字节;写人高字节;通道1限制字,读写两字节,方;写人低字节;写入高字节;从8255的PA口读人开关状态;8255的PA口开关状态取反;8255的PB口限制1.ED,指示开关状态MOVA1.,20H;发中断结束一般EO1.吩咐OUT20H,A1.POPAXIRET19.8255A的口皿为80H83H,8253的口地址为84H-87H,(1)若A口按8个开关K7K0,B口按8个指示灯1.ED71.ED0,当开关合上时相应的指示灯点亮,断开时灯灭。要求每Ieo.53检酒一次开关状态,并随时在发光二极管1.ED7-1.EDO上显示出来。试出硬件连结电路图,编写实现这种功能的程序。(2)粗BA口接的开关去掉,要求B口接的8个指示灯轮番熄灭(轮看点亮为一马灯),每只灯熄火18,编写物这种功能的程序。解:硬件电路如下图所示。其中:8255A的4个端的地址分别为:80H、81H、82H和83H,对应于8255A的A口、BC口和限制字寄存器。8253的4个端的地址分别为:84H、85H、86H和87H,对应于8253的TO、TKT2和限制字寄存器。8259的2个端的地址分别为:88H、89H。设8259的中断类型号为4048H,IRQ2的中断类型号为42H。8253须要定时0.5s,通过TO,TI通道级联实现。05s(1.2MHz)=1000000,设To工作于方式2,初值为1000;TI工作于方式3,初值为100O(TI假