1、 微机原理与接口技术总复习 2011.6.10微机原理与接口技术总复习第一部分:填空题第一章 微机的基本知识 1.1基本知识结构 微机的构成 (包括硬件:主机+外设;软件:操作系统+编译程序+汇编程序+诊断程序+数据库等) 微机的工作原理和工作过程 工作原理(冯.诺依曼原理) 工作过程(取指令、分析指令、执行指令) 控制器的两个主要功能 了解微机的主要技术指标 数的原码、反码、补码的表示方法及补码的运算 二、八、十、十六进制数的表示及其相互转换 ASCII码、BCD码的表示方法及其运算、修正原则 无符号数与符号数的运算及其对标志位的影响1.2相关习题1.对于二进制数0110 1001B,用十进
2、制数表示时为:105D;用十六进制数表示时为:69H。BCD2.设机器字长为8位,最高位是符号位。则十进制数11所对应的原码为:10001011B。3.已知某数的原码是10110110B,则其反码是 11001001B ;补码是 11001010B 。4.一个8位二进制数用补码方式表示的有符号数的范围是 -128+127 。第二章 微处理器与系统结构2.1基本知识结构 掌握8086CPU的内部结构与主要引脚信号功能 1、内部结构(BIU与EU)组成与功能 2、主要引脚信号 AD0AD15, A16/S3A19/S6,(地址锁存的必要性) BHE, NMI, INTR, INTA, HOLD,
3、HLDA, RESET, READY, ALE, DEN,LOCK,RD,WR,M/IO。 熟悉8086 CPU 内部寄存器阵列 了解8086最大组态与最小组态的区别 熟悉存储器物理地址的生成及存储器组织 20位地址如何生成;存储器是如何组织的, 字节、字、字符串在内存中是如何存放的。 熟悉CPU中的标志寄存器及堆栈 6个状态标志+3个控制标志;堆栈定义、堆栈组成及操作,为什么要设置堆栈? 熟悉系统的输入/输出结构和基本总线周期 (会画读、写周期基本时序图)2.2相关习题1.8086 CPU从功能上分为 EU 和 BIU 两部分。8086CPU中执行部件的功能是负责指令 的执行。2.8086中
4、的BIU中有 4 个 16 位的段寄存器、一个 16 位的指令指针、 6 字节指令队列、 20 位的地址加法器。3.8086 可以访问 16 位和 8 位的寄存器。4.8086CPU从偶地址读出两个字节时,需要 1 个总线周期;从奇地址读出两个字节时,需要 2 个总线周期。5.8086CPU对外的数据线是 16 根,地址线是 20 根,数据线和地址线是以 分时复用 方式轮流使用的。6.8086的ALE引脚的作用是 地址锁存 。7.8086CPU的最小工作模式是指 控制信号由CPU产生 ,它是通过将MN/引脚接电源来实现的。8.8086CPU上电复位后,执行第一条指令的地址是 FFFF0 H。9
5、.8086CPU构成的微机中,每个主存单元对应两种地址: 逻辑地址 和 物理地址 。10.CPU访问存储器时,在地址总线上送出的地址称为 物理 地址。11.对于8086CPU,逻辑地址是由 段地址 和 偏移量 组成,设有逻辑地址1000H:2345H,试写出其对应的物理地址 12345 H 。12.段基址是由 段寄存器 存储。物理地址是指实际的 20 位主存单元地址。13.对于8086/8088CPU,设有物理地址00400H,试写出其两种不同的逻辑地址 0000:0400H 、 0010:0300H 。14.8086系统最多可管理 1M 字节存储单元。15.8086系统中,存储器分为奇、偶两
6、个存储体,其中,奇地址存储体的数据信号线固定与数据总线的 高8位 相连,偶地址存储体与数据总线的 低8位 相连。第三章 指令系统3.1基本知识结构 熟悉指令格式和几种常用的寻址方式 指令有两部分组成;6种常用的寻址方式 熟悉常用的指令,掌握某些指令对标志的影响 * 常用指令:传送,加、减、乘、除,逻辑运算,循环与移位,无条件与条件转移等。 * 影响标志的指令 :参看教材P376中附录 * 如何根据标志判断两数的大小(分两种情况) 3.2相关习题1.计算机的指令通常包含 操作码 和 操作数 两部分。2.设SP为0100H,SS为1000H,则执行PUSH AX 后,SP= 00FE H,SS=
7、1000 H。3.8086系统中,栈底在堆栈的 最高地址端 (最高地址端、最低地址端)。4.如果VAL为数据段中0056H单元的符号名,其中存放的内容为0FF2H,当执行指令: MOV BX,VAL后,BX= 0FF2H ; 而执行: LEA BX,VAL后,则BX= 0056H 。5.设CS=2500H,DS=2400H,SS=2430H,ES=2520H,BP=0200H,SI=0010H,DI=0206H则:指令MOV AX,BP+SI+4源操作数的有效地址为 0214H ,物理地址为 24514H 。指令MOV AX,DI+100H源操作数的有效地址为 0306H ,物理地址为 243
8、06H 。6.设AX=2000H,BX=2002H,则在执行了指令CMP AX,BX后,标志位CF为 1 , AX= 2000H 。7.执行指令“XOR AX,AX”后,标志位ZF的值为 1 。8.若(AL)10011000B,(BL)01100111B,则执行指令“ADD AL,BL”后,(AL) 1111 1111B ;执行指令“AND AL,BL”后,(AL) 0000 0000B 。9.在使用8086间接输入/输出指令时,必须在执行该指令之前将相应的端口地址送入DX 寄存器中。第四章 汇编语言及其程序设计4.1基本知识结构宏汇编 1. 掌握常用的伪指令:DB,DW,DD,EQU,=,O
9、RG, SEGMENT.ENDS,PROCENDP,ASSUME, MECROENDM,LOCAL,END等 2. 如何汇编、连接生成 .EXE文件程序设计 1. 能用汇编语言编写程序(一般约40条左右)。 2. 能熟练运用各种伪指令,包括会用宏指令(宏定义中如何用LOCAL定义标号)。 3. 能对程序改错,查错且会完善程序(程序填空)。 4. 编程的题型可能有程序改错、查错、完善、编程等。4.2相关习题1.内存中有X、Y两个数:X=32,Y=-78 利用汇编语言编写完整的程序,计算这两个数之和,并将结果存入内存S,即:S=X+Y。参考程序: DATA SEGMENT X DB 32 Y DB
10、 -78 S DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV AL,X ADD AL,Y ,X与Y进行相加MOV S,AL MOV AH,4CH ,终止当前程序并返回调用程序 INT 21HCODE ENDSEND START2.编程检测从外设端口71H输入的字节数据,若该数据20,则向73H端口送00H;若该数据20,则向73H端口送0FFH。请写出完整的汇编源程序。参考程序:CODE SEGMENT ASSUME CS:CODE START:IN AL,71H CMP AL,20
11、 ,比较外设端口71H输入的字节数据与20D的大小。 JNG K1 ,NG:NOT GREATER(不大于),当外设端口71H输入的字节数据不大于20D时,跳转至K1。 MOV AL,0FFH JMP K2 K1:MOV AL,00H K2:OUT 73H,AL MOV AH,4CH ,终止当前程序并返回调用程序 INT 21H CODE ENDS END START3.编程检测80H端口输入的字节数据,若为正,将BL清0;若为负,将BL置为FFH。请写出完整的汇编源程序。参考程序:CODE SEGMENT ASSUME CS:CODE START: IN AL,80H TEST AL,80H
12、 ,检测AL的最高位,若为1,则为负数,与80H按位相与后ZF=0 JZ APOS ,如果ZF=1,则跳转,但当AL为负数时,ZF=0,不跳转,若AL为正数时,ZF=1,此时就跳转至APOS。 MOV BL,0FFH JMP EXIT APOS: MOV BL,00H EXIT: MOV AH,4CH ,终止当前程序并返回调用程序 INT 21H CODE ENDS END START4.内存中有X、Y两个数组:X=32、-43、76,Y=-78、127、-128 利用汇编语言编写完整的程序,计算这两个数组之和,即S(i)=X(i)+Y(i)参考程序:DATA SEGMENT X DB 32,
13、-43,76 Y DB -78,127,-128 S DB 3 DUP(0)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,00H MOV CX,3AGAIN:MOV AL,XBX ADD AL,YBX ,将X与Y数组对应元素相加 MOV SBX,AL ,将相加的结果放入S数组 INC BX ,BX加1 LOOP AGAIN ,在CX不等于0之前跳转至AGAIN MOV AH,4CH ,终止当前程序并返回调用程序 INT 21HCODE ENDS END START5.在BLOCK开
14、始有一个字节型数组,共有15个元素,利用汇编语言编写完整的程序,计算这个数组中奇数的个数,并将结果存入内存SUM单元。参考程序:DATA SEGMENT BLOCK DB 15 DUP (?) SUM DB 00 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BLOCK MOV CX,15 CON:MOV AL,SI TEST AL,01H ,检测AL的最低位,若为1,则为奇数,与01H按位相与后ZF=0 JZ NEXT ,如果ZF=1,则跳转,但当AL为奇数时,ZF
15、=0,不跳转,若AL为偶数时,ZF=1,此时就跳转至NEXT。 INC SUM ,若AL为奇数,SUM自加1 NEXT:INC SI ,SI自加1,检测下一个数据 LOOP CON ,在CX不等于0之前跳转至CONMOV AH,4CH ,终止当前程序并返回调用程序INT 21H CODE ENDS END START6.在BUF开始有一个字节型数组,共有50个元素,利用汇编语言编写完整的程序,将该数组全部元素清零。参考程序:DATA SEGMENT BUF DB 50 DUP (?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV
16、 AX,DATA MOV DS,AX MOV SI, OFFSET BUF MOV CX,50 CON:MOV SI,00H ,依次将该数组全部元素清零。 INC SI LOOP CONMOV AH,4CHINT 21H CODE ENDS END START7.在BUF开始有一个字节型数组,共有100个元素,利用汇编语言编写完整的程序,计算这个数组中负数的个数,并将结果存入内存COUNT单元。参考程序:DATA SEGMENT BUF DB 100 DUP (?) COUNT DB 00 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:M
17、OV AX,DATA MOV DS,AX MOV SI, OFFSET BUF MOV CX,100 CON:MOV AL, SI TEST AL,80H ,检测AL的最高位,若为1,则为负数,与80H按位相与后ZF=0 JZ NEXT ,如果ZF=1,则跳转,但当AL为负数时,ZF=0,不跳转,若AL为正数时,ZF=1,此时就跳转至NEXT。 INC COUNT ,如果AL为负数,计数器COUNT自加1 NEXT:INC SI ,SI自加1,检测下一个数据 LOOP CON ,在CX不等于0之前跳转至CON MOV AH,4CHINT 21H CODE ENDS END START第五章 存
18、储器及存储器子系统5.1基本知识结构 熟悉存储器的分类及各类存储器的特点(SRAM,DRAM,ROM,PROM,EPROM,EEPROM,FLASH) 要求了解SRAM、DRAM、EPROM的内部结构、特点。(存储器层次结构、DRAM为何要刷新;为何没有片选等;给出芯片容量,会计算地址引脚数;反之也会计算) 存储器接口设计熟悉存储器地址译码(包括译码电路设计,或者给出译码电路后,写出存储器地址范围)5.2相关习题第六章 总线技术6.1基本知识结构了解总线的分类和总线的基本知识 (如:性能指标、总线带宽计算、信息传送方式、数据传送周期、总线仲裁技术、握手技术等) 第七章 I/O接口与中断技术7.
19、1基本知识结构 I/O接口的基本知识 (包括接口的重要作用、主要功能、编址方式、信息传送方式、地址译码等) 中断的基本原理 (包括中断的全过程:请求、判优、响应、处理、返回。 对中断响应要进行哪些操作要熟悉,根据向量号如何找到中断服务程序入口地址?) PC机的中断系统 (包括中断源、各类中断源的优先级别、中断嵌套、中断类型号、中断向量表、几种中断源的响应过程的异同等) 中断控制器8259A的级联方式7.2相关习题1.8086/8088 CPU 的中断分成 内部中断 和 外部中断 两大类,8086系统中硬件中断可分为NMI中断 和INTR中断 两种。2.8086系统最多能识别 256 种不同类型
20、的中断,每种中断在中断向量表中分配有 4 个字节单元,用以指示中断服务程序的入口地址。3.8086提供的可接受外部中断请求信号的引脚是 INTR 和NMI 。两种请求信号的不同之处在于是否可屏蔽 。4.若中断类型码N=2H,则对应的中断向量在中断向量表中第一个字节单元地址为 0008H 。5.可屏蔽中断从CPU的 INTR 引脚进入,只有当中断允许标志IF为 1 时,该中断才能得到响应。6.8086/8088 CPU响应一个外部可屏蔽硬件中断的条件是:一、外设有 请求 ;二、IF 是开放的;三、必须在 当前指令 结束后。7.采用级联方式,用9片8259A可管理 64 级中断。第八章 接口技术8
21、.1基本知识结构 定时与计数技术 1. 定时器的基本原理 2. 8253/8254的内部结构及工作方式 3. 会应用8253/8254(包括对其接口译码与编程) 并行传输及其接口 1. 并行传输的特点及其联络方式 2. 8255A的内部结构及工作方式 3. 会应用8255A(包括对其接口译码与编程) DMA技术 1. DMA传输的特点、传输方式及操作类型8.2相关习题1.计算机对I/O端口的编址方法有 存储器统一编址 、 I/O单独编址 两种。8086CPU中一般采用 独立 编址方法。2.CPU与I/O接口间的信息一般包括状态 、 数据 、控制 三种类型。3.CPU与外设的数据传送方式有 程序
22、查询传送 、 中断传送 、 DMA传送 三种方式。4.可编程接口芯片8255A含有 3 个 8 位的I/O口。5.可编程接口芯片8255A的 I/O口可以通过编程的方式来设定其工作方式,其中A口工作方式有 3 种(方式0、1、2);B口工作方式有 2 种。(方式0、1)那B口为什么不能工作于方式2?因为C口只有8条信号线,当A口工作于双向方式时,要用5条C口的线做联络信号,剩下3条线不能满足B口工作于双向方式。当A口工作于双向方式时,B口可工作于方式1,因为此时C口还有3条信号线正好用于B口方式1的联络信号。6.8086/8088CPU可访问2个独立的地址空间,一个为I/O地址空间,其大小为
23、64K 字节;另一个为 存储地址空间 ,其大小为 1M 字节。7.设计输入/输出接口时,应遵守的基本原则是:输入 缓冲 ;输出 锁存 。第二部分:简答题其余简答题解答过程如下:1. 8086为什么采用地址/数据引线复用技术答:由于8086CPU只有40条引脚,而它的数据线宽度是16位的,地址线宽度是20位的,因此引脚的数量不能满足要求。于是CPU内部采用了一些多路开关,让低16位地址线与16位数据线公用这些引脚,在时间上加以区分。在周期,CPU在这些引脚上输出存储器或I/O口地址,在,和周期,它们则为数据收发引脚。2. 假设某程序段中的数据定义如下: DA1 DW ?,2DUP(1) DA2
24、DB 32H,25H DA3 DB ? CUNT EQU $-DA1 ($-DA1=9 表示数据段占用的存储空间)问:(1) 画出内存分配图 (注意:DW是先存低字节,后存高字节)(2) 变量DA1、DA2、DA3各占用几个字节?CUNT的值是多少?它表示什么意义?答:DA1占6个字节,DA2占2个字节,DA3占1个字节,CUNT的值是9,它表示数据段占用的存储空间。3. 总线周期的含义是什么? 8086的基本总线周期由几个时钟周期组成?如果一个CPU的时钟频率为4.77MHz,那么,它的一个时钟周期是多少?一个基本总线周期为多少?答:一个总线周期是CPU通过总线与外部逻辑(存储器或I/O端口
25、)进行一次通讯所需的时间。8086的基本总线周期是由4个时钟周期组成的。如果一个CPU的时钟频率为4.77MHz,那么,它的一个时钟周期是1/(4.77*)s,一个基本总线周期为4/(4.77*)s.4. 画出8088最小模式存储器写操作的总线信号时序。要求有地址与数据信号(),地址锁存(),读控制信号()、写控制信号()、I/O或存储器访问信号()和时钟信号()5. 在DATA1开始有一个字节型数组,共有256个元素,利用汇编语言编写完整的程序,将该数组全部元素置位。(要求写出程序流程图)程序流程图如下:参考程序:DATA SEGMENT BUF DB 256 DUP (?) DATA EN
26、DSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,SEG DATA MOV DS,AX MOV SI,OFFSET BUF MOV CX,256D DC: MOV BYTE PTR SI,00H ,依次将该数组全部元素清零。 INC SI LOOP DCMOV AH,4CHINT 21H CODE ENDS END START6. 某系统的存储器采用2K8的芯片构成,并采用74LS138译码器输出作为片选信号。如下图所示:(假设系统地址总线为16位)求:1) 存储器的类型(RAM、ROM)是什么?总容量为多少? 答:存储器的类型是RAM,因
27、为该芯片既可以读又可以写。扩展后总容量是6K8bit。2) 写出1#、2#、3#存储器芯片的地址范围D7D0OE D7D0WE (1#)CS A10A0OE D7D0WE (2#)CS A10A0OE D7D0WE (3#)CS A10A0RDA11A12A13A14A15M/IOA Y6B Y5C Y4G2A G2BG1 Y3Y2Y1Y0A10A0 WR7. INTEL 8255A接口芯片(1)该芯片谁作为输入口,谁作为输出口?答:A口作为输入口,B口作为输出口。 (2)现给出8255A 工作方式控制字格式如下,请编写程序片段对8255进行初始化,先预置开关K3K1为一组状态,然后按下自复按钮K产生一个负脉冲信号,CPU接收到此信号后,用发光二极管LEDi亮,显示K3K1的状态。K1K3的状态为从000到111,LEDi从LED7到LED0亮。(注:LED显示器“亮”,表示开关“断开”)。 12