微机原理复习题库.doc_第1页
微机原理复习题库.doc_第2页
微机原理复习题库.doc_第3页
微机原理复习题库.doc_第4页
微机原理复习题库.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章计算机基础知识1、微型计算机由哪些功能部件组成?微型计算机由微处理器CPU、一定容量的内部存储器(包括ROM、RAM)、输入/输出接口电路组成。各功能部件之间通过总线有机地连接在一起,其中微处理器是整个微型计算机的核心部件。2、系统总线按其传送的信息内容与作用不同分为哪几类?系统总线是用来传送信息的公共导线 , 它们可以是带状的扁平电缆线,也可以是印刷电路板上的一层极薄的金属连线。所有的信息都通过总线传送。通常,根据所传送信息的内容与作用不同可将系统总线分为3类: 数据总线DB(Data Bus), 地址总线AB(Address Bus), 控制总线CB(Control Bus)。3、数制转换:24 = B =_H。4、BCD码:用二进制数对十进制数编码,用4位二进制数表示一位十进制数。9以内数的BCD码:和它的二进制形式一样;二位数的BCD码:和它的二进制形式不一样写出十进制10的BCD码和二进制码。第二章 8086硬件结构 功能结构和内部寄存器1、编程结构是指从程序员和使用者的角度看到的结构,亦可称为功能结构。8086CPU从功能上可分为几个部分?它们的主要功能各是什么?从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。(1) 执行部件(EU):负责指令的执行。(2) 总线接口部件(BIU):负责与存储器及I/O接口之间的数据传送操作。2、8086 有4个16位的通用寄存器(AX、BX、CX、DX),这些寄存器在具体使用上有一定的差别。在串操作时存放串长度,循环结构中存放循环次数的寄存器是_;在端口操作指令中作为端口间接地址(间址)的寄存器是_。4、8086 内部标志寄存器共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。做加法时最高位出现进位或做减法时最高位出现借位则_位 置1,反之为0; 运算结果为0时,_标志位 置1,否则清0; 当运算结果的最高位为1,_标志位置1,否则清0。5、8086 内部标志寄存器的内容,共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。中断允许标志位是_,若该位置1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断;_是方向标志位,若该位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。6、AL=76H,BL=0C1H,执行AL+BL后,CF=_, ZF= _,SF= _, OF= _。 7、AL=59H,BL=048H,执行AL+BL后,CF= _, ZF= _,SF= _, OF= _。 8086存储器的组织结构8、8086/8088有_ 条地址线,可以寻址_个字节,每个字节所对应的20位的地址称为_地址,地址范围从_到_。9、由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。用段地址和偏移地址表示的单元地址称为_地址。逻辑地址0A01H:1010H对应的物理地址为_。10、假设:DS=1000H,BX=0200H, 那么执行指令MOV AL,BX时,涉及到哪个内存单元? 解:1000H*16+0200H=10200H 所以,源操作数涉及到10200H单元 。 8086重要引脚11、8086CPU通过RESET引脚上的触发信号来引起8086系统复位和启动。当信号变成高电平时,8086CPU结束现行操作,各内部寄存器复位成初值,如下表。请问这时CPU将从哪个地址开始执行指令? 12、为了适应各种使用场合,在设计8088/8086CPU芯片时,就考虑了其应能够使它工作在两种模式下,即最小模式与最大模式。所谓最小模式,就是系统中只有一个8088/8086微处理器,最大模式是相对于最小模式而言的,最大模式下,系统中至少包含两个微处理器,_引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于_模式下;当该引脚接地时,CPU工作于_模式下。13、(Memory/Input &Output)是存储器/I/O端口选择信号输出引脚,这是CPU区分进行存储器访问还是I/O访问的输出控制信号。当该引脚输出高电平 时,表明CPU要进行I/O端口的读写操作,低位地址总线上出现的是I/O端口的地址;当该引脚输出低电平时,表明CPU要进行存储器的读写操作,地址总线上出现的是访问存储器的地址。写存储器 读存储器如图所示:请根据每一行各引脚电平写出对应的读写操作。具体操作110101010001 8086总线周期14、什么是指令周期?什么是总线周期?什么是时钟周期?它们之间的关系如何?时钟周期是微机系统工作的最小时间单元,它取决于系统的主频率,系统完成任何操作所需要的时间,均是时钟周期的整数倍。时钟周期又称为T状态。基本定时脉冲是由外部振荡器产生的,通过CPU的CLK输入端输入,基本定时脉冲的频率,我们称之为系统的主频率。我们把CPU通过总线与内存或I/O端口之间,进行一个字节数据交换所进行的操作,称为一次总线操作,相应于某个总线操作的时间即为总线周期一个基本的总线周期由4个T状态组成,我们分别称为4个状态,在每个T状态下,CPU完成不同的动作。一条指令从其代码被从内存单元中取出到其所规定的操作执行完毕,所用的时间,称为相应指令的指令周期。由于指令的类型、功能不同,因此,不同指令所要完成的操作也不同,相应地,其所需的时间也不相同。也就是说,指令周期的长度因指令的不同而不同。15、8086/8088 CPU读/写总线周期一般包含多少个时钟周期?什么情况下需要插入Tw周期?在哪个T状态之后插入?若存贮器或外设速度较慢,不能及时送上数据的话,则通过READY线通知CPU,CPU在的前沿(即结束末的下降沿)检测READY,若发现READY0,则在结束后自动插入1个或几个,并在每个的前沿处检测READY,等到READY变高后,则自动脱离进入。16:8086CPU的时钟频率为5MHz,某条指令的指令周期包含3个总线周期,若每个总线周期包含4个时钟周期,求该条指令的处理需要多少ns? 解: 1个时钟周期=1/(5x106)(秒)=200 ns 该指令的指令周期=3 x 4 x 1/(5x106) (秒) =2400 ns 8086寻址方式17、已知:DS=1000H,BX=0200H,SI=0002H,(10200H)(10205H)内容分别为:10H,2AH,3CH,46H,59H,6BH。求分别执行下列指令后,AX中的内容,并说明寻址方式。 (1)MOV AX,0200H;立即寻址 AX=0200H (2)MOV AX,0200 H ;直接寻址 AX=2A10H (3)MOV AX,BX;寄存器寻址 AX= 0200H (4)MOV AX,3BX;寄存器相对寻址 AX= 5946H (5)MOV AX,BXSI;基址+变址寻址 AX= 463CH (6)MOV AX,2BX+SI;相对的基址+变址寻址 AX= 6B59H 18、设:DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,求下列指令中源操作数的物理地址值。 MOV AX,0100H;直接寻址 MOV AX,BX;寄存器寻址 MOV AX,SI;寄存器寻址 MOV AX,BP;寄存器寻址 MOV AX,ES:BX;寄存器寻址 MOV AX,BPDI;基址+变址寻址 答案:10100H,10100H,100A0H,35200H,20100H,35224H19、某程序数据段中存有两个字数据1234H和5A6BH,它们的偏移地址分别为245AH和3245H,若已知DS=5AA0H试画出它们在储存器中的存放情况。20、假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?其物理地址是多少?(1)MOV AX,0ABH(2)MOVAX,100H(3)MOVAX,VAL (4)MOVBX,SI21、设有关寄存器及存储单元的内容如下:DS=2000H,BX=0100H,AX=1200H,SI=0002H,20100H=12H,20101H=34H,20102H=56H,20103=78H,21200=2AH,21201H=4CH,21202H=0B7H,21203H=65H。试说明下列各条指令单独执行后相关寄存器或存储单元的内容。(1)MOVAX,1800H (2)MOVAX,BX(3)MOVBX,1200H (4)MOVDX,1100BX8086指令 22、分析下列MOV指令的正确性,错误的说明原因。MOV AX,BL _ MOV DS,1000H_MOV BX ,SI_MOV CS,AX _23、W1 W2是内存中的两个变量,以下这段程序的功能是什么?PUSH W1PUSH W2POP W1POP W224、设AX=1122H、BX=3344H、CX=5566H、SS=095BH、SP=40H,下述程序段执行后,AX BX CX DX四个通用寄存器的内容是多少?PUSH AXPUSH BXPUSH CXPOP BXPOP AXPOP DX25、设SP=0040H,如果用进栈指令存入5个数据,则SP=_。若又用出栈指令取出2个数据,则SP=_。26:已知AX=0011H,BX=3344H,SP=0200H,执行下列程序段后,SP=?,AX=?,BX=? PUSH AX; PUSH BX; POP AX; POP BX; SP=01FEH,AX=0011H,BX=3344H SP=01FCH, AX=0011H,BX=3344H SP=01FEH, AX=3344H,BX=3344H SP=0200H, AX=3344H,BX=0011H27、 设(BX)1000H,(DS)6000H,(61050H)33H,(61051H)44H。比较以下两条指令执行结果,写出指令执行后BX的内容。LEA BX,BX50H ;将内存单元BUFFER的偏移地 址送BXMOVBX,BX+50H ;28、利用逻辑运算指令实现下述每一项功能。1) 对AX清零操作 AND AX,02) 对AL的高四位清零 AND AL,0FH;3) 利用XOR指令对寄存器CX清零 XOR CX,CX 29、DATA是数据段定义的一个16位无符号数,数值为1234H,分析以下程序段,说明其功能,并说明执行程序后AX的值是多少。LEA SI,DATAMOV AX,SISALAX,1 ;将AX中的数左移1位,得2X(或SHL)MOVBX,AX ;2X保存在BX中MOVCL,2 ;移位次数置入2SALAX,CL ;2X左移2位,得8XADDAX,BX ;2X加8X,AL中为10XHLT串操作指令30、 将数据段中自段内偏移地址1000H开始的10个字节的数据,搬到自段内偏移地址2000H开始的区域中去。参考程序1:利用串操作指令 MOV SI,1000H; 源数据指针 MOV DI,2000H; 目的数据指针 MOV CX,000AH; 循环次数 CLD;DF=“0”, 增址方式 REP MOVSB ;参考程序2:MOV SI,1000H;源数据指针 MOV DI,2000H;目的数据指针 MOV CX,000AH;循环次数(传送的字节数)L1: MOV AL,SI;源数据送AL MOV DI,AL;AL中数据送目的 INC SI;修改源数据指针 INC DI;修改目的数据指针 DEC CX;循环次数-1 JNZ L1;循环没有结束,继续执行传送31、要对附加段中从MESS2开始的5个连续的内存字节单元进行清0操作,程序如下,在横线处填写适当指令。 LEA DI,MESS2 ;装入目的区域偏移地址 MOV AL,00H ;为清零操作准备 MOV CX,5 ;设置区域长度 REP _(STOSB) 伪指令31、汇编程序中有两类语句-指令性语句和指示性语句,前者被称为符号指令,后者被称为伪指令,请写出一条伪指令,和一条符号指令;说明符号指令和伪指令有什么区别DATA SEGMENT-段定义伪指令符号指令:INC AX伪指令为编译程序服务,不生成机器码符号指令为CPU服务,生成机器码32、在数据段定义的变量DATA1,DATA2,DATA3如下: DATA SEGMENT DATA1 DB 01,02 DATA2 DW 1,2 DATA3 DB 3DUP(3)DATA END请利用图示说明各变量值在内存中的分布。 第8章 汇编程序设计 顺序程序设计33、以下是对于三个无符号数编写S86H34H21H的程序,仔细阅读并填写空白处的语句。DATASEGMENTMUN DB 86H,34H,21H RESULT DW ?DATAENDSCODESEGMENTLEA SI,MUN ;设置MUN指针 LEA DI,RESULT;设置RESULT指针MOV AL,SI;将86H送入ALMOV BL,SI1将34H送入BL MUL BL ;将86H与34H相乘MOVBL,SI2 ;将23送入BLMOVBH,0SUBAX,BXMOVDI,AX;将最终计算值放到RESULT单元 CODEENDS 分支结构程序34:内存中有一串字节型的带符号数,其始地址为BUF, 串长度N=9,要求统计正数和零的个数,并将个数在CRT上显示出来。以下是部分程序,请编写部分代码,将程序补全(蓝色的代码)。设置数据段放那需要辨识的9个数据DATASEGMENT BUF DB01H,32H,38H,5AH,43H,49H,41H,54H,00HDATAENDS CODESEGMENT ASSUMEDS:DATA, CS:CODE START: MOV AX, DATA MOV DS,AX LEA BX,BUF ;设置数据指针BX MOV CX,0009H;查找的数值是9个 MOV DL, 0 ;将来要放正数的个数,先清0L1: MOV AL,BX ;拿出第一个数 TEST AL,80H ;检查第一个数的D7位。 JNZ L2 INC DL L2: INC BX ;指针指向下一个数。 LOOP L1 ;取下一个数,并检查这个数的D7位。 ADD DL,30H MOV AH,02H INT 21H CODE ENDS END START(此题分析详见课件4-4循环结构程序35、在内存的数据段中存放了100个8位带符号数,其首地址为TABLE,试统计其中正元素、负元素和零元素的个数,并分别将个数存入PLUS、MINUS和ZERO三个单元中。参考程序:START:XOR AL,AL;清0MOV PLUS,ALMOV MINUS,ALMOV ZERO,AL LEA SI,TABLEMOV CX,100CLDCHECK:LODSB OR AL,AL JS X1 JZ X2 INC PLUS JMP NEXTX1: INC MINUS JMP NEXTX2: INC ZERONEXT: LOOP CHECK HLT36、 设内存BUFF开始的单元中依次存放着30个8位无符号数,求它们的和并放在SUM单元中,试编写程序。分析:这是一个求累加的程序。两种实现程序如下:(一)MOV SI,BUFF ;设地址指针MOVCX,30 ;设计数初值XORAX,AX ;设累加器初值AGAIN:ADDAL,SIADCAH,0INCSIDECCXJNZAGAIN ;循环累加MOVSUM,AX程序(二)MOV SI,BUFF ;设地址指针MOVCX,30 ;设计数初值XORAX,AX ;设累加器初值(清零)AGAIN:ADDAL,SI ADCAH,0; INC SI LOOPNZAGAIN ;循环累加 MOVSUM,AX 37、统计AX寄存器中1的个数,结果放到CL寄存器中。 MOV CL,0 ;将来放1的个数 L1: AND AX,AX ;AX不变,但影响ZF标志位 JZ STOP ;如果AX=0那么下面的程序就不必要了 SAL AX,1 ;算术左移,将最低位送入CF JNC L2 ;检验CF的值是1还是0? INC CL L2: JMP L1 STOP:MOV AH,4CH INT 21H ;退出DOS系统 输入输出与接口技术38、什么是I/O接口(电路)?I/O接口能解决的哪些问题?请列出你了解的三种以上的接口电路。参考课件6-1相应部分内容。39、CPU把每个I/O端口都当作一个存储器单元看待,都有他们的地址。那么8086系统的端口是独立编址还是统一编址?如果是独立编址,那么CPU在寻址内存和外设时,使用什么信号来区分当前是对内存操作还是对I/O端口操作。36、CPU与外设间的数据传送方式有哪几种?分别说出各自的特点。传送控制方式有查询、中断和DMA3种。查询方式:传送前,先查询外设状态,准备好才传送,否则CPU处于等待状态。中断传送方式:只有在外设发出中断请求的时候才进行数据交换。40如图所示,要求:当K0闭合时,LED灯全部亮;其余状态, LED灯全部不亮。(1)写出74LS273和图中三态门的端口地址(2)写出实现上述要求的程序分析:图中K0对应状态端口的D0位;状态端口的地址是80H;LED灯接在输出端口,其口地址是82H。故控制程序应这样写:MOV AL,00H OUT 82H,AL ;输出全为0,灯全部灭灯L1: IN AL,80H;检查开关状态 TEST AL,0000 0001B ;检查D0位的数值是0还是1 JNZ L1 ;D0是0,那么继续检查开关状态 MOV AL,0FFH ;D0=1则输出FFH,让灯全亮 OUT 82H,AL(详见课件6-1)并行接口825541、如图所示,将8255 C端口的8根I/O线接8只发光二极管的正极(八个负极均接地)。 1)8255的A、B、C端口及 控制端口的地址分别是多少?380H383H。 2)编写使这8只发光二极管依次亮、灭的程序。设置工作方式,C口设为方式0MOV DX,383HMOV AL,80HOUT DX,AL向C口传送数据点亮第一盏灯MOV DX,382H ;C端口的端口地址送DXMOV AL,1 ;C端口的输出值AGAIN: OUT DX,AL第一盏灯点亮延时LOOP $ ;延时LOOP $改变C口数据点亮下一盏灯ROL AL,1 ;改变C端口的输出值JMP AGAINRET42、在某工业系统中,要不断检测8个开关K7 K0的通断状态,并随时在LED7LED0上显示出来(开关合,LED亮;开关断,LED灭)(课件8-2中例2)要求:(1)写出8255初始化控制字 (2写出8255内部四个端口的地址 (3)写出相关的控制程序。计时计数器825343题、课件7-4应用举例1所示电路,.要求OUT0端输出40Hz的方波,(1)计算计数初值C (2)确定控制字(3)写出端口地址(4).编写初始化程序44、课件7-4应用举例3所示电路某8086系统中包含一片8253芯片,要求完成如下功能:1)利用通道0完成对外部事件计数功能,计满100次向CPU发出中断请求。2)利用通道1产生频率为1kHz的方波。3)利用通道2作标准时钟。请(1)计算计数初值C (2)确定控制字(3)写出端口地址(4).编写初始化程序45、假设一个8253在某系统中的端口地址40H43H,如果要将计数器0设置为工作方式3,计数初值为3060H,采用二进制计数法,请写出其初始化程序。MOV AL,36H;计数器0,方式3,计数值16位, ; 二进制计数OUT 43H,AL ;写入控制寄存器MOV AL,60H;设置计数值OUT 40H,AL;写低8位至计数器0MOV AL,30HOUT 40H,AL;写高8位至计数器046、定时器0输出作为定时器1的输入,定时器1的输出作为定时器2的输入,定时器2的输出接到一个LED灯上。1)编程将8253定时器0设定为方式3计数初值为200H,定时器1设定在方式2,计数初值为18H,定时器2设在方式2,计数初值为0AH。2)若计时器0的CLK0引脚输入153.6KHZ的脉冲信号,那么LED灯闪烁周期是多少? 中断系统47、对可屏蔽中断请求如何进行屏蔽,通过什么指令实现?若IF=1,则CPU就响应,此时CPU是处在开中断状态; 若IF=0,则CPU就不响应,此时CPU是处在关中断状态。 而IF标志位的状态,可以用指令STI使其置位,即开中断;也可以用CLI指令来使其复位,即关中断。48、在每条指令的最后一个时钟周期,CPU检测INTR,若某些条件成立,则CPU响应中断,CPU响应中断请求的条件是什么?中断响应时,要做哪些工作。1、条件是:1)CPU执行完当前指令;2) 中断允许触发器IF状态为“1”2、响应所做的工作1)读取中断类型号(在-INTA的第2个低电平时间,从数据总线上读取中断类型号N(由中断控制器提供) 。2)保存PSW (F标志寄存器)标志入堆栈3)关中断(IF=“0”、TF= “0” ) 4)保存断点 (当前的CS、IP入堆栈保存)主要是保证中断结束后能返回被中断的程序。5)调用中断服务程序的入口地址 (比较复杂,单独介绍)执行中断服务程序 49、中断过程的五个步骤的中断处理就是执行中断子程序,如果在中断处理时,要用到内容不能被破坏的寄存器应如何处理?中断子程序的结构中,除了中断子程序主体,还应实现哪些功能模块?(1) 保护现场(由一系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论