微机原理 第2章_第1页
微机原理 第2章_第2页
微机原理 第2章_第3页
微机原理 第2章_第4页
微机原理 第2章_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、1,本章内容,2.1 80 x86系列微处理器是8086的延伸 2.2 8086的功能结构 2.3 8086微处理器的执行环境,2,2.1 80 x86系列结构微处理器与8086,80 x86系列结构微处理器已经经历许多代,但从使用者(包括程序员)的角度来看,它是以8086处理器为基础,是一个兼容的微处理器系列,是8086在功能上 和性能上的延伸。,3,2.1.1 8086功能的扩展,1. 从16位扩展为32位,2. 从实模式至保护模式,x86结构微处理器有两种主要的工作方式: 实地址方式和保护虚地址方式。 实地址方式是为了与8086兼容而设置的方式。 在实地址方式下,具有32条地址线的x86

2、结构微处理器只有低20条地址线起作用,能寻址1MB的物理地址;此时,x86系列结构微处理器相当于一个快速的8086,虽然可以使用32位的数据寄存器,但远不能充分发挥x86结构微处理器的全部功能。,4,2.1.1 8086功能的扩展(续),3. 片内存储管理单元 ( MMU),保护虚地址方式是IA-32结构微处理器的主要工作方式,在此方式下,全部32条地址线都能寻址,故可寻址高达4GB的物理存储器,内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存

3、使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。,5,2.1.1 8086功能的扩展(续),4. 浮点支持,以前的FPU是一种单独芯片,如8087、80287、80387分别与80868088、80286、80386配合使用。 在486之后,英特尔把FPU与集成在CPU之内。,早期的计算机CPU不具备浮点运算能 力, 从16位微处理器开始,在16位微处理器的基础上设计了与之相配合的专门用于浮点运算的协处理器-FPU:Float Point Unit,浮点运算单元,6,8086是x86系列系列处理器的基础。学习x86系列处理器必须学习掌握8086,也只能从8086入手。本

4、书从8086入手来学习与掌握x86系列处理器。 本书重点介绍8086微处理器的结构、指令、汇编语言及相应的外设接口。,BACK,7,2.2 8086的功能结构,功能结构:,指从程序员和使用者的角度看到的结构,按其功能来划分。,8086从功能上分成两大部分:,总线接口单元BIU(Bus Interface Unit) 执行单元EU (Execution Unit),8,总线接口单元BIU (Bus Interface Unit),功能:,负责8086CPU与存储器和I/O设备间的信息传送。,9,执行单元EU (Execution Unit),功能:,负责指令的执行。,10,8位微处理器与8086

5、执行程序的方式,11,2.3 8086微处理器的执行环境,在8086处理器上执行的程序或任务都有一组执行 指令的资源用于存储代码、数据和状态信息。这 些资源构成了8086处理器的执行环境。,12,2.3.1基本执行环境概要,地址空间 基本程序执行寄存器 堆栈 I/O端口,13,2.3.2 基本的程序执行寄存器,寄存器是微处理器内部暂存数据的存储单元,以名称表示。,8个通用寄存器 1个指令指针寄存器 1个标志寄存器 4个段寄存器,8086微处理内部共有14个寄存器:,14,1. 通用寄存器,8086的16位通用寄存器是: AXBXCXDX SIDIBPSP 其中前4个数据寄存器都还可以分成高8位

6、和低8位两个独立的寄存器 8086的8位通用寄存器是: AL BLCLDL(低8位) AH BHCHDH(高8位 ) 对其中某8位的操作,并不影响另外对应8位的数据,15,AX (Accumulator) 累加器 BX (Base) 基址寄存器 CX (Count) 计数寄存器 DX (Data) 数据寄存器 SI (Source Index)是源变址寄存器 DI (Destination Index)是目的变址寄存器 SP (Stack Pointer)为堆栈指针寄存器 BP (Base Pointer)为基址指针寄存器,通用寄存器的名称与符号,数据寄存器,指针寄存器,16,3、 FLAGS

7、(标志)寄存器,16位FLAGS寄存器包含一组状态标志、一个控制标志和两个系统标志。图2-7定义了此寄存器中的标志。,17,(1)状态标志位,记录算术和逻辑运算结果的一些特征。由微处理器根据计算的结果自动设置。为转移指令提供转移控制条件。,(1)符号标志位SF( Sign Flag,位7),(2)零标志位ZF( zero flag,位6),与运算结果的最高位相同。,如运算结果为0,则ZF=1,否则,ZF=0。,(3)溢出标志OF( overflow flag,位11),当算术运算结果超出了机器能表示的范围称为溢出,此时OF=1,否则OF=0。,18,整数范围,8个二进制位表达无符号数整数的范围

