微机原理、汇编语言与接口技术课件_第1页
微机原理、汇编语言与接口技术课件_第2页
微机原理、汇编语言与接口技术课件_第3页
微机原理、汇编语言与接口技术课件_第4页
微机原理、汇编语言与接口技术课件_第5页
已阅读5页,还剩410页未读 继续免费阅读

下载本文档

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

文档简介

第一章

微型计算机系统概述

1、1微型计算机的发展、应用及其分类

1、1、1微机计算机的发展1971年,美国Intel公司研究并制造了I4004微处理器芯片。该芯片能同时处理4位二进制数,集成了2300个晶体管,每秒可进行6万次运算,成本约为200美元。它是世界上第一个微处理器芯片,以它为核心组成的MCS-4计算机,标志了世界第一台微型计算机的诞生。微机概念:以大规模、超大规模构成的微处理器作为核心,配以存储器、输入/输出接口电路及系统总路线所制造出的计算机。划分阶段的标志:以字长和微处理器型号。第一代4位和低档8位机Intel4004第二代中高档8位机8080/8085、Z80、MC6800第三代16位机Intel8086、Z8000、MC6800第四代32位机80386、80486第五代64位机IntelPentium(1971-1973)(1974-1978)(1978-1981)(1981-1992)(1993后)特点:1、速度越来越快。2、容量越来越大。3、功能越来越强。1、1、2微型计算机的应用1、科学计算和科学研究计算机主要应用于解决科学研究和工程技术中所提出的数学问题(数值计算)。

2、数据处理

(信息处理)主要是利用计算机的速度快和精度高的特点来对数字信息进行加工。3、工业控制

用单板微型计算机实现DDC级控制,用卫星计算机实现SCC级监督管理控制,用高档微型计算机实现SCC或低层MIS管理已屡见不鲜。4、计算机辅助系统

计算机辅助系统主要有计算机辅助教(CAI)、计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机集成制造(CIMS)等系统。

5、人工智能

人工智能主要就是研究解释和模拟人类智能、智能行为及其规律的一门学科,包括智能机器人,模拟人的思维过程,计算机学习等等。其主要任务是建立智能信息处理理论,进而设计可以展现某些近似于人类智能行为的计算系统。1、1、3微型计算机的分类按应用对象分为:1、单片机:又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:它主要是将微处理器、部分存储器、输入输出接口都集成在一块集成电路芯片上,一块芯片就成了一台计算机2、单板机:将计算机的各个部分都组装在一块印制电路板上,包括微处理器/存储器/输入输出接口,还有简单的七段发光二极管显示器、小键盘、插座等。功能比单片机强,适于进行生产过程的控制。可以直接在实验板上操作,适用于教学。

3、PC机(PersonalComputer):面向个人单独使用的一类微机,实现各种计算、数据处理及信息管理等。1、2计算机中数据的表示和编码

计算机中的数据都是采用二进制形式存储和处理的,二进制数只有两个数字0和1,这与我们日常生活中所使用的十进制数是不同的。

1、2、1计算机中常用的进制数

人们最常用的数是十进制数,计算机中采用的是二进制数,同时有的时候为了简化二进制数据的书写,也采用八进制和十六进制表示方法。下面将分别介绍这几种常用的进制。

1、十进制数

十进制数是大家熟悉的,用0,1,2,…,8,9十个不同的符号来表示数值,它采用的是“逢十进一,借一当十”的原则。

2、二进制表示法基数为10的记数制叫十进制;基数为2的记数制叫做二进制。二进制数的计算规则是“逢二进一,借一当二”。

二进制表示数值方法如下:

NB=±Ki*2i其中:Ki=0或1ni=-m例:二进制数1011.1表示如下:(1011.1)B=1*23+0*22+1*21+1*20

+1*2-1运算规则:加法运算:0+0=00+1=11+0=11+1=10(逢二进一)减法运算:0-0=010-1=1(借位)1-0=11-1=0乘法运算:0*0=00*1=01*0=01*1=1除法运算0/1=01/1=13、八进制表示法八进制数是基数为八的计数制。八进制数主要采用0,1,2,…,7这八个阿拉伯数字。八进制数的运算规则为“逢八进一,借一当八”。八进制表示数值方法如下:

NO=±Ki*8i其中:Ki=0、1、2、3、4、5、6、7ni=-m例:(467.6)O=4*82

+6*81

+7*80+6*8-14、十六进制表示法基数为16,用0-9、A-F十五个字符来数值,逢十六进一。各位的权值为16i。二进制表示数值方法如下:

NH=±Ki*16i其中:Ki=0-9、A-Fni=-m例:(56D.3)H=5*162

