一、填空题(20*1)1、微机系统由(硬件系统)和(软件系统)两部分组成。2、8086有(20)位地址线,存储器容量为(1M)B。3、8086CPU内部组成结构从功能上讲,可分为(BIU)和(EU)两部分。4、8086/8088的四个段寄存器为(DS)、(ES)、(SS)、(CS)5、用来存放CPU状态信息的寄存器是(FLAGS)。6、用来存放指令地址的寄存器是(IP)。7、8086的16位标志寄存器FLAGS中OF=1表示运算结果(溢出),ZF=1表示运算结果为零。PF=0表示运算结果的低8位中1的个数为(奇数)。8、8086的16位标志寄存器FLAGS中IF=1表示CPU(允许)中断,TF=1表示CPU进入(单步)工作方式。9、地址4000H:0300H,其物理地址是(40300H),段地址是(4000H),偏移地址是(0300H)。11、I/O端口的寻址方式有两种,分别是(直接寻址),(间接寻址)。12、指令JONEXT表示OF=(1)时转移。13、将I/O设备端口内容读入AL中的指令助记符是(IN)。14、8086CPU的I/O指令采用间接寻址时,使用的间接寄存器是(DX)。15、设置DF=1的指令为(STD)。16、清除CF标志的指令为(CLC)。17、一对操作堆栈的指令为(POP)和(PUSH)。18、LOOPNZ的循环条件为(CX≠0且ZF=0)。19、实现无符号数乘2的指令的助记符是(SHL),实现有符号数除2的指令的助记符是(SAR)。22、8086CPU引脚信号中中断请求两个信号名称为(INT)和(NMI)。26、I/O端口的编址方式一般有(存储器统一编址)和(独立编址)两种29.1片8259A中断控制器可管理(8)级中断,用9片8259A可构成(64)级主从式中断管理系统。二:填空题(每题2分,共20分)1.8086CPU复位时,寄存器CS值为(FFFFH),寄存器IP的值为(0000H)2.8086CPU的8个8位通用寄存器名为(AL),(AH),(BL),(BH),(CL),(CH),(DL),(DH).3.若SS=3240H,SP=2000H,栈顶的实际地址为(34400H).4.指令MOVAX,[BX]的机器码为8BH,07H,指令MOV[BX],AX的机器码为(89H),(07H).5.8255A的工作方式有方式0功能为(基本输入输出),方式1功能为(选通输入输出),方式2功能为(双向数据传送).6.执行指令PUSHAX有SP=(SP-2),执行指令POPAX有SP=(SP+2)7.组合十进制加法调整指令DAA对寄存器(AL)中的值进行调整.8.和指令SHLAL,1功能相同的指令是(SALAL,1)9.8259A的初始化命令字应按(顺序)写入,操作命令字应按(需要)写入.10.2114为1024X4的RAM存储器芯片,组成8KB主存储器需要(16)片2114.二、选择题(20*1)1、源的变址寄存器是(A)。A)SIB)DIC)SPD)BX2、用来存放即将执行的指令的偏移地址的寄存器是(B)。A)SPB)IPC)BPD)CS3、用来存放运行结果状态的寄存器为(C)操作。A)SPB)SIC)FLAGSD)DX4、微机中控制总线传送的是(D)。A)存储器和I/O接口的地址码B)微处理器向内存储器和I/O接口传送的命令信号C)存储器和I/O设备向微处理器传送的状态信号D)B和C5.在下列指令的表示中,不正确的是(C) A.MOVAL,[BX+SI] B.JMPSHORTDONIC.DEC100 D.MULCL6.将DX的内容除以2,正确的指令是(C) A.DIV2 B.DIVDX,2C.SARDX,1D.SHLDX,17.若栈顶的物理地址是20100H,当执行完POPAX指令后,栈顶的物理地址是(A)。A)20102HB)20101HC)20100HD)20103H8.下列指令中,源操作数的寻址方式中,(C)属于立即寻址,(B)属于寄存器寻址,(E)属于寄存器间接寻址,(A)属于直接寻址,(D)属于寄存器相对寻址。A)MOVAX,[4000H]B)MOV[BX],AXC)SUBAX,2000HD)MOVAX,[SI+12H]E)MOVCX,[BX]F)MOVAX,[SI+BX+10H]9.下列指令中错误指令是(B)、(E)和(F)。A)MOVAX,DSB)MOVCS,1500HC)MOVSI,BXD)MOV[3000H],ALE)MOV[DI+32H],[1845H]F)MOVAL,1000H10.指令LOOPNZ的循环结束条件是(D)。A)CX=0且ZF=0B)CX=0或ZF=0C)CX=0且ZF=1D)CX=0或ZF=111.语句DA1DB2DUP(4,6),5汇编后,与该语句功能等同的语句是(C)。A)DA1DB4,6,5B)DA1DB2,4,6,5C)DA1DB4,6,4,6,5D)DA1DB4,6,5,4,6,512、对于语句YDW10DUP(0),则TYPEY为(A)、LENGTHY为(B),SIZEY为(C)。A)2B)10C)20D)414、8086/8088CPU的RD、M/IO引脚上为逻辑0时,意味着(C)操作。A)读存储器B)写存储器C)读I/O端口D)写I/O端口4、Intel8284的作用是(B)A)地址锁存B)产生时钟C)总线控制D)数据驱动16.以下存储器件,若存有数据,当掉电时,(B)存储器件不能保留原有数据?A)磁芯存储器B)RAMC)ROM17.可编程芯片8259的作用是(B)。A.定时/计数B.中断控制C.并行输入输出D.数/摸转换三:判断题(每题2分,共20分)1.8086CPU和8088CPU的地址线的数量不一样.X3.8086控制线/BHE=H,地址线A0=H时,完成16位数据传送.X4.16位机即指5.该机CPU的数据线为16条.√6.使用指7.令RET及IRET时,弹出堆栈的内容一样.X8.响应可屏蔽中断INTR的条件是IF=0.X9.指10.令MOVAX,CS:[BX]是正确的指11.令.√12.8086CPU提供了256个中断类型号.√13.非组合十进制乘法调整指14.令AAD对积进行调整.√15.逻辑右移指16.令SHR和算术右移指17.令SAR功能一样.X18.若(AX)=7AF0H,使用指19.令CWD后,(DX)=FFFFH..X三、问答题(5*6)3、模型机有哪些寄存器,以及作用?(选择/填空)答:通用寄存器组:可由用户灵活支配,用来存放参与运算的数据或地址信息。地址寄存器:专门用来存放地址信息的寄存器。程序计数器:它的作用是指明下一条指令在存储器中的地址。指令寄存器:用来存放当前正在执行的指令代码指令译码器:用来对指令代码进行分析、译码,根据指令译码的结果,输出相应的控制信号4、8086CPU的内部结构由哪两部分组成,各组成部件又有哪些部件组成、功能是什么?答:8086CPU内部结构由BIU\EU两部分组成.(1)EU的组成和各组成部件功能如下:算术逻辑运算单元:用于8位/16位二进制算术和逻辑运算.通用寄存器组:用来存放操作数或操作数的地址标志寄存器:用来存放反映CPU运算的状态特征和存放某些控制标志数据暂存器:协助ALU完成运算,暂存参加运算的数据(2)BIU的组成和各组成部件功能地址加法器:用来形成20位物理地址段寄存器:用来存放段的基值IP:存放下一条指令的地址指令队列缓冲器:用来存放预取的指令总线控制逻辑:将内部总线和外部总线相连.7、CPU在中断周期要完成哪些主要的操作?答:CPU在中断周期要完成下列操作:(1)关中断(2)保留断点(3)保护现场(4)给出中断入口地址,转去相应的中断服务程序(5)恢复现场(6)开中断(7)返回8、芯片8255有几个控制字?各自功能如何?若8255A控制字写入同一个控制端口如何区分不同的控制字?答:芯片8255有2个控制字:方式选择控制字和端口C置位/复位控制字。功能如下:方式选择控制字:制定工作方式工作。端口C置位/复位控制字:通过对控制寄存器写入端口C置位/复位控制字来实现对其按位控制。通过控制字D7作为特征位来区分不同的控制字。四:指令改错(每题2分,共20分)1.MOV[2000],20HMOVAL,20HMOV[2000H],AL2.MOV[DX],2000HMOVBX,DXMOV[BX],2000H3.OUT300H,ALMOVDX,300HOUTDX,AL4.PUSHALPUSHAX5.DIV[BX]DIVBYTEPTR[BX]ORDIVWORDPTR[BX]五:读程序并回答问题(每题8分,共16分)1.程序1DATASEGMENTNUM1DB48H,41H,16H,28HNUM2DB37H,22H,52H,84HSUMDB4DPU(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXLEASI,NUM1LEADI,NUM2LEABX,SUMMOVCX,4AG:MOVAL,[SI]ADDAL,[DI]MOV[BX],ALINCSIINCDIINCBXDECCXJNZAGRETSTARENDPCODEENDSENDSTAR问:执行程序后,SUM中的值为(7FH),(63H),(68H),(ACH)2.程序2DATASEGMENTBUF1DB0,1,2,3,4,5,6,7,8,9BUF2DB?COUNTEQU$-BUFDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXLEABX,BUF1MOVCX,COUNT-1MOVAL,[BX]AG:INCBXCMPAL,[BX]JAEBIGMOVAL,[BX]BIG:DECCXJNZAGMOVBUF2,ALRETSTARENDPCODEENDSENDSTAR问:该程序执行后BUF2中的值为(9).四、程序设计题(2*10)1、编写一个汇编语言程序,要求从键盘输入一个小写字母,将其转换成大写字母在屏幕上显示出来。DATASEGMENTBUFDB0DH,0AH,PLEASEINPUTACHAR:$DATAENDSSTACKSEGMENTDB20DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXLEADX,BUF;9号调用显示PLEASEINPUTACHAR:MOVAH,9INT21HMOVAH,1;1号调用,从键盘接收1字符INT21HCMPAL,61H/41H;若比“a”/A小转PENDJBPENDCMPAL,7AH/5BH;若比“z”/Z大转PENDJAPEND;ADD/SUBAL,20H;如在“a”与“z”之间则减去20变为大写字符MOVDL,ALMOVAH,2;2号功能调用显示一个字符INT21HPEND:MOVAH,4CH;程序结束运行,返回DOSINT21HCODEENDSENDBEGIN2、已知芯片8253的端口地址为4F0H~4F3H,设计数器1工作在方式1,计数器初值为3060H,采用二进制计数,请设计实现上述功能的8253初始化程序。8253控制字格式如下:因为计数器初值为3060H,即为16位的,所以读/写格式为11因此控制字为:01110010=72控制字:MOVAL,72HOUT4F3H,AL低8位:MOVAL,60HOUT4F1H,AL高8位:MOVAL,30HOUT4F1H,AL六:编程题(7分)编一个完整的程序,数据段有10个符号的ASCII码值数据块BUF,若数据为0到9的ASCII码值,在屏上显示Y,否则显示N解:DATASEGMENTBUFDB10DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS: