微机原理与接口技 第二版 电子工业出版社_第1页
微机原理与接口技 第二版 电子工业出版社_第2页
微机原理与接口技 第二版 电子工业出版社_第3页
微机原理与接口技 第二版 电子工业出版社_第4页
微机原理与接口技 第二版 电子工业出版社_第5页
已阅读5页,还剩548页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术(第2版)朱晓华 目录 第一章 微机原理 1.1 微机概述 1.2 计算机中数的表示和编码 1.3 微机的一般概念 1.4 Intel微处理器结构 第二章 8088/8086及Pentium指令系统 2.1 8088/8086的寻址方式 2.2 8088/8086指令系统 第三章 汇编语言程序设计 3.1机器语言、汇编语言与高级语言 3.2汇编语言源程序的结构 3.3数据定义 3.4汇编语言的运算符 3.5 基本结构程序的设计 3.6操作系统的资源的使用 3.7宏汇编与条件汇编 3.8外部引用与全局说明 3.9高级语言调用汇编语言子程序 第四章 PC总线与接口标准 4.1概述

2、 4.2系统总线 4.3PCI总线 第五章 输入与输出接口技术 5.1接口技术的基本概念 5.2输入/输出传输方式 5.3I/O端口读/写技术 5.4简单并行接口8212 5.5可编程并行输入输出接口8255 5.6定时器/计数器概述 5.7可编程定时器/计数器芯片8253 第六章 中断技术 6.1中断的基本概念 6.28086/8088微处理器的中断方式 6.3 中断管理 6.4 高档微处理器中断系统 6.5 可编程中断控制器8259A 6.6中断接口技术 第七章 半导体存储器 7.1概述 7.2随机存取存储器 7.3只读存储器 7.4存储器的接口技术 7.5高速缓冲存储器Cache 第八章

3、 DMA技术 8.1DMA概述 8.2DMA控制器 8.3DMA初始化 8.4DMA在微机中应用 9.1串行通信 9.2可编程一步通信接口INS8250 9.3IBM PC/XT中的异步INS8250第一章 微机原理1.1微机概述主要内容:1.微机的发展概况 2.微机的应用重点和难点:以上1要求:了解学时:1学时电子计算机是20世纪科学技术最卓越的成就之一,它为人类进入信息时代奠定了坚定的基础。1.1.1 微机发展概况 1946年第一台电子计算机问世 1971年,美国Intel公司研究并制造了I4004微处理器芯片。该芯片能同时处理4位二进制数,集成了2300个晶体管,每秒可进行6万次运算,成

4、本约为200美元。它是世界上第一个微处理器芯片,以它为核心组成的MCS-4计算机,标志了世界第一台微型计算机的诞生。 微机概念:以大规模、超大规模构成的微处理器作为核心,配以存储器、输入/输出接口电路及系统总路线所制造出的计算机。 划分阶段的标志:以字长和微处理器型号。 特点:速度越来越快 容量越来越大 功能越来越强 (1971-1973)第一代第一代4位和低档位和低档8位机位机Intel 4004第二代第二代中高档中高档8位机位机8080/8085、Z80、MC6800第三代第三代16位机位机Intel 8086、Z8000、MC6800第四代第四代32位机位机80386、80486第五代第

5、五代64位机位机Intel Pentium(1974-1978)(1978-1981)(1981-1992)(1993后)后) 迄今为止,微机在体系结构上仍然基于冯.诺依曼建立的存储程序概念,访问内存活动占了CPU时间的70%左右, 所以存储器组织和存储管理的效率对整机效率影响很大. 微机采用了分层的存储器系统.在这种系统中,存储器可分为5层,从0层到4层.0层通常是CPU内部寄存器,离CPU最近,存取速度快,但数量有限.2层是主存储器,通常由动态RAM(DRAM)组成.在0层与2层之间是高速缓冲存储器Cache,即1层存储器。 Cache是小容量的快速静态RAM(SRAM),用来存储处理器最

6、需要的数据块。 Cache通常使系统加速,因为他开拓了程序的一般特性:空间和时间的局部性。 空间局部性:如果存储器中一个单元被访问,则其邻近的单元可能很快也被访问。 时间局部性:如果一个存储单元一旦被访问,则它就可能很快被再次访问。 第3层是大容量的虚拟存储器,普遍使用的是磁盘存储器。虚拟存储技术使处理器以为主存储器比实际大很多。处理器把地址空间划分为固定的块,称为页面。在需要的时候,页面被调到主存内,不需要时就送回磁盘。为保持系统中的次序,一个存储管理单元(MMU)用来跟踪那些页面在主存内及它们的状态。在80286以上的微处理器中,均采用了虚拟存储技术。 第4层存储器用来存储在一个时期内用不

