微机原理与接口技术问答辅导_第1页
微机原理与接口技术问答辅导_第2页
微机原理与接口技术问答辅导_第3页
微机原理与接口技术问答辅导_第4页
微机原理与接口技术问答辅导_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术问答辅导第一章、基础知识问:译码器是如何译码的?寻址空间是如何确定的?译码器与寻址空间是怎么联系的?答:译码器实际上是由许多与门、或门、非门和它们的组合构成的。它有若干个输入端和若干个输出端(也可能只有一个输出端)。对某一个输出端来说,它的电平高低必然与输入的某一种状态相对应。例如,具有4个输入端的与非门就是一个简单的译码器,只有四个输入端为1111时,它的输出端才为0。如果将地址总线的A9、A8、A7、A6与它的四个输入连接起来,并把它的输出连到存储器芯片或某个需要寻址的外设接口的片选端(假定低电平有效),那么,只有当A9、A8、A7、A6为1111时,存储器芯片或外设才会

2、被选中。译码器的寻址空间取决于地址总线的哪几根线接到译码器的输入端,例如上例,地址总线的A9、A8、A7、A6与译码器的输入连接,那么其寻址空间应该是11 1100 000011 1111 1111,即3C0H3F0H。注意,没有参与译码的低位地址线必然要参与存储器芯片或外设接口的内部译码。也就是说,内部译码地址范围是0 - 2n - 1,例如上例为00 0000 - 11 0000。可以说,译码器的译码输出决定了寻址空间的起始地址,内部译码决定了寻址空间的大小。 第二章、80X86原理1. 问:为什么在流水CPU中,将一条指令从取指到执行结束的任务分割为一系列子任务,并使各子任务在流水线的各

3、个过程段并发地执行,从而使流水CPU具有更强大的数据吞吐能力?答:这里可以使用时空图法证明结论的正确性。假设指令周期包含四个子过程:取指令(IF)、指令译码(ID)、取操作数(EX)、进行运算(WB),每个子过程称为过程段(Si),这样,一个流水线由一系列串连的过程段组成。在统一时钟信号控制下,数据从一个过程段流向相邻的过程段。 图2、1图2、1(B)表示非流水CPU的时空图。由于上一条指令的四个子过程全部执行完毕后才能开始下一条指令,因此每隔4个单位时间才有一个输出结果,即一条指令执行结束。图B18.4(C)表示非流水CPU的时空图。由于上一条指令与下一条指令的四个过程在时间上可以重叠执行,

4、因此,当流水线满载时,每一个单位时间就可以输出一个结果,即执行一条指令。 比较后发现:流水CPU在八个单位时间中执行了5条指令,而非流水CPU仅执行了2条指令,因此流水CPU具有更强大的数据吞吐能力。 2. 问:片选信号(CS)到底是起使数据有效或无效的作用还是起选择芯片的作用啊?若是前者,干吗叫片选?答:片选信号就是选择芯片的信号。前者不叫片选信号,应该叫允许信号。3. 问:书本上讲的是若是计算结果中1的个数为偶数时,则PF=1;但我又在另外的辅导书上看到的说如果计算结果的低8位中1的个数为偶数,PF=1.请问老师是否是低八位?答:对,PF只与结果的低8位有关。 4. 问:80386 CPU

5、包含哪些寄存器?各有什么主要用途? 80386共有7类34个寄存器。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。(1)通用寄存器(8个)EAX,EBX,ECX,EDX,ESI,EDI,EBP和ESP。每个32位寄存器的低16位可单独使用,同时AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。它们与80888086中相应的16位通用寄存器作用相同。(2)指令指针和标志寄存器。指令指针EIP是一个32位寄存器,存放下一条要执行的指令的偏移地址。标志寄存器EFLAGS也是一个32位寄存器,存放指令的执行状态和一些控制位。(3)

6、段寄存器(6个)CS,DS,SS,ES,FS和GS。在实方式下,它们存放内存段的段地址。在保护方式下,它们被称为段选择符。其中存放的是某一个段的选择符。当选择符装入段寄存器时,80386中的硬件章自动用段寄存器中的值作为索引从段描述符表中取出一个8个字节的描述符,装入到与该段寄存器相应的64位描述符寄存器中。(4)控制寄存器(4个)CR0、CRl、CR2和CR3。它们的作用是保存全局性的机器状态。(5)系统地址寄存器(4个)GDTR、IDTR、LDTR和TR。它们用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。(6)调试寄存器(8个)DR0D

7、R7。它们为调试提供硬件支持。(7)测试寄存器(8个)TR0TR7,其中TR0TR5由Intel公司保留,用户只能访问TR6、TR7。它们用于控制对TLB中的RAM和CAM相连存储器的测试。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。 5. 问:什么是实地址模式?什么是保护模式?它们的特点是什么?答:实地址模式是与80868088兼容的存储管理模式。当80386加电或复位后,就进入实地址工作模式。物理地址形成与80888086一样,是将段寄存器内容左移4位与有效偏移地址相加而得到,寻址空间为1MB。保护地址模式又称为虚拟地址存储管理方式。在保护模式下,80386提供了存