+6*161+13*160+3*16-11、2、2进制间的转换1、二进制数和十进制数之间的转换(1)、二进制数转换为十进制数方法:按二进制数的位权进行展开相加即可。例:11101.101=1×24+1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=16+8+4+0+1+0.5+0.25+0.125=29.875

(2)、十进制数转换为二进制数方法:A、将整数部分和小数部分分别进行转换,然后再把转换结果进行相加。B、整数转换采用除2取余法:用2不断地去除要转换的数,直到商为0。再将每一步所得的余数,按逆序排列,便可得转换结果。C、小数转换采用乘2取整法:每次用2与小数部分相乘,取乘积的整数部分,再取其小数部分乘2直到小部分为0。将所取整数顺序放在小数点后即为转换结果。例:将(136)D转换为二进制数。

2136余数(结果)低位

268----------0234----------0217----------028----------124----------022----------021----------00----------1高位转换结果:(136)D=(10001000)B例:将(0.625)D转换为二进制数。0.625*2

1.25*2

0.5*2

1.0

取整:高位低位转换结果:(0.625)D=(0.101)B2、二进制数和八进制数、十六进制数间的转换(1)、二进制数到八进制数、十六进制数的转换A、二进制数到八进制数转换采用“三位化一位”的方法。从小数点开始向两边分别进行每三位分一组,向左不足三位的,从左边补0;向右不足三位的,从右边补0。B、二进制数到十六进制数的转换采用“四位化一位”的方法。从小数点开始向两边分别进行每四位分一组,向左不足四位的,从左边补0;向右不足四位的,从右边补0。例:将(1000110.01)B转换为八进制数和十六进制数。

1

000110.01001

000110.010

(106.2)O二进制数到十六进制数的转换:(1000110.01)B=1000110.0101000110.0100(46.4)H(2)、八进制、十六进制数到二进制数的转换方法:采用“一位化三位(四位)”的方法。按顺序写出每位八进制(十六进制)数对应的二进制数,所得结果即为相应的二进制数。例:将(352.6)o转换为二进制数。

352.6011101010110=(11101010.11)B1、2、3数的定点与浮点表示对R进制数NR=±S*R±E,可以有很多表示方法。如:十进制数:265.78可以有:265.78、2657.8*10-1、0.26578*103

、2.6578*102等。1、定点数表示法一般采用两种简单的约定:定点整数和定点小数。

(1)、定点整数A、带符号整数:某个N位二进制数,其最高位为符号位,其它N-1位为数值部分:

NfNn-2Nn-3……N2N1N0符号位

数值部分

小数点B、无符号整数:所有的数位都用来表示数值。

Nn-1Nn-2Nn-3……N3N2N1N0

数值部分小数点(2)、定点小数用最高位表示符号,其它N-1位表示数值部分,将小数点定在数值部分的最高位左边。

NfNn-2Nn-1……N2N1N0符号位

数值部分

小数点

2、浮点数表示浮点数:小数点在数据中的位置可以左右移动。

N=±S*R±E在计算机内,存储的格式:

EfE(m位)

SfS(n位)

阶码部分

尾数部分其中:Ef:阶码,表示阶码的符号

E:阶码,指出小数点的位置

Sf:数码,数值的符号位

S:尾数,决定数值的精度1、2、4机器数的表示机器数:数值数据在计算机中的编码。机器数的真值:机器数所代表的实际数值。常用的编码方案:原码、反码、补码。1、原码表示码原码:用最高位表示符号,其中:0----正、1----负,其它位表示数值的绝对值。定义:

[X]原=X0〈=X〈1定点小数

1+X-1〈X〈=0[X]原=X0〈=X〈=2n-1定点整数

2n+1+X-(2n-1)〈=X〈=0例:求X1=0.1011,X2=-0.1011的原码表示。(8位)[X1]原

=X1=01011000[X2]原=1+X2=11011000小数点位置例:求X1=1011,X2=-1011的原码。(8位)[X1]原=00001011[X2]原=10001011小数点位置0的表示形式(8位)[+0]原=00000000[-0]原=10000000特点A、原码与真值的对应关系简单。B、0的编码不唯一,处理运算不方便。2、反码表示法反码:最高一位表示符号,数值位是对负数取反。[+0]反=00000000[-0]反=1111111[+1100111]反=01100111[-1100111]反=100110003、补码表示法正数的补码和原码相同。负数的补码=反码+1。例:求0.1011和-0.1011的补码。(8位)[0.1011]补=[0.1011]原=01011000[-0.1011]补=[-1011000]反+1=10100111+1=10101000[0]补=[+0]补=[-0]补=000000001、2、5计算机中常用的编码1、ASCII码