7、上的数据,或者因其重要而需要保留的数据。这种归档寄存在可更换的磁盘、光盘或DVD光盘等介质中。 微机在体系结构上采用开放式的总线结构,以便于系统的扩展。总线的主要职责是负责计算机各模块之间及计算机与外设之间的数据传输。(EISA总线、MCA总线、PCI总线、PCI-E总线、VL总线等) 在硬件系统取得迅猛发展的同时,软件系统的发展同样发展迅速。操作系统最为常见的5种:DOS,Windows,Linux,UNIX/Xenix,OS/2. (Windows NT系统是第一个真正意义上的32位操作系统,自此以后的Windows操作系统不需要MS-DOS就可以运行在采用Intel 80 x86系列的C

8、PU的微机上,也可以运行在非Intel80 x86系列微机上;它支持计算机联网,使各计算机可以互相通信和共享资源;可以访问多至4GB的内存,并为应用程序管理内存。故Windows NT具有划时代的意义。) 在微机家族中,单片微机的发展同样十分引人注目。单片机是把CPU、一定容量的存储器和必要的I/O接口电路集成在一个芯片上构成的具有计算机的完整功能的一种微机。1.1.2 微机的应用1.工业控制2.事物处理3.计算机辅助设计和辅助制造(CAD/CAM)4.教学培训5.家庭娱乐和家政事务管理6.科学和工程计算7.人工智能1.2 计算机中数的表示和编码主要内容:1.计算机中的进位计数制 2.计算机中

9、常用的编码 3.带符号数的表示 4.数的定点与浮点表示重点和难点:以上4点要求:熟悉并掌握学时:1学时1.2.1 计算机中的进位计数制1.进位计数制的表示法 十进制数 十进制数是大家熟悉的,用0,1,2,8,9十个不同的符号来表示数值,它采用的是“逢十进一,借一当十”的原则。 二进制表示法 基数为10的记数制叫十进制;基数为2的记数制叫做二进制。 二进制数的计算规则是“逢二进一,借一当二”。 二进制表示数值方法如下: NB = Ki * 2i 其中:Ki = 0 或 1 例:二进制数1011.1表示如下: (1011.1)B= 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20

10、 +1 * 2(-1) 运算规则: 加法运算: 0+0 = 0 0+1 = 1 1+0 = 1 1+1 =10 (逢二进一) 减法运算: 0-0 = 0 10-1 =1 (借位) 1-0 = 1 1-1 =0 乘法运算: 0 * 0 =0 0 * 1 =0 1 * 0 =0 1 * 1 =1 除法运算 0 / 1 =0 1 / 1 =1 八进制表示法 八进制数是基数为八的计数制。八进制数主要采用0,1,2,7这八个阿拉伯数字。 八进制数的运算规则为“逢八进一,借一当八”。 八进制表示数值方法如下: NO = Ki * 8i 其中:Ki = 0 、1、2、3、4、5、6、7 例:(467.6)O

11、=4 * 82 + 6 * 81 + 7 * 80 + 6 * 8(-1) 十六进制表示法 基数为16,用0 - 9 、A - F 十五个字符来数值,逢十六进一。 各位的权值为 16I 十六进制表示数值方法如下: NH= Ki * 16i 其中:Ki = 0 - 9 、A F 例:(56D.3)H = 5 * 162 + 6 * 161 + 13 * 160 + 3 * 16(-1)2.进位计数制之间的转换 二进制数和十进制数之间的转换二进制数转换为十进制数 方法:按二进制数的位权进行展开相加即可。 例:11101.101 =124+123+122+021+120+12-1+02-2+12-3

12、 =16+8+4+0+1+0.5+0.25+0.125 =29.875十进制数转换为二进制数 方法: A、将整数部分和小数部分分别进行转换,然后再把转换结果进行相加。 B、整数转换采用除2取余法:用2不断地去除要转换的数,直到商为0。再将每一步所得的余数,按逆序排列,便可得转换结果。 C、小数转换采用乘2取整法:每次用2与小数部分相乘,取乘积的整数部分,再取其小数部分乘2直到小部分为0。将所取整数顺序放在小数点后即为转换结果。 二进制数和八进制数、十六进制数间的转换二进制数到八进制数、十六进制数的转换 A、二进制数到八进制数转换采用“三位化一位”的方法。从小数点开始向两边分别进行每三位分一组,

13、向左不足三位的,从左边补0;向右不足三位的,从右边补0。 B、二进制数到十六进制数的转换采用“四位化一位”的方法。从小数点开始向两边分别进行每四位分一组,向左不足四位的,从左边补0;向右不足四位的,从右边补0。 八进制、十六进制数到二进制数的转换 方法:采用“一位化三位(四位)”的方法。按顺序写出每位八进制(十六进制)数对应的二进制数,所得结果即为相应的二进制数1.2.2计算机中常用的编码1.BCD码:用00001001共10个4位二进制码来表示十进制中09这10个数。2.符号信息的编码:ASCII,7位编码3.汉字的编码:国标码1.2.3 带符号数的表示1.机器数与真值2.原码3.反码4.补

14、码5.移码1.2.4 数的定点与浮点表示1.3 微机的一般概念主要内容:1.计算机的基本组成和工作原理 2.名词术语 3.微机结构 4. 微机的工作过程 5. 计算机软件系统重点和难点:以上1、3、4要求:掌握学时:2学时1.3.1名词术语1.微处理器:是将运算器和控制器做在一块集成电路上的一个独立部件。它具有解释指令、执行指令和与外界交换数据的能力。2.微机:通过总线把I/O、CPU和半导体存储器有机结合在一起。 微机分为:单板机(印制电路板)、单片机(芯片)、多板机。3.微机系统:微机配上外部设备、系统电源和系统软件就构成微机系统。4.微机多机系统:多台微机/微处理器组合而成。5.微机开发