8、储管理和硬件辅助的保护机构,还增加了支持多任务操作系统的特别优化的指令。保护模式采用多级地址映射的方法,把逻辑地址映射到物理存储空间中。这个逻辑地址空间也称为虚拟地址空间,80386的逻辑地址空间提供246的寻址能力。物理存储空间由内存和外存构成,它们在80386保护地址模式和操作系统的支持下为用户提供了均匀一致的物理存储能力。在保护模式下,用段寄存器的内容作为选择符(段描述符表的索引),选择符的高13位为偏移量,CPU的GDTR中的内容作为基地址,从段描述符表中取出相应的段描述符(包括32位段基地址、段界限和访问权等)。该描述符被存人描述符寄存器中。描述符中的段基地址(32位)与指令给出的3

9、2位偏移地址相加得到线性地址,再通过分页机构进行变换,最后得到物理地址。 第三章、汇编语言1. 问:在逻辑运算一节,书上说“NOT”为求反操作,这里的求反操作是何意?在循环移位指令里,书上举例:SAL 左移一位,相当于乘以二;SAR 右移一位,相当于除以二;请问除SAL和SAR外的其它移位指令也有此功能吗?答:求反操作就是将目的操作数的内容按位变反。例如,AL=01000110B,则执行NOT AL指令后,AL=10111001B。除SAL、SAR指令外,SHL、SHR指令也有此功能。循环移位指令没有此功能。2. 问:TEST指令到底是怎么回事?NZ和Z到底是怎么得到的?若是要检查好几位的话,

10、要怎么检查呢?答:AND指令属于逻辑操作指令,它是对两个操作数(源操作数和目的操作数)进行“与”操作,操作是按位进行的,即源操作数bit7和目的操作数bit7相与,源操作数bit6和目的操作数bit6相与,and so on。与操作的结果最后被送到目的操作数中,也就是说,原来的目的操作数被破坏了。TEST指令与AND指令类似,也是对两个操作数进行“与”操作。但TEST不把结果送到目的操作数,只是设置一下标志位(请复习一下:逻辑操作指令会影响哪些标志位?)。这就给我们带来了一个好处:你如果想测试操作数某几位的状态,但又不想破坏操作数的内容,就可以用TEST指令。(AND/TEST这一对指令的关系

11、与SUB/CMP这一对指令的关系一样:操作相同,不同之处是结果送不送到目的操作数中。)一般来说,逻辑指令和算术运算指令都会根据运算结果设置标志位,所以你提出的“NZ和Z到底是怎么得到的?”这个问题应该这样回答:NZ和Z是根据指令操作的结果所得到的,或者说是由CPU根据指令的运算结果来设置各个标志位得到的。Z和NZ都是指ZF标志的状态,ZF=1时称为Z(即Zero的缩写),ZF=0时称为NZ(即Not Zero的缩写)。其实Z和NZ这两种状态都只用于条件转移指令中,如“JZ XXX”(意思是如果ZF标志等于1就转移到标号为XXX的指令处执行)或“JNZ XXX”(意思是如果ZF标志等于0就转移到

12、标号为XXX的指令处执行)。注意,如果运算的结果为0,ZF会被设置成1,如果运算的结果不为0,ZF会被设置成0。所以ZF代表了运算结果是否为0:若ZF=1,运算结果肯定为0;反之,运算结果肯定不为0。若要检查一个操作数中某几位的状态,可设置另一个操作数中相应的位为1,其他位为0,然后进行TEST操作。如要检查AL的bit7、bit6、bit5是否全是0,另一操作数应该是11100000B,测试指令为TEST AL,11100000B。3. 问:有一段代码:AND AX,AXJZ STOP这个JZ是对哪一个标志位说的呢?答:JZ当然是对ZF标志说的,因为AND AX,AX会影响ZF标志位的。4.

13、 问:MOV DI,1000HMOV CX,64HMOV AL,2AHAGAIN:MOV DI,ALINC DIDEC CXJNZ AGAINHLT程序中 INC DEC 如何影响标志位,MOV DI,AL中的DI可否用别的寄存器替代?答:INC/DEC将影响ZF,OF,PF,AF,SF,但不影响CF。因为这里是MOV指令,DI寄存器当然就可以用其他3个能够作为指针的寄存器代替,例如SI,BX,BP(BP要指定段超越前缀)。5. 问:以下这两条指令哪里错了?MOV DS,BPMOV DATASI,ES:AX答:第一条没错。第二条的寄存器前不应该有段超越前缀,因为寄存器不是内存单元,它没有地址。

14、6. 问:过程调用返回语句RET后加数字表示什么?比如RET 4。答:表示把栈顶内容弹出到指令指针后再扔掉栈顶的n个字节(n为偶数)。栈顶的这n个字节是调用子程序前压入堆栈的子程序入口参数。仅当用堆栈传递参数时才会使用这种指令。这种参数处理方法也可用其它方法替代,如在主程序的调用指令后用几个POP指令把调用之前压入的参数扔掉。7. 问:请问汇编中有无浮点数?有书上说,用DQ,DT等定义的实数如:-5.12E-1表示-0.512,应该没错吧,但这样的数据在程序运算中是怎样具体进行的?我曾经试过,有提示警告说字长有问题。而且得不到有意义的结果。如:DATA DQ -5.12E-1MOV AX,12

