第1页2020-4-20一、单项选择题(15*2)1、下列数中最大的数是(C)A、(1011011)2B、(142)8C、(82)16D、(10010111)BCD2、一个完整的计算机系统应包括(D)A、运算器、存储器、控制器B、主机和外部设备C、主机与应用程序D、配套的硬件设备和软件系统3、PSW是指令部件中(D)A、指令寄存器B、指令译码器C、程序计数器D、程序状态寄存器4、8086/8088CPU中,用来存放程序的指令代码段的寄存器是(A)A、CSB、DSC、SSD、ES5、主存储器和CPU之间增加高速缓冲器的主要目的是(B)A、扩大主存储器容量B、解决主存与CPU之间速度匹配问题C、扩大CPU通用寄存器数量D、既扩大主存容量又提高主存速度6、使CPU与I/0设备完全并行工作方式是(C)方式。A、程序直接传送B、中断C、通道D、程序查询7、8086系统中,当某一存储单元的逻辑地址为2300H:0075H时,其对应的物理地址为(D)A、2300HB、0075HC、23750HD、23075H8、在CPU中跟踪下一条指令地址的寄存器(C)A、主存地址寄存器B、指令寄存器C、指令计数器D、状态条件寄存器9、冯.诺依曼机的基本特征是(B)A、微程序控制B、存贮程序控制C、组合逻辑控制D、间步控制10.接口是(B)的逻辑部件。A.CPU与系统总线之间B.系统总线与I/O设备之间C.主存与I/O设备之间D.运算器与I/O设备之间11.在做加法时,D7为有进位且结果为正,则标志位CF和SF为(C)A.0和0B.0和1C.1和0D.1和112.运算器的核心部分是(D)第2页2020-4-20A.通用寄存器B.暂存器C.缓存器D.运算逻辑单元13.中断是(C)A.子程序调用B.确定性的C.随机发生的D.多道程序14.需要进行刷新的存储器是(B)。A.SRAMB.DRAMC.ROMD.EPROM15.接口是(B)的逻辑部件。A.CPU与系统总线之间B.系统总线与I/O设备之间C.主存与I/O设备之间D.运算器与I/O设备之间二、简答题(10*3)1.什么是总线?采用总线的优点是什么?三总线结构是指什么?所谓总线,是连接多个功能部件或多个装置的一组公共信号线。按在系统中的不同位置,总线可以分为内部总线和外部总线。内部总线是CPU内部各功能部件和寄存器之间的连线;外部总线是连接系统的总线,即连接CPU、存储器和I/O接口的总线,又称为系统总线。微型计算机采用了总线结构后,系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统的功能可以很方便地得以发展,微型机中目前主要采用的外部总线标准有:PC总线,ISA总线,VESA总线等。按所传送信息的不同类型,总线可以分为数据总线DB(DataBus)、地址总线AB(AddressBus)和控制总线CB(ControlBus)三种类型,通常称微型计算机采用三总线结构。2、叙述累加器和算术逻辑运算部件在微处理器中的作用累加器和算术逻辑运算部件主要用来完成数据的算术和逻辑运算。ALU有2个输入端和2个输出端,其中一端接至累加器,接收由累加器送来的一个操作数;另一端通过数据总线接到寄存器阵列,以接收第二个操作数。参加运算的操作数在ALU中进行规定的操作运算,运算结束后,一方面将结果送至累加器,同时将操作结果的特征状态送标志寄存器。累加器是一个特殊的寄存器,它的字长和微处理器的字长相同,累加器具有输入/输出和移位功能,微处理器采用累加器结构可以简化某些逻辑运算。由于所有运算的数据都要通过累加器,故累加器在微处理器中占有很重要的位置。3、8086存储器的分段及段地址是如何实现与构成的?由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,第3页2020-4-20由指令提供该单元相对于相应段起始地址的16位偏移量。这样,系统的整个存储空间可分为16个互不重叠的逻辑段。存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活。4、比较条件传送方式(查询传送方式)和中断传送方式的实现方法和特点条件传送方式:实现方法:在与外设进行传送数据前,CPU先查询外设状态,当外设准备好后,才执行I/O指令,实现数据传送。特点:1.CPU通过不断查询外设状态,实现与外设的速度匹配2.CPU的工作效率低中断传送方式:实现方法:1.当外设准备好,向CPU发出中断请求2.CPU在满足响应中断的条件下,发出中断响应信号;3.CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;4.CPU从中断服务程序返回,继续执行被中断的程序特点1.CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程2.中断传送方式提高了CPU的效率5、说明8086寄存器间接寻址、变址寻址寻址方式,举例说明寄存器间接寻址操作数是在存储器中,但是,操作数地址的16位偏移量包含在以下四个寄存器SI、DI、BP、BX之一中。可以分成两种情况:(1)以SI、DI、BX间接寻址,则通常操作数在现行数据段区域中,即数据段寄存器(DS)*16加上SI、DI、BX中的16位偏移量,为操作数的地址,。【例如】MOVAX,[SI]操作数地址是:(DS)*16+(SI)(2)以寄存器BP间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)*16与BP的内容相加作为操作数的地址,【例如】MOVAX,[BP]操作数地址是:(SS)*16+(BP)若在指令中规定是段超越的,则BP的内容也可以与其它的段寄存器相加,形成操作数地址。第4页2020-4-20【例如】MOVAX,DS:[BP]操作数地址是:(DS)*16+(BP)变址寻址由指定的寄存器内容,加上指令中给出的8位或16位偏移量(当然要由一个段寄存器作为地址基准)作为操作数的偏移地址。(操作数在存贮器中)可以作为寄存器变址寻址的四个寄存器是SI、DI、BX、BP。(1)若用SI、DI和BX作为变址,则与数据段寄存器相加,形成操作数的地址即默认在数据段;(2)若用BP变址,则与堆栈段寄存器相加,形成操作数的地址即默认在堆栈段。【例如】MOVAX,COUNT[SI];操作数地址是:(DS)*16+(SI)+COUNT但是,只要在指令中指定是段超越的,则可以用别的段寄存器作为地址基准。6、说明无条件传送方式和DMA传送方式的实现方法和特点一、无条件传送方式(同步传送方式)实现方法CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送特点1.适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况2.软硬件十分简单。四、DMA传送方式(直接存储器存取方式)实现方法:1.由专用接口芯片DMA控制器(称DMAC)控制传送过程,2.当外设需传送数据时,通过DMAC向CPU发出总线请求;3.CPU发出总线响应信号,释放总线;4.DMAC接管总线,控制外设、内存之间直接数据传送DMA传送方式的特点1.外设和内存之间,直接进行数据传送,不通过CPU,传送效率高。适用于在内存与高速外设、或两个高速外设之间进行大批量数据传送。2.电路结构复杂,硬件开销较大。7、为什么要研究时序(1)可以进一步了解在微机系统的工作过程中,CPU各引脚上信号之间的相对时间关系。由于微处理器内部电路、部件的工作情况,用户是看不到的,通过检测CPU引脚信号线上,各信号之间的相对时间关系,是判断系统工作是否正常的一种重要途径;(2)可以深入了解指令的执行过程;第5页2020-4-20(3)可以使我们在程序设计时,选择合适的指令或指令序列,以尽量缩短程序代码的长度及程序的运行时间。因为对于实现相同的功能,可以采用不同的指令或指令序列,而这些指令或指令序列的字节数及执行时间有可能不相同的。(4)对于学习各功能部件与系统总线的连接及硬件系统的调试,都十分有意义,因为CPU与存储器、I/O端口协调工作时,存在一个时序上的配合问题。(5)才能更好地处理微机用于过程控制及解决实时控制的问题8、中断服务子程序的响应过程CPU响应中断以后,就会中止当前的程序,转去执行一个中断服务子程序,以完成为相应设备的服务。中断服务子程序的一般结构如图7-4所示。(1)保护现场(由一系列的PUSH指令完成)。目的是为了保护那些与主程序中有冲突的寄存器,(如AX,BX,CX等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。(2)开中断(由STI指令实现)。目的是为了能实现中断的嵌套。(3)中断服务(4)恢复现场是与保护现场对应的,但要注意数据恢复的次序,以免混乱。(5)返回(使用中断返回指令IRET)。不能使用一般的子程序返回指令RET,因为IRET指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。中断的工作过程可分为五大步骤:即中断请求、中断判优、中断响应、中断服务和中断返回。9、写出下面运算式对标志寄存器中标志的影响0101010000111001+01000101011010101001100110100011CF=0、AF=1、PF=1、ZF=0、SF=1、OF=1(两正数相加结果为负)10、8086系统存储容量是多少?写出物理地址区域8086有20根地址总线,因此,它可以直接寻址的存储器单元数为220=1Mbyte8086可直接寻址1Mbyte的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。三、程序题(3*10)第6页2020-4-201、设内存BUFF开始的单元中依次存放着30个8位无符号数,求它们的和并放在SUM单元中,试编写程序。(10分)解:这是一个求累加的程序。程序如下:MOVSI,BUFF;设地址指针MOVCX,30;设计数初值XORAX,AX;设累加器初值AGAIN:ADDAL,[SI]ADCAH,0INCSIDECCXJNZAGAIN;循环累加MOVSUM,AX2、利用查表法计算平方值。已知0~9的平方值连续存在以SQTAB开始的存储区域中,求SUR单元内容X的平方值,并放在DIS单元中。假定0≤X≤9且为整数。(15分)解:建立平方表,通过查表完成。STACKSEGMENTDB100DUP(?)STACKENDSDATASEGMENTSURDB?DISDB?SQTABDB0,1,4,9,16,25,36,49,64,81;0~9的平方表DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATABEGIN:PUSHDSMOVAX,0PUSHAX;保证返回DOS,MOVAX,DATAMOVDS,AX;为DS送初值第7页2020-4-20LEABX,SQTAB;以下程序部分完成查表求平方值MOVAH,0;亦可用查表指令完成(如下程序段)MOVAL,SUR;AL=XLEABX,SQTABADDBX,AX;MOVAL,SURMOVAL,[BX];XLATMOVDIS,AL;MOVDIS,ALCODEENDSENDBEGIN3、在中断向量表中查找从键盘输入的字符,并将其个数用二进制形式显示出来。codeSEGMENT;代码段开始ASSUMECS:codebegin:MOVAX,0000H;设置查找首地址MOVDS,AXMOVSI,0000HMOVCX,0400H;设置查找长度MOVBX,0;计算值初值MOVAH,01H;从键盘输入INT21H;输入关键字MOVDL,AL;保存在DL中next:LODSB;从串取CMPAL,DL;与关键字比较JNZpointINCBX;计算值加1point:LOOPne