15、系统(MDS):在研制开发微机应用系统时,从程序调试到样机的系统调试,他都能提供软件和硬件的支持。6.计算机网络系统:借助通信网络将一定的域内的众多计算机和外设连接起来构成计算机网络可以实现计算机之间的互相通信和资源共享。7.多媒体:文、图、声、像等单媒体与计算机程序融合在一起形成的信息传播媒体。8.位、字节、字与字长 位:代表一个二进制数,常用小写的b表示 字节:每个字节由8个位组成,用大写的B表示。1B=8b。 1KB =210B=1024B 1MB = 210KB=1024 KB 1GB =210MB =1024 MB 字:在计算机系统中进行信息的处理、存储或传送时作为一个单元的一组二进

16、制位的组合。 比如字长16位。字大于等于字节 存储容量:计算机中能够保存二进制信息的数量。 时钟频率与运行速度: 时钟频率:计算机在执行指令时总是按照一个固有的节拍进行着,这个节拍是由一个标准的振荡器产生的,它的振荡频率称为时钟频率。 时钟频率越快运行速度越快。 指令与指令系统: 指令:用来指定计算机操作类型和操作数地址的一组字符。 计算机可以执行的全部指令的集合教指令系统。1.3.2计算机的基本组成和工作原理和结构:1.计算机的基本组成:运算器、控制器、存储器、以及输入和输出设备。DBABCBCPU 存储器存储器I/O接口接口外外设设 微处理器 微处理器(CPU)是大规模集成电路技术做成的芯

17、片,芯片内集成有控制器、运算器和寄存器等相关部件,完成对计算机系统内各部件进行统一协调和控制。 控制器:根据程序中的命令发出各种控制信号,使各部分协调工作以完成指令所要求的各种操作。 运算器:对信息进行加工、运算的部件,执行算术运算和逻辑运算。 存储器 功能:存放程序和数据。存储器内存(主存)外存(辅存)RAMROMSRAMDRAMROMEPROME2PROM软盘、硬盘、光盘 I/O设备和I/O接口 I/O设备:微机配备的输入/输出设备(外设)。 标准输入/输出设备(控制台):键盘和显示器(CRT)。I/O设备输入设备输出设备键盘鼠标扫描仪、数码相机显示器打印机绘图仪2.存储程序工作原理:把编

18、制好的程序和数据一起先送入存储器中保存起来。启动机器运行后,根据给出的程序中第一条指令的存储地址,控制器就可以根据存储程序中的程序周而复始的取出指令、分析指令、执行指令,直至完成全部指令操作,即控制器通过指令流的串行驱动实现程序控制。3.微机结构 总线(BUS):传递信息的一组公用导线。 系统总线:从处理器引出的若干信号线,CPU通过它们与存储器或I/O设备进行信息交换。 一个部件只要满足总线标准,就可以连接到采用这种总线标准的系统中。 系统总线分为: 地址总线:传递地址信息的总线,即AB。CPU在地址总线上输出将要访问的内存单元或I/O端口的地址,该总线为单向总线。 内存容量的计算:16条地

19、址线可访问216 = 64 KB。 20条地址线可访问 220 = 1 MB。 1K = 1024B 1M = 1024 KB 1G = 1024 MB 数据总线:传递数据信息的总线,即DB。 在CPU进行读操作时,内存或外设的数据通过数据总线送往CPU; 在CPU进行写操作时,CPU数据通过数据总线送往内存或外设,数据总线是双向总线。 控制总线:传递控制信息的总线,即CB。 控制总线的方向: 一部分是从CPU输出:通过对指令的译码,由CPU内部产生,由CPU送到存储器、输入/输出接口电路和其它部件。如时钟信号、控制信号等。 另一部分是由系统中的部件产生,送往CPU,如:中断请求信号、总线请求

20、信号、状态信号。 微处理器(CPU) 存储器: CPU读/写存储器的简单过程是:先由CPU给出要操作的存储单元地址,该地址信号通过地址总线送到存储器的地址译码器译码后,在单元中选中对应与该地址的存储单元;然后CPU通过控制总线发出读或写的控制信号,对该单元读或写.读出的内容通过数据总线送到CPU的数据寄存器中.要写入的内容则由CPU发出,经数据寄存器通过数据总线写入存储单元.1.3.3.微机的工作过程: 在进行计算前,应做如下工作:(1)、用助记符号指令(汇编语言)编写程序(源程序);(2)、用汇编软件(汇编程序)将源程序汇编成计算机能识别的机器语言程序;(3)、将数据和程序通过输入设备送入存