15、0MUL DATA请问AX中的结果?恳请老师能详细解答!答:汇编语言程序中可以使用浮点数,有两个方法:1)自己编写浮点运算子程序;2)使用CPU的浮点指令(486以上级别的CPU支持浮点操作)。DQ定义的数据类型是每个元素8个字节,你用16位的乘法操作当然就不对了,因为AX是16位的寄存器,与DQ定义的数据类型不一致。如果一定要这样做,应把最后一句改为 MUL WORD PTR DATA,这样语法就正确了,但这样得到的结果并不是所期望的。8. 问:Object filename 2.OBJ:Source listing NUL.LST: 2Cross-reference NUL.CRF:2.a

16、sm(25): error A2071: Forward needs override or FAR49922 + 416126 Bytes symbol space free0 Warning Errors1 Severe Errors请指教!答:看见第4行的提示了吗?意思是:在2.ASM程序文件中的第25行有一个错误。因为没看见你的源程序,不好说具体是什么原因。估计是转移指令中的转移目的地址有问题,可能超出转移范围。最后一行“1 Severe Errors”是说有一个严重错误!通常这样的错误是不可饶恕的,你应该重新修改程序。9. 问:请问: LEA BX,ARRAYLEA DI,

17、RESULTMOV CL,4 AGAIN: MOV AL,BXTEST AL,80HJZ NEXTNEG ALMOV DI,ALINC BXINC DIDEC CL JNZ AGAIN 该指令是什么意思?完成的功能是什么?答:首先,你程序段中的NEXT标号是在哪定义?我猜可能是在INC BX指令处吧。假定是这样的话,这个程序段是找出ARRAY数组中的负数,然后求出它们的绝对值再送到RESULT数组中。程序段中的NEG AL指令为求补指令,可以看出,程序中只对负数求补。10. 问:从FIRST开始存放着100个字符的字符串,结束符为"$",统计该

18、字符串中字母"B"的个数。这道题该如何编程。答:请看下面:mov si,offset first ;指向FIRST数组 mov cx,100 ;循环次数mov dl,0 ;用于存放"B"的个数kkk: lodsb ;取一个字符cmp al,"$" ;串结束?jz quit ;若结束,则退出cmp al,"B" ;否则判断字符是否是"B" jnz qqq inc dl ;若是"B",则"B"的个数加1qqq: loop kkk

19、;循环,直到整个串搜索完quit: hlt ;程序执行完后,dl中有"B"的个数11. 问:请问什么时候用逻辑尺?具体怎么用啊?能举个例子吗?谢谢!答:逻辑尺用于对一批数据进行处理,而处理的方法又无规律可言(即无法用循环的方法处理)。例如,有16个数据(Ai)存于buffer开始的缓冲区中,要求对第2、4、5、6、9、11、12、14个数据进行F1(Ai)=2Ai的运算,对其余的数据进行F2(Ai)=Ai-3的运算。可以看出,对这些数据元素进行F1运算还是F2运算无法用它们的下标来确定。这时,用逻辑尺就非常合适。特别是当数据元素很多时,用逻辑尺方法比用其他方法具有更好的程序

20、结构。12. 问:$的含义?答:$是指当前地址(即分配地址的地址计数器的内容,它是在汇编时的一个动态值)。例如上例中,最初地址计数器内容为0,汇编时分析出SHR1占据两个字节,于是分配给数据段的0号单元和1号单元(即SHR1=0),接着地址计数器增加到2;再汇编到SHR2时,分析出它占据16个字节,则顺序分配给2号单元(即根据地址计数器的当前值进行分配)到17号单元(即SHR2=2),分配完后,地址计数器的内容增加为18,所以遇到$时,汇编程序就用18代替$符号,即18-0=18,也即CNT=18。 MOV CX,CNT自然就是MOV CX,18了。 13. 问:怎么用debug运行连接过的程

21、序?答:在dos窗口中键入以下命令:debug <你的可执行程序的名字> <回车>debug运行后,你的程序就被加载到内存中,可以调试执行了。debug的各种调试命令见实验指导书中的附录。14. 问:我们的微机是赛扬的CPU,为什么再运行汇编时,一闪即过了,看不到结果?答:不要在Windows下直接点击运行。应该先进入DOS方式(运行COMMAND或点击开始菜单中的DOS方式命令),然后在DOS方式下运行就不会出现这个问题了。第四章、输入输出 1. 问:I/O设备是如何进行管理的?答:一个计算机系统包含多个I/O设备,这些设备全由操作系统统一进行管理。DOS操作系统对P

22、C I/O设备的管理分为以下3个层次:(1)ROM BIOS驱动程序ROM BIOS为基本IO系统,存放在PC系统存储空间的高端位置(0FE000H一0FFFFFH),共有8KB容量。ROMBIOS是三个层次中的最底层,它直接和硬件接口,并向用户开放。它包括3种功能:系统初始化、对主要IO设备的底层管理和系统服务。ROM BIOS为PC系列机上的各种操作系统所公用,用户也可以直接使用它。这些IO设备的驱动程序以软中断的方式提供,汇编程序用INT 10HINT 1AH调用,调用时由寄存器AH表示其指定功能。INT 10H-显示器驱动程序INT 11H-检测系统配置程序INT 12H-检测存储器容

