微机原理与接口技术(Chap2-2)_第1页
微机原理与接口技术(Chap2-2)_第2页
微机原理与接口技术(Chap2-2)_第3页
微机原理与接口技术(Chap2-2)_第4页
微机原理与接口技术(Chap2-2)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

*1第三讲2015.10.12主讲人:

王建中课程网址:/auto/wjjk/Email:wangjz@Tel:86919060级精品课建设微机原理与接口技术*2复习8086CPU内部结构*38086CPU4039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET12345678910111213141516171819208086CPU引脚及功能复习*4第二章8086系统结构内容提要微型计算机的发展概况8086CPU内部结构8086CPU引脚及功能8086CPU存储器组织8086CPU系统配置8086CPU时序*5主要内容存储器地址的分段8086存储器的分体结构堆栈的概念§2-38086存储器组织§2-48086系统配置最小模式最大模式有关术语存储器分类*61.

位(Bit)2.

字节(Byte)3.

字和字长(Word)4.

位编号5.

指令、指令系统和程序6.

寄存器7.

译码器有关术语*71.位(Bit)

指计算机能表示的最基本最小的单位在计算机中采用二进制表示数据和指令,故:位就是一个二进制位,有两种状态,“0”

和“1”2.字节(Byte)

相邻的8位二进制数称为一个字节1Byte=8Bit

如:11000011B01010111B有关术语*83.字和字长

字长是每一个字所包含的二进制位数。常与CPU内部的寄存器、运算装置、总线宽度一致

字是CPU内部进行数据处理的基本单位。有关术语*9例

某CPU内含8位运算器,则:参加运算的数及结果均以

8位

表示,最高位产生的进位或借位在8位运算器中不保存,而将其保存到标志寄存器中10110101被加数(8位)

+10001111加数(8位)进位

111111101000100

和(8位)进位运算器被加数加数标志寄存器运算器和有关术语*10字长是衡量CPU工作性能的一个重要参数。

不同类型的CPU有不同的字长。如:Intel4004是4位

8080是8

8088/8086/80286是

16

80386/80486、Pentium是32

4位8次

8位4次16位2次32位1次

10101100011001011001100001000011

被加数

+

11000011110000110001010101011000

加数进位

111111111111

01110000001010001010110110011011

和*11位

1或01位字节

110000118位字

110000110011110016位双字100001100111100110000110011110032位高字节低字节

高字低字把一个字定为16位,1Word=2Byte一个双字定为32位1DWord=2Word=4Byte有关术语*124.位编号为便于描述,对字节,字和双字中的各位进行编号。从低位开始,从右到左依次为0、1、2...注意:从0开始编号。编号7654321010100010D7D6D5D4D3D2D1D0A7A6A5A4A3A2A1A0字节数据Data地址Address有关术语*13D0D7D15D8158101010101010101070A0A7A15A8字的位编号为15~0双字的位编号依此类推,为31~0有关术语*145.指令、指令系统和程序指令是CPU能执行的一个基本操作。如:取数、加、减、乘、除、存数等指令系统是CPU所能执行的全部操作。不同的CPU,其指令系统不同。程序是用户在使用计算机时,为要解决的问题,用一条条指令编写的指令序列。

构成程序的指令在存储器中一般都是顺序存放, 要改变这种顺序性,必须由转移指令操作。有关术语*156.寄存器

寄存器是用来存放数据和指令的一种基本逻辑部件。根据存放信息的不同,有指令寄存器、数据寄存器、地址寄存器等。地址总线AB数据总线DB控制总线CB标志寄存器指令寄存器数据寄存器控制电路指令译码器地址寄存器指令指针寄存器R1R2R3R4寄存器组运算器IPCPU结构示意图有关术语*167.译码器

译码器是将输入代码转换成相应输出信号的逻辑电路。指令是CPU能执行的一个基本操作;CPU的设计者对CPU的所有指令进行编码;用户用编码形式的指令进行编程,程序存放在内存中;CPU从内存取来编码形式的指令,对指令进行译码,发出执行该指令功能所需的信号。有关术语*17CPU总线内存标志寄存器地址总线AB程序数据数据总线DB控制总线CB地址译码器、、、指令1指令2指令3指令4…….…….数据1数据2数据3…….指令寄存器数据暂存器控制电路指令译码器地址寄存器指令指针寄存器R1R2R3R4寄存器组运算器IP