21、储器中存放。例:完成5+6=?的程序:MOV A,05H /B0H 05H ;把05送入累加器AADD A,06H /04H 06H ;06与A中内容相加, 结果存入累加器AHLT /F4H ;停止所有操作。1、取指令阶段的执行过程:(设程序从00H开始存放)(1)、将程序计数器(PC或IP)的内容送地址寄存器AR。(2)、程序计数器PC的内容自动加1变为01H,为取下一条指令作好准备。(3)、地址寄存器AR将00H通过地址总线送至存储器地址译码器译码,选中00H单元。(4)、CPU发出“读”命令。(5)、所选中的00单元的内容B0H读至数据总线DB上。(6)、经数据总线DB,读出的B0H送至

22、数据寄存器DR。(7)、数据寄存器DR将其内容送至指令寄存器IR中,经过译码CPU“识别”出这个操作码为“MOV A,05H”指令,于是控制器发出执行这条指令的各种控制命令。PCARALUABIRIDPLA100 B0H01 05H02 04H03 06H04 F4H34读命令读命令B0H56B0H控制信号控制信号(取第一条指令操作示意图)(取第一条指令操作示意图)B0H7B0H00H00HDR2、执行指令阶段的执行过程:(1)、将程序计数器(PC或IP)的内容送地址寄存器AR。(2)、程序计数器PC的内容自动加1变为02H,为取下一条指令作好准备。(3)、地址寄存器AR将01H通过地址总线送

23、至存储器地址译码器译码,选中01H单元。(4)、CPU发出“读”命令。(5)、所选中的01H单元的内容05H读至数据总线DB上。(6)、经数据总线DB,读出的05H送至数据寄存器DR。(7)、由控制码计算机已知到读出的是立即数,并要求将它送入累加器A中,所以数据寄存器DR通过内部总线将05H送入累加器A中。PCARALUABDRIRIDPLA02H101H00 B0H01 05H02 04H03 06H04 F4H34读命令读命令05H56705H1.3.4 计算机软件系统 系统软件和应用软件 系统软件包括操作系统、各种高级语言处理程序、编译系统和其他服务程序、数据库管理系统等软件。这些软件不

24、是用来解决具体应用问题的,而是利用计算机自身的功能,合理的组织解题流程,管理计算机软、硬件各种资源,提供人-机间的接口,从而简化或代替各环节中人所承担的工作。还可以为用户使用机器提供方便,扩大机器功能,提高工作效率。 应用软件是由用户利用计算机及其系统软件编制的解决实际应用问题的程序。1.4 Intel微处理器结构主要内容:1. Intel 8086/8088微处理器结构 2. 8086CPU引脚功能 3. 8086/8088CPU的存贮器组织和I/O组织 4. 8086CPU内部时序重点和难点:以上4点要求:掌握学时:6学时型号发布年份字长/位集成度/(万/片)主频/MHZ内数据总线宽度/位

25、外数据总线宽度/位地址总线宽度/位寻址空间高速缓冲存储器(cache)80861978162.94.771616201MB无80881979准162.94.77168201MB无8028619821613.462016162416MB无8038619853227.512.5333232324GB有80486199032120160251003232324GB8KBPentium199332310330601663264324GB8KB数据8KB指令Pentiumii19973275023333332643664GB32KB和512KB二级高速缓存Pentiumiii19993295045032

26、643664GB32KB一级缓存和512KB二级缓存Pentium42000324200150032643664GB32KB一级缓存和512KB二级缓存Pentium4 6xx2005643000380064643664GB32KB一级缓存和1/2MB二级缓存PentiumD2005642660360064643664GB32KB一级缓存和2/4MB二级缓存1.4.1 Intel 8086/8088微处理器结构 内部结构是16位,但数据总线是8位,因此是一种准16位CPU。它具有包括乘法和除法的16位运算指令,所以能处理16位数据,也能处理8位数据。8086/8088有20条地址线,其直接寻址

27、能力达到1MB。地址从00000HFFFFFH,采用40条引线封装,单相时钟,电源为5V。01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7 HIGH(SSO)MN/MX/RDHOLD(/RQ/GT0) HLDA(

28、/RQ/GT1)/WR(/LOCK)M/IO(/S2)DT/R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881.8088的寄存器结构 通用寄存器又称为数据寄存器,既可作16位数据寄存器使用,也可作为两个8位数据寄存器使用。当用作16位时,称为AX、BX、CX、DX。当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并且可独立寻址。多数情况下,通用寄存器用在算术和逻辑运算指令中,用来存放算术逻辑运算的源/目的操作数。特殊情况下,AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存

29、器。 段寄存器8086/8088CPU有20条地址线,他可以寻址的存储空间为1MB,而8086指令给出的地址编码只有16位,指令指针和变址寄存器也都是16位,故CPU不能直接寻址1MB空间。为此采用段寄存器,即8086用一组段寄存器将这1MB存储空间分成若干个逻辑段,每个逻辑段长度小于等于64KB,用4个16位的段寄存器分别存放各个段的起始地址(又称段基址),8086的指令能直接访问这4个段寄存器。不管是指令还是数据的寻址,都只能在划定的64KB范围内进行。寻址时还必须给出一个相对于分段寄存器值所指定的起始地址的偏移值(也称有效地址),以确定段内的确切地址(物理地址)物理地址的计算先把段地址左