23、量程序INT 13H-磁盘驱动程序INT 14H-串行口驱动程序INT 15H-设备管理驱动程序INT 16H-键盘驱动程序INT 17H-打印机驱动程序INT 18H-启动ROMBASIC程序INT 19H-引导程序INT 1AH一实时时钟驱动程序在接口设计中,常会调用这些IO驱动程序,以方便接口编程。有了BIOS,人们不再需要详细了解硬件设备,就可方便地使用它们。(2)DOS可安装的和驻留的驱动程序可安装的驱动程序是在增加新的外设时,通过磁盘进行安装,再修改CONFIG.SYS文件,并重新启动系统后,新的外设便处于DOS管理之下了,用户可通过系统调用去使用它。驻留的驱动程序在IBMBIOS

24、.COM文件中,系统引导时读人RAM。可安装的驱动程序和驻留的驱动程序形式基本一样,由3部分组成:设备驱动程序头、策略过程和中断过程。驱动程序为每一个设备定义一个逻辑名,例如打印机叫PRN,串行接口叫AUX,时钟设备叫CLOCK等等。为每一个设备的逻辑驱动器定义一个逻辑标志,并为每一个外设定义了统一的17个命令或功能。有了驱动程序,对上层而言,所有外设便具有了统一的界面。(3)DOS系统调用DOS系统调用是DOS操作系统和用户之间的界面,功能包括内存管理、文件和记录的管理、字符设备的输入输出管理、“假脱机”和实时时钟管理等。它也是以中断方式提供的,汇编程序用INT 20HINT 2FH调用,调

25、用时由寄存器表示其指定功能。 2. 问:如何设计接口电路?答:(1)分析了解外设或被控设备与CPU之间信息交换的要求用什么做联络信号;I/O的数据格式;I0线数量;最短响应时间和服务时间估算;确定I0控制方式(2)硬、软件间功能分配综合考虑速度、成本、特性、设计难易程度等因素。(3)进行I0端口的数量统计、数据流向安排和端口地址号分配(4)I0接口硬件电路的扩展设计扩展方案选择;地址译码器扩展;负载能力扩展。(5)I0接口软件设计(6)联调进行接口硬件、软件联调,直至满足快速、可靠、方便地实现CPU和各外设之间的信息交换要求为止。 3. 问:<o:p> </o:p> I

26、/O接口扩展的方法有哪些? IO接口扩展方案有两种: (1)购置厂家生产的现成的多功能I0接口板 为适应系统I0扩展的需要,每一种微机系统都设计有配套的I0接口板,将I0接口板插到系统外引总线槽上,只要适当选择板上的有关选择开关(选址开关、工作方式选择开关等),就可与系统配套使用。如按STD总线标准设计的模块式工作控制计算机,采用小板结构、每种模板功能单一,有CPU模板、内储模板、键盘显示模板、串行接口模板、AD转换模板、DA转换模板等等,按扩展要求可选用其中几块模板,构成实用的工业控制机,非常灵活方便、可靠。如果控制系统对I0无特殊要求,经费也许可的话,选用此种方案是最简单、快速的。 (2)

27、自己设计、安装I0接口电路 采用通用的大规模集成电路接口芯片扩展IO接口电路,如8255A、8251A等。由于通用的I/O接口芯片电路是标准化的,提供了方便地与CPU和外设相连接的信号线,可方便地对I/O接口进行扩展。采用普通的缓冲器/锁存器和译码器等集成电路扩展I/O接口。 4. 问:为什么微机系统中有时要采用DMA传送方式?答:外设与计算机内存之间的信息交换,可通过程序查询方式和中断方式进行。这两种方式都是在CPU的控制下,通过CPU执行指令来完成的。数据传送方向为外设一CPU内存。这两种方式每传送一个字节都需要耗用较长时间。在程序查询方式时,CPU要反复测试外设状态,在外设未准备好时,C

28、PU就处于等待状态,直到外设准备好,才进行数据传送。在中断方式下,每实现一次数据传送,CPU都要进行转入中断服务子程序、保护断点、保护现场、恢复现场、返回主程序等操作。显然对于高速的IO设备以及大量数据交换的场合(如软、硬磁盘等),这两种传送方式就不能满足速度的要求了。对于这些高速外设,如果传送速度太慢,不仅降低传送效率,还会造成数据丢失,导致传送出错。为此,提出了DMA(直接存储器存取)传输方式。这种传送方式是不经过CPU干预,直接在外设与内存储器之间进行数据传送的方式。实现DMA传送,需要一个专用硬件DMA控制器(DMAC),在DMA传送期间,CPU要让出对系统总线的控制权,交给DMA控制

29、。总线在DMA的控制下,数据直接在存储器和外设之间传送,而不经过CPU干预,其传送速度大大提高,可接近于存储器的最快存取速度。这种传送方式适用于图像显示、磁盘存取、磁盘间数据传送和高速的数据采集等系统。 5. 问:DMA控制器占用总线控制权的方法有哪几种?答:DMA控制器占有总线控制权又称DMA操作的基本方法共有四种:(1)使CPU与系统总线处于高阻状态的方式此种方式又称停机方式,在这种方式下,当DMAC要进行DMA传送时,DMAC向CPU发出DMA请求信号,迫使CPU在现行的总线周期(机器周期)结束后,使其地址总线、数据总线和部分控制总线处于高阻态,从而让出对总线的控制权,并给出DMA响应信

