微机原理课程综述论文内容摘要《微型计算机原理与接口技术》课程是通信工程专业的专业基础课程,该课程的目的是让我们掌握微机的基本工作原理,掌握微机应用系统的分析方法和设计方法,为微机在本专业以后的学习和研究应用中打下良好的基础。关键词80X86汇编语言接口技术正文一、课程综述本课程以微型计算机的原理和应用为主题,系统地介绍了微型计算机的基本知识、基本组成、体系结构、工作模式,介绍了8086CPU的指令系统、汇编语言及程序设计方法和技巧,存储器的组成和I/O接口扩展方法,微机的中断结构、工作过程,从而使学生能较清楚的了解微机的结构与工作流程,建立起系统的概念。二、课程主要内容和基本原理1.80X86微处理器结构8086/8088CPU的内部是由两个独立的工作部件构成,分别是总线接口部BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。两者并行操作,提高了CPU的运行效率。(1)总线接口部件BIUBIU由以下六个部分组成:①20位地址加法器②4个16位段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES③1个16位指令指针寄存器IP④内部寄存器(用于通信、暂存)⑤输入输出总线控制电路⑥1个6字节指令队列缓冲器功能及工作过程:总线接口部件的功能是负责与存储器、I/O接口传送信息。主要工作过程如下:①当指令队列中出现两个以上的指令字节空隙(8086是1个字节空隙)时,BIU会自动按CS和IP值所形成的20位实际物理地址对应的程序存储器单元中取指令字节②一次从程序存储器中取两个指令字节,顺序存放在指令队列寄存器中③由EU从队列指令中取走位于前列的指令,若指令需要在内存单元中读取数据,此时根据EU的请求在BIU中形成一个20位的存放数据的实际物理地址④CPU从物理地址单元中取得操作数,经BIU送到内部的运算部件(ALU)数据总线,再由EU执行响应操作⑤根据指令的性质,若需要,再由EU提出请求,将运算结果写入由BIU所指出的内存单元或者I/O端口中(2)执行部件EU8086和8088的执行部件EU的具体结构都是相同的,包含以下六个部分:①4个16位的通用寄存器组(AX、BX、CX、DX)②4个16位的专用寄存器(BP、SP、SI、DI)③1个16位的算术逻辑单元(ALU)④1个16位的状态标志寄存器⑤1个数据暂存寄存器⑥执行部件的控制电路功能及工作过程:①EU从BIU的指令队列中取出指令代码②由EU控制电路的译码器对指令进行译码后执行指令所规定的全部功能③执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作④反映本次操作结果的状态写入到响应的状态寄存器(3)EU和BIU的关系从上面的操作过程可以看出EU只负责执行指令,BIU则负责取指令,读出操作数和写入结果。对于一般简单的处理器指令周期中,各种操作是顺序进行的。首先取指并译码,如果译码的结果需要从存储器取操作数,则启动一个总线周期去读操作数;其次执行指令;最后存储操作的结果。2.80X86指令系统和汇编语言本章重点是8086CPU指令的寻址方式,每条指令的格式、功能及标志的影响;同时还涉及到存储器单元的物理地址计算、标志位填写和堆栈操作。我们需要熟练掌握汇编语言类别、伪指令语句格式和作用、基本程序结构、调用程序和被调用程序之间数据传递途径以及汇编源程序上机调试过程。学习汇编语言重点的是阅读程序和编写程序。3.内存储器及接口1.存储器的组织(1).存储器空间与存储器结构①存储空间8086/8088有20条地址线,可直接对1M个存储单元进行访问。每个存储单元存放一个字节型数据,且每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000H~FFFFFH,如图所示。78H9FH…存储单元地址00000H00001H…46HDFH6CH……98H65H5EHA6H66H……6FH0011FH00120H00121HE8009HE800AHE800BHE800CHE800DHFFFFFH一个存储单元中存放的信息称为该存储单元的内容。如图所示,00001H单元的内容为9FH,记为:(00001H)=9FH。若存放的是字型数据(16位二进制数),则将字的低位字节存放在低地址单元,高位字节存放在高地址单元。如从地址0011FH开始的两个连续单元中存放一个字型数据,则该数据为DF46H,记为:(0011FH)=DF46H。若存放的是双字型数据(32位二进制数,这种数一般作为地址指针,其低位字是被寻址地址的偏移量,高位字是被寻址地址所在段的段地址),这种类型的数据要占用连续的4个存储单元,同样,低字节存放在低地址单元,高字节存放在高地址单元。如从地址E800AH开始的连续4个存储单元中存放了一个双字型数据,则该数据为66A65E65H,记为:(E800AH)=66A65E65H。②存储结构在组成与8086CPU连接的存储器时,1M字节的存储空间实际上被分成两个512K字节的存储体,分别叫高位库和低位库。低位库固定与8086CPU的低位字节数据线D7~D0相连,因此又可称它为低字节存储体,该存储体中的每个地址均为偶地址。高位库与8086CPU的高位字节数据线D15~D8相连,因此又称它为高字节存储体,该存储体中的每个地址均为奇地址,如下图所示。00001H00000H00003H00002H00005H00004H512K×8(位)512K×8(位)奇地址存储体偶地址存储体(A0=1)(A0=0)FFFFDHFFFFCHFFFFFHFFFFEH00001H00000H00003H00002H00005H00004H512K×8(位)512K×8(位)奇地址存储体偶地址存储体(A0=1)(A0=0)FFFFDHFFFFCHFFFFFHFFFFEH00001H00001H00000H00000H00003H00003H00002H00002H00005H00005H00004H00004H512K×8(位)512K×8(位)512K×8(位)512K×8(位)奇地址存储体奇地址存储体偶地址存储体偶地址存储体(A0=1)(A0=1)(A0=0)(A0=0)FFFFDHFFFFDHFFFFCHFFFFCHFFFFFHFFFFFHFFFFEHFFFFEH8086存储器的分体结构地址总线A19~A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择,分别连接到库选择端上。如下图所示。当A0=0时,选择偶数地址的低位库;当BHE=0时,选择奇数地址的高位库;当两者均为0时,则同时选中高低位库。利用A0和BHE这两个控制信号,既可实现对两个库进行读/写(即16位数据),也可单独对其中一个库进行读/写(8位数据)③存储器分段8086/8088系统中将1M的存储空间划分为若干分段,每段长最多包含64K字节,并规定每个段的20位起始地址必须是被16位整除的地址,即其起始地址的低4位必须是0。存储空间段结构分段逻辑结构⑤逻辑地址与物理地址物理地址:就是存储器的实际地址,它是指CPU和存储器进行数据交换时所使用的地址(20位)。逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分组成(16位)。逻辑地址的表示形式为“段地址∶偏移地址”。物理地址=段地址×10H+偏移地址16位段地址16位偏移地址20位字节或字的物理地址+)0000段寄存器C018偏移地址FE7FC0180H段首址CFFFFH被访的单元D017FH段末址存储器64K分段(a)(b)20位物理地址的构成举例(a)20位物理地址的形成;(b)字节地址构成举例4.中断(1)中断的定义CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。(2)中断源引起CPU中断的事件内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断(3)中断过程中断请求—中断响应—中断服务—中断返回(4)可编程中断控制器8259A①内部结构IRR中断请求寄存器用来存放由外部输入的中断请求信号IR0~IR7,允许多位置1。ISR中断服务寄存器保存、记录正在处理中的中断请求,当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR相应位置1。PR优先级判别器对保存在IRR中的中断请求进行优先级识别,送出最高级别中断请求到ISR中;当出现多重中断时,PR判定是否允许所出现的中断去打断正在处理的中断。IMR中断屏蔽寄存器实现对各级中断的有选择的屏蔽,当某位为1,表示禁止这一级中断请求进入系统②8259A的工作过程当某IRi有效时,IRR相应位置1,若有效的IRi未被屏蔽,则向CPU发出中断请求,检测到第1个INTA信号后,置ISRi=1,IRRi=0。检测到第2个INTA信号后,把ISRi=1中最高优先级的中断类型码放到DB上。若工作在AEOI方式,在第2个INTA结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位5.可编程定时器/计数器技术本章主要内容是定时器/计算器的应用场合;如何实现定时/计数;可编程计数器/定时器8253芯片的内部结构、引脚功能、计数原理、6种工作方式下的工作条件和输出波形特征。6.可编程输出/输出接口本章讨论输入/输出接口的基本概念,包括输入/输出接口的作用、内部结构、传送信息的分析、IO端口编址以及主机通过接口与外设之间数据传送的方式。7.A/D、D/A转换技术本章重点是A/D转换的任务和转换原理,D/A转换的任务和转换原理,常用A/D转换器(ADC)集成芯片和D/A转换器(DAC)集成芯片的外部引脚功能、内部结构、工作过程、性能指标以及实际应用。三、8255A的应用实例——8255方式1与打印机接口1.打印机接收主机传送数据的过程目前打印机一般采用并行接口标准,当主机准备好输出打印的一个数据时,通过8255A把数据送给打印机接口的数据引脚DATA0~DATA7,同时送出一个数据选通信号STROBE给打印机。打印机收到该信号后,把数据锁存到内部缓冲区,同时在BUSY信号线上发出忙信号。待打印机处理好输入数据时,打印机撤消忙信号,同时向主机送出一个响应信号ACK。主机根据BUSY信号或信号ACK决定是否输出下一个数据。2.利用8255来实现8255A的端口A工作于选通输出方式,PC7作为OBFA输出信号,PC6作为ACKA输入信号,而PC3作为INTRA输出信号;另外,可用程序控制INTEA(PC6),决定是否采用中断方式。打印机接口的时序与8255A的选通输出方式的时序类似,但略有差别,用单稳电路74LS123即可满足双方的时序要求,如图。四、心得体会一个学期的微机原理学习已经接近尾声,回想起来发现自己对这门课程掌握的不是很好,经过几周的复习总结,我对这门课的了解加深了一些,以下是我的一些体会。微机原理是一门偏向于硬件的课程,处理器结构,存储器机构,以及IO接口……这门课需要我们记忆和理解,首先学习微机原理是需要记忆一些知识点的,比如当我们在看到一个引脚标号如INTA时,我们要知道它所代表的意思,以及使用的条件和有什么功能,接着是理解,我感觉学微机原理还是挺枯燥的,每次看到一堆引脚和控制字格式的时候,总会忍不住烦躁,死记硬背的话没过几天就忘了,所以在记忆的时候只能结合前面学过的知识一句话一句话的来理解。学习微机原理,我印象最深的是汇编语言和接口。学习汇编语言时,开始需要记住汇编的各种指令,我开始就是因为对汇编指令不熟悉,在利用汇编编程的时候感觉很吃力,有时遇到一个不熟的指令,不得不翻书去找指令的意思,因此掌握汇编语言的基本用法是很重要的。关于接口,后微机原理后半部分的学习中,我们都是围绕接口来展开学习的。在输入\输出中有可编程的8237,在中断中有可编程的8259,在传并行通信中有可编程的8255和82