根据译码内容的不同,可分为:

指令译码器:

将指令代码转换成该指令所需的各种控制信号。

地址译码器:

将地址信号转换成各地址单元相应的选通信号。*18存储器分类存储器内存外存高速缓冲存储器Cache随机存取存储器(RAM)只读存储器(ROM)硬盘软盘磁带光盘静态RAM(SRAM)动态RAM(DRAM)只读存储器(ROM)可编程ROM(PROM)可擦除PROM(EPROM)电可擦除可编程ROM(E2PROM)*19§2-38086存储器组织存储器地址的分段存储器的要求:以字节为单位存储信息,每个存储单元有唯一的地址。分段管理的原因:

8086/8088系统的存储空间1M字节(即220,要20位物理地址),CPU内部寄存器只有16位(只能寻址64K字节)。整个存储中间分成许多逻辑段。1.存储器地址的分段0段000000FFFF100001FFFF

F0000FFFFF1段…15段64KB64KB64KB*20一、存储器地址的分段§2-38086存储器组织

1.存储器地址的分段…逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点……逻辑段1≤64KB逻辑段2≤64KB逻辑段3≤64KB逻辑段4≤64KB00000FFFFF0段1段…15段2段64KB64KB64KB00000H0FFFFH10000H1FFFFH20000H2FFFFHF0000HFFFFFH64KB*21分段管理的特点:每段容量不超过64K字节;允许各个逻辑段在整个存储空间中浮动;段和段之间可以连续,也可以分开或重叠存储单元的实际地址:段地址+段内偏移地址(IBMPC机规定段的首地址必须从每小段(paragraph)的首地址开始,机器规定每16字节为一小段,所以段起始地址必须能被16整除)。1.存储器地址的分段一、存储器地址的分段§2-38086存储器组织

…逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点……逻辑段1≤64KB逻辑段2≤64KB逻辑段3≤64KB逻辑段4≤64KB00000FFFFF*22物理地址形成地址范围:00000~FFFFFH物理地址=段基址×16十偏移地址其中:

段基址:放在段寄存器地址(CS、DS、ES、SS)

偏移地址:从段地址开始的相对偏移位置(放在指令指针寄存器IP、16位通用寄存器中)逻辑地址:段基址+偏移地址组成(无符号的16位二进制数,程序设计时用)物理地址:存储器的绝对地址,是CPU访问存储器的实际寻址地址。一、存储器地址的分段§2-38086存储器组织

*23物理地址形成段基址指每段的起始地址,根据前述PC机规定,它必须是每小段的首地址,即必须能被16整除,则其低4位一定为0。一、存储器地址的分段§2-38086存储器组织

0小段1小段…65535小段2小段16B16B16B00000H0000FH00010H0001FH00020H0002FHFFFF0HFFFFFH16B*24物理地址形成段基址00001503210偏移地址150地址加法器物理地址190段基址指每段的起始地址,根据前述PC机规定,它必须是每小段的首地址,即必须能被16整除,则其低4位一定为0。从段寄存器中取出段基址,将其左移4位,再与16位偏移地址相加,就得到了物理地址(由总线接口部件BIU的地址加法器完成)。一、存储器地址的分段§2-38086存储器组织

*25逻辑地址来源访问存储器的操作类型不同,BIU所使用的逻辑地址来源也不同。操作类型隐含段地址替换段地址偏移地址取指令CS无IP堆栈操作SS无SPBP为间接SSCS、DS、ES有效地址EA存取变量DSCS、DS、ES有效地址EA源字符串DSCS、DS、ESSI目标字符串ES无DI一、存储器地址的分段§2-38086存储器组织

*26逻辑地址来源IPCSSI,DI或BXDSSP或BPSS代码段数据段堆栈段取指令(IP)堆栈操作(SP)读/写存储器操作数或访问变量字符串寻址(源操作数放在DS:SI中,目标操作数放在ES:DI中)

一、存储器地址的分段§2-38086存储器组织

*27§2-38086存储器组织8086存储器的分体结构分体结构概念两个存储体:偶地址存储体+奇地址存储体,各为512KByte,共1MByte.512K×8位奇地址存储体(A0=1)512K×8位偶地址存储体(A0=0)00001H00003H00005H

FFFFFH00000H00002H00004H

FFFFEH220-1==220-2*28二、8086存储器的分体结构§2-38086存储器组织