30、号。DMAC接到该响应信号后,就可以控制总线,进行数据传送的控制工作,直到DMA操作完成,CPU再恢复对总线的控制权,继续执行被中断的程序。这种方式比较简单,只需要一对联络信号作为请求占用总线和对请求的响应,而不需要附加的逻辑电路。(2)暂停CPU的时钟脉冲方式CPU的正常操作得以进行是靠系统的时钟脉冲来定时推动的。因此,在进入DMA操作时,把CPU的时钟暂停,就能达到停止CPU操作的目的。此时CPU的地址总线输出为高电平,控制信号输出为高阻状态,数据总线也成为高阻状态。(3)周期挪用方式周期挪用方式又称为利用CPU不访问总线的间隔方式。上述两种方式进行DMA时,均使CPU暂停常规的操作。优点

31、是操作简便,但浪费CPU资源。为充分利用CPU资源,可采用只当CPU不使用总线时,才进行DMA传送。这种DMA操作仅是在CPU执行内部操作时,如指令译码或CPU内部进行算术运算或逻辑运算时,CPU不使用总线,这时DMA接管总线。这种方法的关键是如何识别合适的可挪用周期。有的CPU能产生一个表示存储器是否正在被使用的信息(如M6800的VMA),有的CPU则规定在特定条件下(如Intel8080的T4、T5状态)不访问存储器。此方法不减慢CPU的操作,但需复杂的时序电路,而且数据传送也是不连续和不规则的。(4)周期扩展方式使用专门的时钟发生器/驱动器电路,当需要进行DMA操作时,由DMAC发出请

32、求信号给时钟电路,时钟电路把供给CPU的时钟周期加宽,而提供给存储器和DMAC的时钟不变。这样,CPU在加宽时钟周期内操作不往下进行,而这加宽的时钟周期相当于若干个正常的时钟周期,可用来进行DMA操作。加宽的时钟结束后,CPU仍按正常的时钟继续操作。这种方法会使CPU的处理速度减慢,而且CPU时钟周期的加宽是有限制的。因此用这种方法进行DMA传送,一次只能传送一个字节。 6. 问:中断方式比查询方式有何优点?和DMA相比又有什么不足之处?答:(1)中断方式与查询方式相比其优点是:提高了CPU的工作效率把CPU从查询方式时漫长的等待时间中解放出来,使CPU和外设以及外设和外设之间能并行工作:实时

33、响应能力强在具有多个中断源的系统中,查询方式要轮流对多个中断源进行查询,所需时间较长,很难满足外设的实时要求,而采用中断方式便可满足外设的实时性要求。(2)中断方式与DMA方式相比不足之处是:中断方式传送数据的速度比DMA慢,不适于高速外设的要求。 7. 问:中断方式和DMA方式传送数据,哪个的CPU效率高?答:当然DMA方式效率高。DMA方式中,CPU只需要进行初始化工作和扫尾工作,数据传输完全不需要CPU介入,而是由DMAC控制。这样CPU空出来可以作其他事情。8. 问:要自己编一个中断程序,如何指定它的中断号呢?答:一般来说,硬件中断对应的中断号不能随便指定,操作系统基本已固定。而软件中

34、断的号也有一部分不能随便使用,一般中断号在60H以前的都不要用。具体哪个可以用,每个机器不定相同,可用DEBUG查看中断向量表(0:0到0:3FFH)的内容,凡是中断向量为0的均是系统没有使用的,用户可以使用。要在自己的程序中使用中断,应设置中断向量,有两个办法:1)将中断向量强行写入中断向量表。例如,要把自己的中断服务程序指定为61H号中断,则把中断服务程序的首地址(即中断向量)写入61H*4开始的两个字单元即可,偏移写入低字,段写入高字。设置好后,即可用INT 61H调用自己的中断服务程序。2)用DOS功能25H也能设置:把中断向量的段放在DS中,偏移放在DX中,中断号放在AL寄存器中,然

35、后下面的指令:MOV AH,25HINT 21H即可设置好中断向量。 9. 问:CPU响应中断的条件是什么?答:(1)设置中断请求触发器每个中断源向CPU发出中断请求信号是随机的,而大多数CPU都是在现行周期结束时,才检测有无中断请求信号发出。故必须把随机输入的中断信号锁存起来,并保持到CPU响应这个中断请求后,才可以清除中断请求。因此要求每一个中断源有一个中断请求触发器。(2)设置中断屏蔽触发器在多个中断源的情况下,要求设置一个中断屏蔽触发器,只有当此触发为“1”时,外设的中断请求才能被送到CPU。(3)设置中断允许触发器的状态在CPU内部有一个中断允许触发器,只有当其为“1”时,CPU才能