常用的编码方式为美国标准信息交换(AmericanStandardCardforInformationInterchange,ASCII码)。

2、BCD码

BCD码是一种用4位二进制数字来表示一位十进制数字的编码,也成为二进制编码表示的十进制数(BinaryCodeDecimal),简称BCD码。表1-2示出了十进制数0-15的BCD码。

BCD码有两种格式:(1)压缩BCD码格式(PackedBCDFormat)

用4个二进制位表示一个十进制位,就是用0000B-1001B来表示十进制数0-8。例如:十进制数4256的压缩BCD码表示为:0100001001010110B(2)非压缩BCD码格式(UnpackedBCDFormat)用8个二进制位表示一个十进制位,其中,高四位无意义,我们一般用xxxx表示,低四位和压缩BCD码相同。例如:十进制数4256的非压缩BCD码表示为:

xxxx0100xxxx0010xxxx0101xxxx0110B

1、3微型计算机的一般概念

1、3、1中央处理器的组成中央处理器(CPU)由运算器和控制器组成。1、运算器:计算机中加工和处理数据的功能部件。功能:(1)、对数据进行加工处理,主要包括算术和逻辑运算,如加、减、乘、与、或、非运算等。

(2)、暂时存放参与运算的数据和中间结果。ALU数据寄存器1#数据寄存器2#存储器外设2、控制器控制和指挥计算机内各功能部件协同动作,完成计算机程序功能。由程序计数器(IP)、指令寄存器(IR)、指令译码器(ID)和时序信号发生器组成。(1)、程序计数器(IP):程序指令所在单元地址。(2)、指令寄存器(IR):保存当前正在执行的一条指令。(3)、指令译码器(ID):将指令的操作码翻译成机器能识别的命令信号。(4)、时序信号发生器:根据指令译码器(ID)产生的命令信号产生具体的控制信号。3.寄存器陈列包括一组通用寄存器组和专用寄存器。通用寄存器用于暂存参加运算的一个操作数,例如数据寄存器可以用来存放8位或16位的二进制操作数。这些操作数可以是参加操作的数据,操作的中间结果,也可以是操作数的地址,大部分算术和逻辑运算指令都可以使用这些数据寄存器。专用寄存器通常有指令指针IP或程序计数器PC和堆栈指针SP等

1、3、2微型计算机的组成ABDBCBCPU

存储器I/O接口外设(微型计算机组成框图)1、微处理器微处理器(CPU)是大规模集成电路技术做成的芯片,芯片内集成有控制器、运算器和寄存器等相关部件,完成对计算机系统内各部件进行统一协调和控制。2、存储器功能:存放程序和数据。存储器内存(主存)外存(辅存)RAMROMSRAMDRAMROMEPROME2PROM软盘、硬盘、光盘3、I/O设备和I/O接口(1)、I/O设备:微机配备的输入/输出设备(外设)。标准输入/输出设备(控制台):键盘和显示器(CRT)。I/O设备输入设备输出设备键盘鼠标扫描仪、数码相机显示器打印机绘图仪(2)、I/O接口:连接外设备和系统总线,完成信号转换、数据缓冲、与CPU进行信号联络等工作。显示器卡:完成显示器与总线的连接。声卡:完成声音的输入/输出。网卡:完成网络数据的转换。扫描卡:连接扫描仪到计算机。调制解调器卡:模拟信号与数字信号相互转换。键盘接口、打印机接口等。232接口:串行数据接口。USB接口:通用串行接口。4、系统总线(1)、总线:传递信息的一组公用导线。(2)、系统总线:从处理器引出的若干信号线,CPU通过它们与存储器或I/O设备进行信息交换。系统总线分为:(A)、地址总线:传递地址信息的总线,即AB。CPU在地址总线上输出将要访问的内存单元或I/O端口的地址,该总线为单向总线。内存容量的计算:16条地址线可访问216=64KB。

20条地址线可访问220=1MB。

1K=1024B1M=1024KB1G=1024MB

(B)、数据总线:传递数据信息的总线,即DB。在CPU进行读操作时,内存或外设的数据通过数据总线送往CPU;在CPU进行写操作时,CPU数据通过数据总线送往内存或外设,数据总线是双向总线。(C)、控制总线:传递控制信息的总线,即CB。控制总线的方向:一部分是从CPU输出:通过对指令的译码,由CPU内部产生,由CPU送到存储器、输入/输出接口电路和其它部件。如时钟信号、控制信号等。另一部分是由系统中的部件产生,送往CPU,如:中断请求信号、总线请求信号、状态信号。控制总线的部件(总线主控设备):