8、:0255 16位表达的范围:065535,无符号数整数,有符号数整数(处理器内部以补码表示),8个二进制位表达有符号数整数的范围:128127 16位表达的范围:3276832767,19,溢出的判断,判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据(包括减法的被减数)符号相反时,产生溢出;因为,此时的运算结果显然不正确 即:(+)+(+)=(-) (-)+(-)=(-) (+)-(-)=(-) (-)-(+)=(+) 其他情况下,则不会产生溢出,OF=1,20,(5)辅助进位标志位AF( auxiliary flag,位4),

9、如果第三位往第四位有进位或借位,则AF=1,否则,AF=0。,(4)进位标志位CF(carry flag,位0),如运算时最高位产生进位或借位,则CF=1,否则,CF=0。,状态标志位,21,(6)奇偶标志位PF(parity flag,位2),若运算结果的低8位中所含的1的个数为偶数,则PF=1,否则,PF=0。,状态标志位,PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作,22,(2)控制标志位,由程序员根据需要用指令来设置。,方向标志DF(Direction Flag,位10) 用于串操作指令中,以控制地址的变化方向。第3章介绍!,23,(3)系统标志,中断允许标志I

10、F(Interrupt-enable Flag,位9),追踪标志TF(Trace Flag,位8),用于控制外部可屏蔽中断是否可以被处理器响应,第8章介绍!,用于控制处理器是否进入单步方操作式,由程序员根据需要用指令来设置。,24,溢出和进位,溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确; 溢出标志表示有符号数运算结果是否超出范围,有溢出,说明有符号数的运算结果不正确。,25,如何运用溢出和进位,应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位标志;如果认为是有符号数,则要注意溢出标

11、志。,26,4、指令指针寄存器IP,指令指针寄存器IP(Instruction Pionter) 总是存放下一条要执行指令在当前代码段中的偏移地址。,注意:用户程序不能直接访问指令指针寄存器。,27,2.3.3存储器组织,存储器是微处理器外部存放程序及其数据的空间 程序及其数据可以长久存放在外存,在程序需要时才进入主存 主存需要利用地址区别,28,数据信息的表达单位,计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1,记做b 字节Byte:8个二进制位,D7D0,记做 字Word:16位,2个字节,D15D0 双字DWord:32位,4个字节,D31D0,29,数据的存储格式,低地址

12、,地址,30,存储单元及其存储内容,每个存储单元都有一个编号,被称为存储器物理地址(简称PA) 每个存储单元存放一个字节的内容,00002H单元存放有一个数据34H 表达为(00002H)34H,31,多字节数据存放方式,多字节数据在存储器中占连续的多个存储单元: 存放时,低字节存入低地址,高字节存入高地址(低对低,高对高); 表达时,用它的低地址表示多字节数据占据的地址空间。,上图中00002H“字”单元的内容为: (00002H) = 1234H 00002H“双字”单元的内容为: (00002H) = 78561234H,32,8086存储器的分段结构,Intel 8086微处理器采用了

13、分段的方法对存储器进行管理。,33,问题的提出,字长为16位的CPU能计算的最大存储器空间为216=65536=64K,但8086CPU有20根地址线,可以接上最大存储容量为220=210*210=1024K=1M个存储单元,那么字长为16位的CPU如何能访问完这1M个字节的存储空间呢?,34,解决方法,把1M字节的存储器的地址分成若干个逻辑段(Segments),每个段的大小根据需要决定,最大为64KB,这样,段内地址可以用16位二进制表示(216=64K)。,IBM-PC机对段的起始地址有所限制, 段不能起始于任意地址,段的起始地址必须满足:在十六进制表示的地址中,最低位是0,在二进制表示

14、的地址中,最低4位是0。,35,段地址(16位):,偏移地址(16位):,段地址和偏移地址,段起始地址的高16位。存放在段寄存器中。,在段内相对于段起始地址的偏移值,取决于指令的寻址方式。,段地址说明逻辑段在主存中的起始位置。,36,逻辑地址:,物理地址和逻辑地址概念,是程序中使用的地址,它由段地址和段内偏移地址所组成,段地址与段内偏移地址都为16位的二进制数。,物理地址(20位):,也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,由20位二进制表示。,CPU需要访问存储器时,采用物理地址。20位物理地址在地址总线上传输。,37,分段后在用户编程时,采用逻辑地址,形式为,逻辑地址表示形式,38,物理地址和逻辑地址的转换,将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址 一个物理地址可以有多个逻辑地址,39,物理地址和逻辑地址的转换,由于段地址一般存放在段寄存器,所以物理地址和逻辑地址的转换关系也可表示为:,逻辑地址的形式为,段寄存器:偏移地址,40,段寄存器,8086有4个16位专门存放段地址的段寄存器 CS-(Code Segment)(代码段)指明代码段的起始地址 SS- (Stack Segment)(堆栈段)指明堆栈段的起始地址 DS- (D

温馨提示

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

评论

0/150

提交评论