36、响应中断。可用允许中断和禁止中断指令来设置中断允许触发器的状态。当CPU复位时,中断允许触发也复位为“0”,即关中断。当中断响应后,CPU就自动关闭中断,以禁止接受另一个新的中断(否则要处理多重中断),因而通常在中断服务程序结束时,必须有两条指令,即允许中断指令和返回指令。(4)CPU在现行指令结束后响应中断。 10. 问:ISA总线的硬中断扩充到11级(IRQ3-IRQ7,IRQ9,IRQ10-IRQ12,IRQ14-IRQ15),DMA通道扩充到7个(DERQ1-DERQ3,DERQ0,DERQ5-DERQ7)其中的下标是来自8259吗?答:硬中断是由第2个8259扩充的,DMA不是来自8

37、259。 11. 问:接口硬件是如何组成的?答:接口硬件通常做在一块超大规模集成电路芯片上,常称为接口芯片。接口硬件一般包括如下七部分:(1)数据缓冲寄存器缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。(2)控制寄存器控制寄存器用于存放处理器发来的控制命令和其它信息,以确定接口电路的工作方式和功能。控制寄存器是写寄存器,其内容只能由处理器写入

38、,而不能读出。(3)状态寄存器状态寄存器用于保存外设现行各种状态信息。它的内容可以被处理器读出,根据外设状态,可使处理器安全可靠地与接口完成交换数据的各种操作。处理器通过查询外设的忙与闲、良好与故障,就绪与不就绪等状态,才能正确的交换信息。(4)数据总线和地址总线缓冲器数据总线和地址总线缓冲器用于实现接口芯片内部总线和处理器外部总线的连接。如接口的数据,温线可直接和系统数据总线相连接,接口的端口选择端根据IO寻址方式的要求与地址总线恰当地连接。(5)端口译码器端口译码器用于正确选择接口电路内部各端口寄存器的地址,保证一个端口寄存器惟一地对应一个端口地址码,以便处理器正确无误地与指定外设交换信息

39、,完成规定的输人输出操作。(6)内部控制逻辑内部控制逻辑用于产生一些接口电路内部的控制信号,实现系统控制总线与内部控制信号之间的变换。(7)对外联络控制逻辑对外联络控制逻辑用于产生与接收CPU和外设之间数据传送的同步信号。这些握手联络信号包括微处理器一边的中断请求和响应、总线请求和响应以及外设一边的准备就绪和选通等控制与应答信号。当然,并非所有接口都必须具备全部组成部分。但一般情况,数据缓冲寄存器、端口地址译码器和输入输出操作控制逻辑是接口的核心部件,任何接口都不可少。其它部分视需要而定。 12. 问:接口软件包括哪些内容?答:接口软件又称设备驱动程序,一般来说它包括如下程序段。(1)初始化程

40、序段对可编程接口芯片,都需要通过方式命令或初始化命令来设置工作方式及初始条件,这是驱动程序中的基本部分。(2)传送方式处理程序段只要有数据传送,就有传送方式的处理。针对CPU与IO设备不同的数据传送方式,就有不同的处理程序段。如查询方式有检测外设或接口状态的程序段;中断方式有中断向量修改、对中断源的屏蔽研放以及中断结束等的处理程序段;DMA方式有相关的DMA传送操作,如通道的开放屏蔽等处理程序段。(3)主控程序段这是完成接口任务的程序段。如数据采集的程序段,包括发转换启动信号、查询转换结束信号、读数据以及存数据等内容。(4)程序终止与退出程序段包括程序结束退出前对接口电路中硬件的保护程序段,如

41、对一些芯片的引脚设置为高电平或低电平,或将其设置为输入输出状态等。(5)辅助程序段该程序段包括人-机对话菜单设计等内容。以上这些程序段是相互依存统为一体的,只是为了分析一个完整的设备接口程序而划分成几部分。13. 问:微机的接口卡和主板之间的插槽中各根地址线、数据线和控制线都是如何安排的?另外,可不可以在用户的接口电路中使用8237dma控制器?如果可以,如何避免同系统的dma控制器的优先级的冲突?答:总线的信号线安排可参考相关资料,例如ISA总线规范、PCI总线规范等国际标准。因为标准文本太厚,这里无法列出。用户接口电路中一般无法使用自己的8237DMA控制器,至少我是这么认为的。但系统提供

42、的DMA通道还给用户保留了好几个,如果要用DMA传输的话,可使用未被系统占用的那几个DMA通道。 14. 问:接口电路的实现方法有哪些?答:接口电路实现方法有三种:(1)用中、小规模集成电路芯片设计接口电路这种设计方法仅适用于简单接口电路。(2)用可编程集成电路芯片设计接口电路可编程集成电路芯片是品种繁多、功能各异的大规模集成电路接口芯片,通过CPU的编程选择各种接口功能,使用灵活方便。因此只需掌握如何选择和使用这些芯片来设计接口,完成与外设的连接,以达到预期目的。可编程接口芯片的特点是:集成度高、功能全、灵活性好;芯片需CPU编程设置(如初始化等);有多个I0端口地址,设计时要合理分配,防止