CPU和DMA控制器。被总线控制的部件(总线控制设备):

存储器和I/O设备。总线的使用特点:1、在某一时刻,只能由一个总线主控设备来控制总线,其它总线主控设备此时必须放弃对总线的控制。2、在连接系统的各个设备中,在某一时刻只能有一发送者发送信号,但可以有多个设备从总线上同时获得信号。3、通过总线插槽来接口板连接。1、3、3微型计算机系统的组成一个微型计算机系统包括硬件系统和软件系统。硬件和软件的结合,才能使计算机正常工作运行。

计算机硬件系统是一个为执行程序建立物质基础的物理装置,称为硬件或裸机。

计算机软件系统指为运行、管理、应用、维护计算机所编制的所有程序及文档的总和。依据功能的不同,软件分为系统软件和应用软件两大类。

1、3、4微型计算机的工作过程在进行计算前,应做如下工作:(1)、用助记符号指令(汇编语言)编写程序(源程序);(2)、用汇编软件(汇编程序)将源程序汇编成计算机能识别的机器语言程序;(3)、将数据和程序通过输入设备送入存储器中存放。完成5+6=?的程序:MOVA,05H/B0H05H

;把05送入累加器AADDA,06H/04H06H

;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送至数据寄存器DR。(7)、数据寄存器DR将其内容送至指令寄存器IR中,经过译码CPU“识别”出这个操作码为“MOVA,05H”指令,于是控制器发出执行这条指令的各种控制命令。PCARALUABDRIRIDPLA00H100H200B0H0105H0204H0306H04F4H34读命令B0H56B0H7控制信号(取第一条指令操作示意图)2、执行指令阶段的执行过程:(1)、将程序计数器(PC或IP)的内容送地址寄存器AR。(2)、程序计数器PC的内容自动加1变为02H,为取下一条指令作好准备。(3)、地址寄存器AR将01H通过地址总线送至存储器地址译码器译码,选中01H单元。(4)、CPU发出“读”命令。(5)、所选中的01H单元的内容05H读至数据总线DB上。(6)、经数据总线DB,读出的05H送至数据寄存器DR。(7)、由控制码计算机已知到读出的是立即数,并要求将它送入累加器A中,所以数据寄存器DR通过内部总线将05H送入累加器A中。PCARALUABDRIRIDPLA02H101H200B0H0105H0204H0306H04F4H34读命令05H567控制信号05H(执行第一条指令操作示意图)习题1.微型计算机按照字长和微处理器芯片作为每个阶段的标志,将微型计算机分为哪几个阶段?2.计算机的特点是什么?主要有哪些应用领域?3.计算机是由哪几部分组成的?阐述每部分的作用。4.画图说明计算机执行指令ADDAL,06H的工作过程。5.将下列各十进制数转换成为二进制数(最多保留6位小数)(1)221(2)12.375(3)123.25(4)1236.以十六进制形式,给出下列十进制数对应的8位二进制补码表示。(1)46(2)-46(3)-128(4)1277.给出下列十进制数对应的压缩和非压缩BCD码形式。(1)58(2)1624第二章微处理器

通过本章的学习,读者应该掌握以下内容:8086/8088微处理器的结构及指令执行的操作过程8086/8088在最大和最小模式下引脚功能8086的操作时序80x86的实地址方式和虚地址方式

2、18086/8088微处理器2、1、18086/8088微处理器的结构及执行程序的操作过程8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个5V电源和一个时钟,时钟频率为5MHz

。8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。它具有包括乘法和除法的16位运算指令,所以能处理16位数据,还能处理8位数据。8088有20根地址线,所以可寻址的地址空间达220即1M字节。AHALBHBLCHCLDHDLSPBPDISI通用寄存器运算寄存器ALU标志执行部分控制电路123456CSDSSSESIP

内部寄存器I/O控制电路地址加法器20位16位8位指令队列缓冲器外总线执行部件总线接口部件8086CPU结构图1、总线接口部件功能:(1)、从取指令送到指令队列。(2)、CPU执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。总线接口部件的组成:(1)、四个段地址寄存器

CS,16位代码段寄存器;

DS,16位数据段寄存器;

ES,16位附加段寄存器;