30、移4位,然后与16位的偏移值相加。物理地址计算方法: 物理地址 = (DS)* 16 + (BX)或(SI)或(DI) 物理地址 = (SS)* 16 + (BP)例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AX,DI ;(AX) (DI) 物理地址=(DS) * 16 + (DI) =2100H * 16 + 2000H =21000H + 2000H =23000H 指令结果:将23000H单元内容送AL中, 将23001H单元内容送AH中。共4个。把1MB存贮器分为若干个逻辑段,每个逻辑段长度小于等于64K.代码段寄存器CS表示当前使用的指令代码可以从该段寄存器

31、指定的段中取得,相应的偏移值则由IP提供。堆栈段寄存器SS指定当前堆栈的底部地址。(堆栈:是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top)对数据项进行插入和删除。地址从高到低生成,先进先出。) 数据段寄存器DS指示当前程序使用的数据所存段的最低地址。附加段寄存器ES指出当前程序使用附加段地址的位置,该段一般用来存放原始数据或运算结果。 地址指针与变址寄存器存放地址的偏移量(即相对于段起始地址的距离)。堆栈指针SP用以指出在堆栈段中当前栈顶的地址,在入栈(PUSH)和出栈(POP)指令中也是由SP给出栈顶的偏移地址的。基址指针BP指出要处理的数据在堆栈段的基地址。BP所指的物理地址

32、必须用堆栈段寄存器SS来计算。BP只是全部偏移量中一个基本值。变址寄存器SI和DI用来存放当前数据段中某个单元的偏移量。在字符串处理中,被处理的数据称为源操作数据,他们存放在源变址寄存器SI给出的偏移地址中,而处理后的字符串则存放在由目的变址寄存器DI给出的偏移地址中。这时SI和DI不能颠倒使用 取指时CPU会自动选择码段寄存器(CS),再加上由IP所决定的16位偏移量,得到要取的指令的物理地址。 当设计堆栈操作时CPU会自动选择堆栈段寄存器(SS),再加上由SP所决定的16位偏移量,得到物理地址。 当涉及操作数时,CPU会自动选择数据段寄存器(DS)或附加段寄存器(ES),再加上16位偏移地

33、址。根据不同的寻址方式,这16位偏移地址可以是指令中的直接地址,或是某一个16位寄存器的值,也可以是指令中的偏移量家加上某个16位寄存器中的值。 指令指针与标志寄存器正常运行时,IP中存放的是BIU要取的下一条指令的偏移地址,它具有自动加1功能。(BIU负责与存储器、I/O端口传送数据)标志寄存器PSW是一个16位的寄存器,8086/8088共使用了9个有效位,其中6位是状态标志位,3位是控制标志位。状态标志位是当一些指令执行后,所产生的数据的一些表征,而控制标志位则是可以由程序写入以达到控制处理机状态或程序执行方式的表征。 15 0OFDFIFTFSFZFAFPFCFCF:进位标志位。当执行

34、一个加法(或减法)运算使最高位产生进位(或借位)时,CF为1,否则为0。PF:奇偶标志位。该标志位反映运算结果中1的个数是偶数个还是奇数个。当指令执行结果的低8位中含偶数个1时,PF为1,否则为0.AF:辅助进位标志位。当执行一个加法(或减法)运算使结果的低4位向高4位有进位(或借位)时,AF为1,否则为0.ZF:零标志位。若当前的运算结果为零,ZF为1,否则为0.SF:符号标志位。他与运算结果的最高位相同。OF:溢出标志位。当补码运算有溢出时,OF为1,否则为0.DF:方向标志位。用以指定字符串处理的方向,当DF=1,字符串以递减顺序处理,即地址以从高到低顺序递减。反之则以递增处理。IF:中

35、断允许标志位。它用来控制8086是否允许接收外部中断请求。若IF=1,8086能响应外部中断。反之则不响应。注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。TF:跟踪标志位。为调试程序而设定的陷阱控制位。当TF=1,8086CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次内部中断。当该复位后,CPU恢复正常。2.8088的功能结构 分为总线接口(BIU)和执行单元(EU)。 总线接口单元BIU总线接口单元BIU是8088CPU同存贮器和I/O设备之间的接口部件,负责对全部引脚的操作,即8088所有对存贮器和I/O设备的操作都是由BIU中的各部件主要是围绕这个目标

36、设计的。它提供了16位双向数据总线、20位地址总线和若干条控制总线。具体任务:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。CPU执行指令时,总线接口单元要配合执行单元,从指定的内存单元或者I/O端口中取数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。总线接口单元BIU由20位地址加法器、4个段寄存器、16位指令指针IP、指令队列缓冲器和总线控制逻辑电路等组成。AH ALBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器运算寄存器运算寄存器ALU标志标志执行部分执行部分控制电路控制电路1 2 3 4 5 6 CS DS SS