43、地址冲突。通用可编程芯片可分为三类:通用I0接口芯片,如Intel公司产品有:8255并行接口芯片8251,8250串行接口芯片8253,8254定时器卅数器8237DMA控制器8279键盘显示控制器专用IO功能控制芯片,如8272磁盘控制器8275CRT控制器系统功能控制芯片,如8259中断控制器存储器管理部件:W4006AF DRAM控制器8288总线控制器8089智能IO接口芯片8087、80287、80387数值处理器8292、8293、82911EEE-486智能仪表控制接口(3)用I/O接口控制卡(I/O适配器)连接外设将常用通用接口电路制成专用的接口控制卡(也称适配器),由若干集

44、成电路芯片按一定的逻辑构成,并组装成一个部件。这些部件制成一个标准的插件板,可直接插入CPU的主机板的扩展槽上,以完成与系统的连接。常用的I/O接口控制卡有:显示卡/声卡/网卡等。 15. 问:什么是接口中的联络信号?答:CPU通过接口同外设交换信息时,接口常常需要和外设间有一定的“联络”信号,一保证信息的正常传送。通常采用两个“联络”信号:STB#(选通信号)和RDY(就绪信号)。(1)输入操作RDY=“H”表示接口芯片中输入寄存器已准备就绪,可接外设信息,以实现外设与接口的输入操作,该信号是由接口向外设发出的。STB#=“L”表示接口选通,是外设向接口发出的,外设把数据送至接口芯片端口后,

45、用STB信号有效送人接口芯片输入寄存器。在STB#的后沿,把RDY信号拉为“L”,表明输人寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设接收RDY=“L”后,暂不送新数。CPU发出读数指令,读人该数据,并使RDY置“H”。然后,又开始新一轮的输入操作。在输入操作中,RDY信号有时用IBF(输入缓冲器满)表示。(2)输出操作RDY=“H”,表示接口寄存器已有数据,通知外设来取数,该信号是由接口发给外设的。STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口寄存器,STB#的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF#(输出缓冲器满)表示,ST

46、B#信号有时用ACK#(响应)表示。 16. 问:8255A的三种工作方式,各用于哪种传送方式?答:方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。方式1是一种选通输人偷出方式,A口和B口均可工作在这种方式。方式1可作为查询式传送方式,此时握手联络信号

47、,C口要用6位(分成两个3位)分别作为A口和B口的应答联络信号。方式1也可用作中断方式,此时要写对应的C口的按位置位字,打开中断。方式2是A口独有的双向传送方式,一般使用中断传送方式。 17. 问:8255A是8位的,如何在16位微机中作为接口?答:用2片8255A芯片来构成一个16位微机系统的输入与输出接口。一片为偶地址端口,另一片为奇地址端口。偶地址端口的8255A芯片由CPU的地址线A。参与片选译码,其8位数据线同CPU的低8位数据线助no相连;奇地址端口的8255A由CPU的“总线高允许BHE'参与片选译码,其8位数据线同CPU的高8位数据线D15DR相连。8086CPU可以对

48、某一个8255A的各端口进行8位字节信息传送,也可以对2个8255A的对应2个端口(两个PA口,或两个PB口,或两个PC口)用一个总线周期实现偶地址字的传送。 18. 问:什么是IEEEl284标准?答:IEEE(美国电子电器工程师协会)1284标准是PC机上的双向并行端口的标准信号方法。它定义了使用并行端口进行高速通信的新方法,为PC机和外设间定义了双向通信协议。IEEEl284定义了5种数据传输模式(井口模式),见下表所示。 井口模式  方向传输速率半字节反向 50KBS字节 反向150KBS兼容Centronics方式正向 150KBSE

49、PP双向500KBS2MBSECP双向500KBS2MBS 第五章、存储器1. 问:我对教材所讲的“部分地址译码方式”不是很理解。 比如:书上说A16和A18未参加译码,因此无论这两根线上是什么值都不影响输出。能不能理解成:既然输出的值是一定的,那么就应该就像全地址译码那样,高地址只对应一个片选地址,为什么能映射四个内存空间,是怎么工作的?还有少了两根线和相关的器件就能节约多少成本?何必那么麻烦,都选全地址译码不就得了。答:应该这样理解:因为部分地址译码方式有部分高位地址线未参加译码,所以未参加译码的地址线上无论是什么值都不会影响译码输出。而未参加译码的地址线上的值的集合对应了多个地址空间。例

50、如,A19、A18不参加译码时,它们的值为00、01、10、11时均不会影响译码输出,而00x.x、01x.x、10x.x、11x.x不正好对应了四个地址空间吗?部分地址译码方式为电路设计提供了另外一种选择,你可以灵活地选用,不必拘泥于某一种译码方式。总之,在满足要求的情况下,电路越简单越好。2. 问:关于内存芯片的标号(如6264)有什么规律呢?每位数字都有什么含义呢?答:一般最后几位表示该芯片有多少位(bit)。如6264共有64K位(8K*8位),62256为256K位,等等。但新型芯片已不再用这种表示方法。有兴趣的话可看一看微型计算机杂志2003年第23期的有关文章。 3. 问:用存储