SS,16位堆栈段寄存器。(2)、16位指令指针寄存器IP(PC)。(3)、20位的地址加法器。(4)、六字节的指令队列缓冲器。说明:(1)、指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以指令下一条指令(流水线技术)。提高CPU效率。(2)、地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。2、执行部件作用:(1)、从指令队列中取出指令。(2)、对指令进行译码,发出相应相应的控制信号。(3)、接收由总线接口送来的数据或发送数据至接口。(4)、进行算术运算。执行部件的组成:(1)、四个通用寄存器AX、BX、CX、DX。四个通用寄存器都是16位或作两个8位来使用。(2)、专用寄存器SP------堆栈指针寄存器BP------基址指针寄存器DI-------目的变址寄存器SI-------源变址寄存器(3)、算术逻辑单元ALU

完成8位或者16位二进制算术和逻辑运算,计算偏移量。(4)、数据暂存寄存器协助ALU完成运算,暂存参加运算的数据。(5)、执行部件的控制电路从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。(6)、标志寄存器16位寄存器,其中有7位未用。D15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为03、8086/8088CPU执行程序的操作过程(1)、20位地址的形成,并将此地址送至程序存储器指定单元,从该单元取出指令字节,依次放入指令队列中。(2)、每当8086的指令队列中有2个空字节,8088指令队列中有1个空字节时,总线接口部件就会自动取指令至队列中。(3)、执行部件从总线接口的指令队列首取出指令代码,执行该指令。(4)、当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。(5)、执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。2、1、28086/8088微处理器的引脚功能根据所连的存储器和外设规模的不同,使它们可以在两种模式下工作:

系统的最小模式:只有一8086/8088CPU。系统的最大模式:有两个或两个以上的CPU,一个为主CPU8086/8088,另一个为协CPU8087/8089。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。T1T2T3TWT4总线周期

而当系统规模较大时,要求有较强的驱动能力,这样就需要两个获两个以上的微处理器。其中有一个是主处理器8086或8088,其它的处理器称为协处理器,它们协助主处理器工作。例如8088便通过总线控制器8288来形成各种控制信号。如图所示,为8086CPU和8088CPU的引脚信号图。共有40条引脚线,这些引脚线用来输出或接收各种信号:地址线,数据线,控制线和状态线,电源线和定时线。

由于8088微处理器是一种准16位机。其内部结构基本上与8086相同,其信号也与8086基本相同,只是有一些引脚的功能有所不同,在这里,我们将以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解。

01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7HIGH(SSO)MN//MX/RDHOLD(/RQ//GT0)

HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。(8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。(8086)AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。(8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用,分时工作。2、地址/状态总线A19/S6-A16/S3A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出状态信息。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。S4、S3组合所对应的段寄存器情况

S4S3段寄存器

00当前正在使用ES01当前正在使用SS10当前正在使用CS11当前正在使用DS3、控制总线(1)、/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHEA0总线使用情况

00从偶地址单元开始,在16位数据总线上进行字传送

01从奇地址单元开始,在高8位数据总线上进行字节传送

10从偶地址单元开始,在低8位数据总线上进行字节传送

11无效S7:8086中无定义。

8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。

(2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)、/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)、M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。(5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)、/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)、/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。(10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)、ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)、DT//R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。(13)、/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)、HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)、MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。(17)、CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)、QS1、QS2:指令队列状态信号,输出。

QS1QS2含义

00无操作

01将指令首字节送入指令队列

10队列为空

11将指令其余字节送指令队列(2)、S2、S1、S0:总线周期状态信号,三态输出。

S2、S1、S0状态信号的编码

S2S1S0操作过程产生信号

000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无

100取指令/MRDC101读存储器/MRDC110写存储器/AMWC111无作用无(3)、/RQ//GT1、/RQ//GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)、/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。2、1、38086/8088系统存储器的组织和堆栈1、8086/8088系统存储器的组织8086/8088是16位的微处理器,在组成存储系统时,总是使偶地址单元的数据通过AD0

~

AD7传送,而奇地址单元的数据通过AD8~

AD15传送,所有的操作可以是按字节为单位也可以是按字为单位来处理的,但8086/8088系统中的存储器是以8位(一个字节)为单位对数据进行处理的。因此每个字节用一个唯一的地址码表示,这称为存储器的标准结构。

需要说明的是,在存储器中,任何连续存放的两个字节都可以称为一个字。存放时,其低位字节可从奇数地址开始,这种方式称为非规则方式,奇数地址的字称为非规则字。其高位字节可从偶数地址开始,这种方式称为规则方式,。将偶数地址的字称为规则字。

(2)8086存储器的分段结构

由于8086/8088有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为任意数量的段,其中每一段最多可达寻址216(64K)字节。

8086CPU把1M字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段的长度为64K字节。