37、ES IP 内部寄内部寄存器存器I/O控制控制电路电路地址加地址加法器法器20位位16位位8位位指令队列缓冲器指令队列缓冲器外外总总线线执行部件执行部件总线接口部件总线接口部件8086CPU结构图结构图 执行单元EU:负责指令的执行。从BIU的指令队列缓冲器中取指令。取指和执指是分开而且可以重叠。CPU在执行一条指令的同时,就可以取出下一条或多条指令并将其送至指令流队列中排队;在执行完一条指令后便可立即执行下一条指令。执行单元中包含一个16位的运算器ALU、8个16位的寄存器、一个16位标志寄存器PSW、一个数据暂存寄存器和执行单元的控制电路。1.4.2 8086CPU引脚功能 8086CPU

38、具有40条引脚,采用双列直插式封装形式。 8086CPU可在两个模式下工作(最小模式和最大模式)最小模式:指系统中只有一个8086CPU,在这种系统中,8086CPU直接产生所有的总线控制信号,系统所需的外加其他总线控制逻辑部件最少。最大模式:指系统中常含有2个或多个微处理器,其中一个为主处理器8086CPU,其他的处理器称为协处理器,它们是协助主处理器工作的。在最大模式工作时,控制信号是通过8288总线控制器提供的。1.地址/数据复用总线AD0AD15 双向、三态。用于输出低16位地址A0A15和输入/输出数据D0D15。 总线周期:CPU与芯片外部进行数据交换必须通过总线,这种信息交换的最

39、基本过程被称为总线周期。由于这部分工作在CPU内部是由BIU单元执行,故又叫BIU周期。一个周期至少由4个时钟周期组成。四个周期固定用T1T4表示。如果系统的频率为10MHZ,那么时钟周期T=100ns,完成一个总线周期就需要400ns 在总线周期的第一个时钟周期T1用来输出要访问的存贮器单元或I/O的低16位地址A0A15。而在其他时钟周期对于读周期来说处于悬浮状态,对于写周期则是传送数据。2.地址/状态复用总线A19/S6A16/S3 分时复用三态输出。第一个时钟周期用来输出访问存贮器的20位物理地址的最高4位地址(A16A19),与AD15AD0一起构成访问存贮器的20位物理地址。当CP

40、U访问I/O端口时,A19A16保持为“0”.在其他时钟周期,则用来输出状态信息。其中S6为0,用来指示8086CPU当前正与总线相连。S5状态用来指示中断允许标志位IF的当前设置:若IF=1,表示当前允许可屏蔽中断请求;若IF=0,则禁止可屏蔽中断请求。S4、S3的代码组合用来指示CPU当前正在使用哪个段寄存器。S4 S3当前使用的段寄存器0 0ES0 1SS1 0CS1 1DS3.控制总线 :高8位数据总线允许/状态复用引脚,三态输出,低电平有效,在总线周期的第一个时钟周期T1用来表示总线高8位AD15AD8上的数据有效。若/BHE/S7 = 1,表示仅在数据总线AD7AD0上传送数据。读

41、/写存贮器或I/O端口以及中断响应时, 用作选体信号,与最低位地址码A0配合,表示当前总线的使用情况。 7/SBHE A0总线使用情况0 0在16位上数据总线上进行字传送0 1在高8位数据总线上进行字节传送(访问奇地址存贮器单元)1 0在低8位数据总线上进行字节传送(访问偶地址存贮单元)1 1无效7/SBHE/RD:读信号,三台输出。当 =0,表示当前CPU正在对存储器或I/O端口进行读操作。 =0与M/ 信号高电平配合,表示读存储器操作; 与 M/ 信号低电平配合,表示读I/O端口操作。/WR:写信号,三态输出。当为0时,表示当前CPU正在对存贮器或I/O端口进行写操作。与 读信号一样,由M

42、/ 信号区分对存贮器或I/O端口访问。M/IO:存贮器或I/O端口选择控制信号,三态输出。当=1,表示当前CPU正在访问存贮器;=0,表示CPU当前正在访问I/O端口。一般在前一个总线周期的T4时钟周期,就使它产生有效电平,然后开始一个新的总线周期。在此新的总线周期中,他一直保持有效电平,直至本总线周期的T4时钟周期为止。在DMA方式时,他被悬空,为高阻态。READY:准备就绪信号,输入,高电平有效。=1时,表示CPU访问的存贮器或I/O端口已准备好传送数据,马上可以进行读/写操作。若CPU在总线周期T3状态检测到READY信号低电平,表示存贮器或I/O设备尚未准备就绪,CPU自动插入一个或多

43、个等待状态TW,直到READY信号变为高电平为止。INTR:可屏蔽中断请求信号,输入,电平触发,高电平有效。当=1时,表示外设向CPU发出中断请求,CPU在每个指令周期的最后一个T状态去采样该信号,若=1且IF=1时,则CPU就会在结束当前指令后去响应中断,转去执行中断服务程序。/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对

44、/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始 执行。ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。DT/R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT/R=1,发送数据-写操作;DT/R=0,接收数据-读操作。/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器82

45、86的选通信号。HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。MN/MX:工作模式选择信号,输入。MN/MX=1,表示CPU工作在最小模式系统;MN/MX=0,表示CPU工作在最大模式系统。CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。4.最大模式下的引脚功能S2、S1、S0:总线周期状态信号,三态输出。 S2、S1、S0