分体结构概念两个存储体:偶地址存储体+奇地址存储体,各为512KByte,共1MByte.512K×8位奇地址存储体(A0=1)512K×8位偶地址存储体(A0=0)000010000300005

FFFFF000000000200004

FFFFE220-1==220-2与数据总线低8位相连,当A0=0时,选择访问偶地址存储体,从低8位数据总线读/写一个字节。与数据总线高8位相连,当A0=1时,选择访问奇地址存储体,从高8位数据总线读/写一个字节。*29分体结构概念BHEA0操作总线使用情况00从偶地址开始读/写一个字AD15~AD001从奇地址单元读/写一个字节AD15~AD810从偶地址单元读/写一个字节AD7~AD011无效01从奇地址开始读/写一个字AD15~AD810AD7~AD0BHE、A0编码含义二、8086存储器的分体结构§2-38086存储器组织

*30分体结构概念34000FF0010000101

0010300104125201字节存储:一个字节存放一个单元。如单元00100H中的内容为34H,表示为(00100H)=34H。

字存储:一个字存于相邻两个单元,

低位字节在低地址,高位字节在高地址,字单元的地址以低位地址表示。如:(00100H)=1234H,(00103H)=0152H一个字可以从偶地址开始存放,也可以从奇地址开始存放。二、8086存储器的分体结构§2-38086存储器组织

*31分体结构读写操作00000FF10000100011000200103100041122330000000FF100001000110002001031000411223311从偶地址读一个字节从奇地址读一个字节8086CPU访问存储器时,以字为单位进行,并从偶地址开始。二、8086存储器的分体结构§2-38086存储器组织

*32分体结构读写操作00000FF10000100011000200103100041122333322从偶地址读一个字若字单元地址从偶地址开始,只需访问一次存储器

从奇地址读一个字00000FF10000100011000200103100041122332211若字单元地址从奇地址开始,要访问两次存储器

二、8086存储器的分体结构§2-38086存储器组织

*33存储器与总线连接D7~D0

数据总线D15~D8

数据总线D7~D0奇地址存储体SELA18~A0D7~D0偶地址存储体SELA18~A0A0BHEA19~A1地址总线8086系统D7~D0数据总线D7~D01M×8位存储体A19~A0A19~A0地址总线8088系统0000000001FFFFF二、8086存储器的分体结构§2-38086存储器组织

*34§2-38086存储器组织堆栈的概念堆栈的定义堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的一种数据结构。堆栈段构成及特点

堆栈段由段定义语句在存储器中定义的一个段;可以在存储器1M字节空间内任意浮动;容量小于等于64K字节;段基址由堆栈寄存器SS指定;栈顶由堆栈指针SP指定,SP指向当前栈顶单元。C0000

C1000sp向上增长栈底*35三、堆栈的概念§2-38086存储器组织

堆栈的工作方式及特点

工作方式:“先进后出”,指令为PUSH、POP,栈顶指针SP的变化由CPU自动管理。操作特点:以字为单位进行操作,低字节在偶地址,高字节在奇地址,每访问一次堆栈就能压入/弹出一个字。地址增长方式一般是向上增长:栈底设在存储器的高地址区,堆栈地址由高向低增长。C0000

C1000sp向上增长栈底*36C0000

C1000…高位数sp向上增长栈底执行PUSH指令:CPU自动修改指针SP-2SP;使SP指向新栈顶;将低位数据压入(SP)单元;将高位数据压入(SP+1)单元。三、堆栈的概念§2-38086存储器组织

低位数sp高位数执行PUSH指令:CPU自动修改指针SP-2SP;使SP指向新栈顶;将低位数据压入(SP)单元;将高位数据压入(SP+1)单元。*37三、堆栈的概念§2-38086存储器组织

当执行POP指令:CPU先将当前栈顶SP(低位数据)和SP+1(高位数据)中的内容弹出;然后再自动修改指针,使SP+2SP,SP指向新栈顶。C0000

C1000…高位数sp向上增长栈底低位数sp高位数*38C0000

C1000sp向上增长栈底【例1】假如当前SS=0C000H。堆栈段<64K,

SP=1000H,指出当前栈顶在存储器中的位置。当前栈顶在存储器中的地址为

0C000H×16+1000H=0C1000

温馨提示

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

评论

0/150

提交评论