8086CPU中有四段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基址,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段。(3)8086存储器的逻辑地址和物理地址存储器中的每个存储单元都可以用两个形式的地址来表示:实际地址(或称物理地址)和逻辑地址。实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址。逻辑地址在程序中使用,即段地址:偏移地址

。(4)物理地址的形成物理地址有两部分组成:段基址和偏移地址。

8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存储器物理地址的计算方法CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系2、堆栈堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。

(1)堆栈的概念

堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则

。(2)堆栈的组织堆栈指示器SP,他总是指向堆栈的栈顶堆栈的伸展方向既可以从大地址向小地址,也可以从小地址向大地址。8086/8088的堆栈的伸展方向是从大地址向小地址。

2、28086总线的操作时序在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。

指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。T1T2T3TWT4总线周期2、2、28086的时序8086的总线时序包括以下一个部分:(1)、系统复位。(2)、存储器读操作。(3)、存储器写操作。(4)、中断响应操作。(5)、输入输出周期。(6)、空转周期。总线操作总线读操作:CPU从存储器或外设读取数据。总线写操作:CPU将数据写入存储器或外设。1、存储器读周期总线周期包括:T1、T2、T3、(TW)、T4机器周期。(1)、T1周期M//IO信号:从存储器读还是从I/O设备中读数据;AD15-AD0、A19/S7-A16/S3:确定20位地址;/BHE:选择奇地址存储体选择。ALE:地址锁存信号,以使地址/数据线分开。(2)、T2状态A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU不否连在总线上。AD15-AD0:高阻状态。/RD:由高电平变为低电平,开始进行读操作。/DEN:变低电平,启动收发器8268,做好接收数据的准备。(3)、T3状态若存储器或I/O端口已做好发送数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15-AD0上读取数据。(4)、TW状态在T3状态,存储器或外设没有准备好数据,不能在T3状态将数据放到总线上,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到数据准备好READY=1为止。TW状态时总线的动作与T3时相同。(5)、T4状态CPU对数据总线进行采样,读出数据。CPU往存储器或I/O设备写数据的时序如下页所示:CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址输出数据输出/RDDT//R/DENCPU从存储器或I/O端口读取数据的时序2、存储器写周期(1)、T1状态M//IO信号:对存储器写还是对I/O设备中写数据;AD15-AD0、A19/S7-A16/S3:确定20位地址;/BHE:选择奇地址存储体选择。ALE:地址锁存信号,以使地址/数据线分开。DT//R:为高电平,指示收发器8286发送数据,写操作。(2)、T2状态A19/S6-A16/S3:出现S6-S3状态信号。决定段寄存器、IF状态、8086CPU不否连在总线上。AD15-AD0:发出16位数据。/WR:由高电平变为低电平,开始进行写操作。/DEN:变低电平,启动收发器8268,做好发送数据的准备。(3)、T3状态若存储器或I/O端口已做好接收数据准备,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU将AD15-AD0上数据写入到存储器或I/O设备中。(4)、TW状态在T3状态,存储器或外设没有准备好接收数据,使READY=0,则CPU在T3和T4之间插入一个或几个TW状态,直到设备准备好READY=1为止。(5)、T4状态在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储器或I/O设备的写操作。3、输入/输出周期8086与外设通讯,也即从外设输入数据,或把数据输出给外设的时序,与CPU同存储器之间的通讯时序,几乎完全相同,只是IO/M信号应为高。所以我们就不赘述。