46、状态信号的编码 S2 S1 S0 操作过程 产生信号 0 0 0 发中断响应信号 /INTA 0 0 1 读I/O端口 IORC 0 1 0 写I/O端口 IOWC 0 1 1 暂停 无 1 0 0 取指令 /MRDC 1 0 1 读存储器 /MRDC 1 1 0 写存储器 /AMWC 1 1 1 无作用 无/RQ/GT1、/RQ/GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。QS1、QS2:指令队列状态信号,输出。 QS1 QS2 含义 0 0 无操作 0 1 将指令首

47、字节送入指令队 1 0 队列为空 1 1 将指令其余字节送指令队列5.电源线VCC和地线GNDVCC=5V,GND接地1.4.3 8086/8088CPU的存贮器组织和I/O组织1.存贮器组织及其寻址 8086/8088CPU可寻址1MB的存储单元,在此存储空间中是以8位为一字节顺序排列存放的。每一个字节用唯一的一个地址码标识。将存储器空间按字节地址号顺序排列的方式称为字节编制。 字节数据:数据位数位8位,对应的字节地址可以是偶地址(地址的最低位A0=0),也可以是奇地址(A0=1)。当存取此字节数据时,只需给出对应的实际地址即可。 字数据:它是将连续存放的2个字节数据构成一个16位的字数据。

48、规定字的高8位字节存放在高地址,字的低8位字节存放在低地址。同时规定将低位字节的地址作为这个字的地址。 通常情况下,一个字数据总是位于偶地址,即偶地址对应低位字节,奇地址对应高位字节,符合这种规则存放的字数据称为规则字。(存放在奇地址的是非规则字) 8086CPU的BIU是这样设计的:若存取一个字节的数据,总是用一个总线周期来完成字节操作;若存取一个字,则根据该字是规则字还是非规则字分别用一个或两个总线周期来完成此存取操作。 双字数据:此数据要占用4个字节,用以保存连续的两个字。通常此类数据用于地址指针,指示一个当前可段外寻址的某段数据。以指针的高位字存放该数据所在段的基地址,而低位字存放该数

49、据所在段内的偏移量。在存放低位字或高位字时,高位字位于高地址,低位字位于低地址。例:在00200H地址中存放一个双字数据1122H:3344H,该双字指示了某数所存放的逻辑地址即段地址和偏移地址。该双字存放地址为00200H00203H,连续4个字节依次存放的内容为44H、33H、22H、11H。该数据实际的存放地址为11220H+3344H=14564H 双字数据是以字为单位,故,它的地址以最低位字节地址作为它的地址。 8086系统的1M存贮器分为两个库,每个库的容量都是512KB。其中和数据总线D15D8相连的库全部由奇地址单元组成,称为高位字节库或奇地址库,利用/BHE信号低电平作为此库

50、的选择信号;另一个库和数据总线D7D0相连接,由偶地址单元组成,称为低位字节库或偶地址库,利用地址线A0=0(低电平)作为此库的选择信号。所以只有A19A1个地址线用来做为两个库内的存贮单元的寻址信号。 规则字的存取操作可以在一个总线周期中完成。由于地址线A19A1是同时连接在两个库上的,只要/BHE和A0信号同时有效,就可以一次实现在两个库中对一个字(高低两字节)完成存取操作。对字的存取操作所需的/BHE及A0信号是由字操作指令给出的。 对非规则字的存取操作需要两个总线周期才能完成。在第一个总线周期中,CPU存取数据(低位字节)时是在高位库中,此时A0=1,/BHE=0.然后再将存贮器地址加

51、1,使A0=0,选中低位库。在第二个总线周期中,存取数据(高位字节)时是在低位库中,此时A0=0,/BHE=1。 对于8088CPU,由于数据总线是8位,无论是字还是字节数据的存取操作,每个总线周期只能完成一个字节的数据存取操作。2.8086/8088的I/O组织每个I/O接口都有一个端口或几个端口。在微机系统中给每个端口分配一个地址,称为端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。8086/8088CPU利用地址总线的低16位作为对8位I/O端口的寻址线,故8086/8088系统可访问的8位I/O端口最多64K个。两个编号相邻的8位端口可以组合成一个16位的端口。 一

52、个8位的I/O设备既可以连接在数据总线的高8位上,也可以连接在数据总线的低8位上。当一个I/O设备接在数据地址低8位(AD0AD7)上的时候,这个I/O设备包含的所有端口地址都将是偶地址(A0=0);若一个I/O设备是接在数据地址总线的高8位(AD8AD15),那么此设备包含的所有端口都是奇地址(A0=1);如果某种特殊I/O设备即可使用偶地址又可使用奇地址,那么用A0和/BHE一起作为I/O设备的选择线。防止对I/O设备的错误操作。1.4.4 8086CPU内部时序 8086CPU的操作是在单向时钟脉冲CLK的统一控制下进行的。若时钟频率为5MHZ,则时钟周期为200ns. 8086CPU执