51、器件组成内存时,为什么总是采用矩阵形式?答:采用矩阵形式存储信息主要是为了节省地址译码电路,提高半导体器件的集成度。例如要组成1KB的内存,若不采用矩阵形式,就需要1024条译码线才能实现对1KB的寻址,但若采用32*32的矩阵来排列,则只要有32条行选线和32条列选线就可以了。存储容量越大,矩阵形式的优点就越明显。 4. 问:CPU与存储器连接时有哪些方面要求?答:存储器与CPU连接时有如下三方面要求:(1)信号线连接要求CPU是通过地址总线AB、数据总线DB及控制总线CB与外界交换信息的。因此,存储器芯片与CPU的连接也就是与CPU三种总线的连接。数据线的连接:CPU的数据线与存储器的数据

52、线直接相连。地址线的连接:地址线高位部分用于选择存储器芯片,与存储器片选信号相连;地址线低位部分用于选择存储器芯片内的某一存储单元,与存储器芯片的地址引脚相连。控制线的连接:系统控制总线的读屑控制与存储器芯片的控制线相连。(2)地址分配要求内存分ROM和RAM两部分。ROM用于存放固化程序及常数,RAM分为系统区和用户区。系统区用于存放监控程序或操作系统的数据;用户区用于存放用户程序和数据。一般存储器由多个芯片组成,地址进行分配时,需要知道哪些地址区域分配给ROM,哪些地址区域分配给RAM。对8086CPU而言,高地址区域分配给ROM区域,低地址区域分配给RAM。(3)驱动能力要求在CPU的设

53、计中,一般输出线的直流负载能力可以驱动一个TTL负载,而在连接中,CPU的一根地址线或数据线,可能连接多个存储器芯片,但现在的存储器芯片都为MOS电路,主要是电容负载,直流负载远小于TTL负载。故小型系统中,CPU可与存储器直接相连,在大型系统中就需要加缓冲器。 5. 问:何谓IDE接口?答:IDE接口就是智能驱动器电子接口,是PC机用来连接硬盘、光盘等设备的标准接口。一般家用计算机和台式计算机的硬盘和光盘接口都采用IDE接口。IDE接口由COMPAQ公司推出,将硬件控制器集成到硬盘驱动器中。这样,其优点是可以消除驱动器和控制器间的数据丢失问题,使数据传输可靠性提高了。IDE是针对AT机系统设

54、计的,可支持超大容量高速硬盘。1个IDE接口可带两个硬盘驱动器。IDE接口的基本特征是:(1)最多接两台硬盘机;(2)数据传输速率最高为2MBS;(3)最大可支持528MB;(4)传输带宽8位;(5)只能轮流操作,不能并行处理。IDE扩充后的规范是EIDE,其性能有很大提高:(1)可连接4台硬盘机;(2)支持硬盘的最大容量为8.4GB;(3)数据传输速率为12MBS18MBS;(4)传输带宽为16位,可扩展到32位;(5)读/写操作可并行处理。IDE接口的硬盘机与主机有两种数据传送方式:PIO方式和DMA方式。PlO方式是通过CPU执行IO端口指令来进行数据读/写,常采用IO串操作指令,以达到

55、高的数据传输速率。DMA方式是数据不经过CPU,而直接在硬盘和内存之间传送,可获得很高的数据传输速率。6. 问:何谓SCSI接口?答:SCSI接口是小型计算机接口的缩写,它是美国Shugart公司开发的,主要用于光盘机、磁带机、扫描仪和打印机等设备。大部分SCSI控制器是以接口卡形式连接到PC主机上的。可连接ISA、EISA、VESA和PCI总线。个别高档主板在板上集成了SCSI控制器。SCSI有多个标准,从传输速率来分有如下6种:(1)Fast SCSI8位总成,数据传输率为10MBS。(2)Fast Wide SCSI16位数据总线,数据传输率为20MBS。(3)Ultra SCSI8位总

56、线,数据传输率为20MBS。(4)Wide Ultra SCSI16位总线,数据传输率为40MBS。(5)Ultra-2 SCSI8位总线,数据传输率为40MB/S。(6)Wide Ultra-2SCSI16位总线,数据传输率为80MBS。第六章、中断控制器8259A 1. 问:8259A的缓冲方式和非缓冲方式有什么区别?答:缓冲方式是指在8259的数据线与8086CPU之间加入一个三态缓冲器,缓冲器的控制信号由8259来提供,而不是由CPU提供。非缓冲方式当然就是不加缓冲器了。第七章、定时计数器82531. 问:8253的6种工作方式在计数到0之后计数器处于何种状态?答:8253中的各个计数

57、器减1使计数值变成0之后,计数器的状态不是处于停止不动的状态。在方式0、1、4和方式5时,计数器减1计数到0后,都从最大的计数值,即FFFFH或BCD码9999继续减1计数;方式2和方式3是周期性工作的,每当计数到0时,计数的初值重新送人计数执行部件,从初值开始继续计数。 2. 问:8253在PC系列微机系统中是如何得到应用的?答:8253在PC系列微机系统中,在如下三个方面得到了应用:(1)计数器0作为系统计时器用计数器0产生时钟信号的系统计时器。系统主要利用它完成日时钟计数。计数器0的CLKo输人为11931816MHz方波,工作于方式3,计数初值为0(即65536),输出信号OUTo接到中断控制器8259A的IRQo作为中断请求输入线,OUT0输出的方波脉

温馨提示

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

评论

0/150

提交评论