4、空转周期8086只有在CPU于存储器或外设要传送指令或操作时,才能执行如上所述的总线周期,若CPU不执行总线周期,则总线接口执行空转操作。CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址输出数据输出/WRDT//R/DENCPU往存储器或I/O端口写数据的时序5、中断响应周期中断响应周期:从CPU中止现行程序转中断服务程序这一过程。中断响应周期要用两个总线周期。第一个响应周期:使AD15-AD0、/BHE/S7、A19/S6-A16/S3悬空。第二个响应周期:外设向数据总线上输送一个字节的中断类型号。每一响应周期的T1状态输出一个高电平脉冲,作为地址锁存信号。CLKT1T2T3T4T1T2T3T4第一中断响应周期第二中断响应周期ALE/INTAAD7-AD08086中断响应周期的时序图6、总线保持和响应周期(保持响应信号HLDA

)7、系统复位产生:RESET端上的高电平维持4个时钟周期,可使CPU复位。CPU复位:PSW、DS、ES、SS、IP等寄存器,指令队列[被清零。CS寄存器设置为FFFFH。注:由于复位后,IF=0,处关中断状态,所以在初始化程序中应开中断,使CPU可响应中断请求。当RESET由高电平变低电平7个机器周期后,CPU开始从FFFF0处执行程序。8086的复位时序:CLKRESET输入RESET内部三态门浮空8086CPU复位后总线信号:AD15-AD0:A19/S6-A16/S3:/BHE/S7:S2、S1、S0:/LOCK、/RD、/INTA:ALE、HLDA、QS0、QS1:/RQ//GT0:/RQ//GT1:高阻状态低电平高电平2、3

80x86的工作模式主要介绍一下实地址方式和保护虚地址方式。2、3、1实地址方式具有32条地址线的微处理器只有低20条地址线起作用,能寻址1M字节的物理地址。

实地址方式和保护虚地址方式的区分是由控制寄存器CR0的最低位PE位决定的。若PE位为0,则工作在实地址方式;若PE位为1,工作在保护虚地址方式

;实地址方式下,采用类似于8086的体系结构。归纳起来,有如下几个特点:

①寻址机构、存储器管理、中断处理机构和8086一样

②操作数默认长度为16位,但允许访问处理器的32位寄存器组,在使用32位寄存器组时,指令中要加上前缀以表示越权存取。

③不用虚拟地址的概念,存储器容量最大为1M字节;采用分段方式,每段大小固定为64K字节,存储段可以彼此覆盖,即一个64K字节的段如未用完,另一个段可以覆盖未用的存储区。

④实地址方式下,存储器中保留两个固定区域,一个为初始化程序区,另一个为中断向量区。前者为FFFF0H—FFFFFH,后者为00000—003FFH。

⑤在实地址方式下,运行的程序不分特权等级,实际上,实地址方式下的程序相当于工作在特权级0,除保护虚地址方式下的一些专用指令外,所有其他指令都能在实地址方式下运行。2、3、2保护虚地址方式在保护方式下,全部32根地址有效,可寻址达4G字节的物理空间;支持多任务,一个任务可运行多达16KB个段,每个段最大可为4G字节,故一个任务最大可达64MM字节的虚拟地址,能快速的进行任务切换和任务保护环境;在保护方式运行的程序分为4个特权级:0、1、2、3,操作系统核心运行在最高特权等级0,用户程序运行在最低特权等级3。

4级特权保护结构

如图所示:应用程序3级常用扩展程序内核0级2级系统服务程序1级系统和应用程序分离1、保护方式下的寻址机制在保护方式下,一个存储单元的地址也是由段基地址和段内偏移量两部分组成。在保护方式下,段基地址也是32位的,所以就不能由段寄存器的内容直接形成32位的段基地址,而是要经过转换。于是在内存中就有一个表,每一个内存段对应着表中的一项,此项中包含32位的段基地址。在80x86中,一个段用一个8字节的描述符来描述,多个描述符构成一个表,称为描述表。

由描述符中所规定的段基地址加上32位的段内偏移量就可以寻址一个存储单元,如图所示。段寄存器偏移量

访问权

界限

基地址

存储器操作数段内基址段界}选择段大到4GB2、描述符表和描述符(1)描述符表描述符表定义了访问存贮器的一种数据结构,是存放在存贮器空间中的一种特殊数据段,其表项是由段描述符或其他类型的描述符构成的,每个描述符占8个字节。分为三种类型:全局描述符表(GDT)局部描述符表(LDT)中断描述符表(IDT)。(2)描述符在保护虚地址方式下的每一个段,都有一个相应的描述符。描述符由8个字节组成,包含了此段的基地址(32位)、段的大小(20位)、段的类型等一些主要特性。在80x86中的描述符有两大类:段描述符:代码段和数据段描述符

系统描述符:特种数据段和控制描述符

习题

1.总线接口部件有哪些功能?请逐一说明。8086的总线接口部件有那几部分组成?2.状态标志和控制标志又何不同?程序中是怎样利用这两类标志的?8086的状态标志和控制标志分别有哪些?3.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?4.从引脚信号上看,8086和8088有什么不同?5.什么是最小模式和最大模式?它们在用途上有什么不同6.信号的作用是什么?试说明当起始地址为奇地址、偶地址一次读写一个字节和一个字时,和A0的状态。7.根据8086CPU的存储器读写时序图,请说明:

(1)地址信号应在哪些时间内有效?

(2)读、写动作发生在什么时间内?

(3)为什么读与写数据的有效时间长短不一样?

(4)什么情况下才要插入Tw周期?它能否加在T1,T2之间?8.在总线周期的T1、T2、T3、T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态Tw?Tw在哪儿插入?怎样插入?9.画出8086最小模式的读周期时序。10.什么叫描述符?他们分为哪几种?各描述符的主要功能是什么?第三章微型计算机指令系统