53、行一条指令需要的时间称为一个指令周期。一个指令周期由若干个总线周期组成,一个总线周期由若干个时钟周期组成。 一个总线周期是指CPU通过总线与外部逻辑进行一次访问所需要的时间,8086的基本总线周期是由4个时钟周期组成。典型的总线周期有存贮器读周期、存贮器写周期、I/O设备的输入周期、I/O设备的输出周期、中断响应周期和空闲周期等。(最小模式)1.读周期时序 在T1周期时: M/IO信号:从存储器读还是从I/O设备中读数据; AD15-AD0、A19/S7-A16/S3:确定20位地址; /BHE:选择奇地址存储体选择。 ALE:地址锁存信号,以使地址/数据线分开。 在T2周期时: A19/S6

54、-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU是否连在总线上。 AD15-AD0:高阻状态。 /RD:由高电平变为低电平,开始进行读操作。 /DEN:变低电平,启动收发器8268,做好接收数据的准备。 在T3周期时: 若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15-AD0上读取数据。 TW周期时: 在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。 TW状态时总线的动作与T3时相同

55、。 T4周期时: CPU对数据总线进行采样,读出数据。在T4状态结束,其他各控制信号和状态信号进入无效状态。/DEN=1,关闭8286。下一个总线周期可能在T4状态结束后立即开始,也可能在T4结束后出现若干个空闲状态T1,这取决于BIU何时需要进入下一个总线周期。2.写周期时序: T1状态 M/IO信号:对存储器写还是对I/O设备中写数据; AD15-AD0、A19/S7-A16/S3:确定20位地址; /BHE:选择奇地址存储体选择。 ALE:地址锁存信号,以使地址/数据线分开。 DT/R:为高电平,指示收发器8286发送数据,写操作。 T2状态 A19/S6-A16/S3:出现S6-S3状

56、态信号。决定段寄存器、IF状态、8086CPU不否连在总线上。 AD15-AD0:发出16位数据。 /WR:由高电平变为低电平,开始进行写操作。 /DEN:变低电平,启动收发器8268,做好发送数据的准备。 T3状态 若存储器或I/O端口已做好接收数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU将AD15-AD0上数据写入到存储器或I/O设备中。 TW状态 在T3状态,存储器或外设没有准备好接收数据,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到设备准备好READY=1为止。 T4状态 在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无

57、效状态,CPU完成了对存储器或I/O设备的写操作。 读、写周期时序的不同:DT/R=1写入单元的地址以及ALE信号有效,但写入存储器的数据是在T2状态中放至数据线AD15AD0上的。原因是CPU不需要将AD15AD0总线由输出方式转变为输入方式。/WR=1在T2。3.中断响应周期 当外部中断源通过INTR引线向CPU发出中断请求信号时,如果中断标志位IF=1,则CPU在完成当前指令操作之后,响应外部中断源的中断请求,进入中断响应周期。 中断响应周期包括两个总线周期,在每个总线周期中都从/INTA端输出一个负脉冲,其宽度从T2开始到T4的开始,在第一个中断响应周期中,利用/INTA负脉冲来通知中

58、断源,CPU准备响应中断,中断源应准备好中断类型号,并且使AD7AD0浮空。 第二个中断响应周期的/INTA负脉冲期间,被响应的外设应立即把中断源的中断类型号送到数据总线的低8位AD7AD0上,CPU把它读入后,则可从中断向量表中找到该设备的中断服务程序的入口地址,从而转入中断服务。 注意:INTR必须保持维持两个时钟周期。软件中断和非屏蔽NMI中断的响应,并不从外设读取中断类型号。4.I/O总线周期 与存储器通信时序几乎相同。 M/IO在规定有效地4个T周期中将呈低电平;另外,由于I/O的寻址空间为64KB,所以高4位地址线输出为0.同时在处理字节与字读写时,也与存贮器一样,要利用/BHE和

59、A0的状态组合。 I/O设备对数据的读写有时比较慢,要在总线周期中加入适量的TW周期。5.空闲周期 若CPU不执行总线周期,则总线接口执行空闲周期(即一系列的T1状态)第二章 8088/8086及Pentium指令系统2.1 8088/8086的寻址方式主要内容:1.立即寻址 2.寄存器寻址 3.直接寻址 4.寄存器间接寻址 5.变址寻址 6.基址加变址寻址重点和难点:以上6点要求:熟悉学时:1.5学时 指令通常包含操作码和操作数场两部分。操作码指示计算机执行什么操作,操作数场指明参加操作的数或者它所在的地址。 如何寻找参加操作的数即是寻址方式的问题。 微机中操作数的来源有以下3种:操作数就包

60、含在指令中,即指令的操作数场就包含着操作数本身操作数在CPU的某个寄存器中操作数在内存的数据区中,这时指令中的操作数场包含着操作数所在地址的信息。2.1.1 立即寻址 指令操作数部分直接给出指令的操作数,操作数与操作码一起存入代码段中。立即数有8位和16位。例 :MOV AL,5 ;源操作数为立即寻址指令执行后,AL=05H,8位数据05H存入AL寄存器。 例 :MOV AX,3064H ;源操作数为立即寻址指令执行后,AX=3064H,16位数据3064H存入AX寄存器。 注意:立即寻址方式只能出现在源操作数的寻址中,目的操作数不能采用此种方式。2.1.2 寄存器寻址 寄存器寻址方式的操作数

温馨提示

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

评论

0/150

提交评论