指令系统是微处理器(CPU)所能执行的指令的集合,它与微处理器有密切的联系,不同的微处理器有不同的指令系统。在本章中我们主要讲解INTEL公司生产的8086/8088CPU的寻址方式以及各种指令系统,并通过具体实例讲述了各条指令的功能和使用方法。通过本章的学习,读者应该掌握以下内容:

•3种操作数的寻址方式

•常用指令的格式、功能、以及对标志位的影响

3、18086/8088的寻址方式操作码操作数汇编指令:操作码:指令操作类型;操作数:指令所需操作数或操作数的地址;操作数可以有一个,也可以有两个,一个源操作数,一个目的操作数。例:MOVAX,CX;将CX的内容送入AX中。本章主要介绍8086/8088的指令系统以及在指令中为取得操作数地址所使用的寻址方式。

3、

1、1立即寻址方式指令操作数部分直接给出指令的操作数,操作数与操作码一起存入代码段中。立即数有8位和16位。例:MOVAL,5;源操作数为立即寻址指令执行后,AL=05H,8位数据05H存入AL寄存器。例:MOVAX,3064H;源操作数为立即寻址指令执行后,AX=3064H,16位数据3064H存入AX寄存器。3、1、2寄存器寻址方式寄存器寻址方式的操作数是寄存器的值,指令中直接使用寄存器名,包括8位或16位通用寄存器和段寄存器。可使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、BP;其中:AX、BX、CX、DX可分成两8位使用。例:MOVAX,CX;(AX)(CX)

MOVAL;(AL)(AL)-13、1、3内存寻址方式在内存寻址方式中,操作数是某个内存单元的内容(值),指令中给出的是内存单元的有效地址EA(即偏移地址),段地址通常在隐含的某个段寄存器中。1、直接寻址方式

直接寻址方式的操作数的形式为:Variable或[Variable]在直接寻址方式中,操作数的偏移地址(有效地址EA)直接用指令加以指定(有直接地址值和标号两种形式),它存放在代码段中指定操作码之后,但操作数一般存放在存储器的数据段中,所以必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。段地址隐含的由DS指定,也可以ES指定,但需在指令中指明。最后存储器地址为:DS:偏移地址或ES:偏移地址。例:MOVAX,ES:[2000H]将ES:2000H单元内容送入AX。例:MOVAX,LABLE或MOVAX,[LABEL]将标号为LABLE(存放操作数单元的符号地址),即DS:LABLE中的内容送入AX。2、寄存器间接寻址寄存器间接寻址方式的操作数形式为:[reg]操作数的有效地址包含在基址寄存器BX,基址指针BP或一个变址寄存器(SI或DI)中。寄存器间接寻址要用方括号括起来,以便与寄存器操作数相区别。例:MOVAX,[BX];将由BX决定的存储单元的内容送到AX寄存器。0000000100020003BBAATAB:AXAHALAABB间接寻址数据段0001BX操作数在存储器中,指令中寄存器内容作为操作数所在单元的有效地址。

(BX)(SI)(DI)(BP)有效地址=

段寄存器为DS段寄存器为SS物理地址计算方法:物理地址=(DS)*16+(BX)或(SI)或(DI)物理地址=(SS)*16+(BP)例:已知:(DS)=2100H,(DI)=2000H

指令:MOVAX,[DI];(AX)((DI))物理地址=(DS)*16+(DI)

=2100H*16+2000H=21000H+2000H=23000H

指令结果:将23000H单元内容送AL中,将23001H单元内容送AH中。3、寄存器相对寻址方式操作数在存储器内,指令中寄存器内容与指令指定的位移量(DISP)之和作为操作数所在单元的有效地址。

(BX)

DISP8

(SI)

(DI)(BP)DISP16有效地址=

段寄存器为DS段寄存器为SS+物理地址=(DS)*16+(BX)+DISP8(SI)、(DI)、DISP16类同。物理地址=(SS)*16+(BP)+DISP16例:

如果(DS)=3000H,(SI)=2000H,COUNT=3000H,则执行指令MOVAX,CONUT[SI],求出此种寻址方式对应的有效地址和物理地址。有效地址=2000H+3000H=5000H物理地址=(DS)*16+5000H=30000H+5000H=35000H4、基址变址寻址方式:操作数在存储器中,指令将基址寄存器(BX或BP)与变址寄存器(SI或DI)内容之和作为操作数所在存储单元的有效地址。

(BX)(SI)(BP)(DI)有效地址=+物理地址=(DS)*16+(BX)+(SI)或(DI)物理地址=(SS)*16+(BP)

温馨提示

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

评论

0/150

提交评论