第二章80X86计算机组织课件.ppt

上传人:小飞机 文档编号:1473911 上传时间:2022-11-29 格式:PPT 页数:70 大小:2.14MB
返回 下载 相关 举报
第二章80X86计算机组织课件.ppt_第1页
第1页 / 共70页
第二章80X86计算机组织课件.ppt_第2页
第2页 / 共70页
第二章80X86计算机组织课件.ppt_第3页
第3页 / 共70页
第二章80X86计算机组织课件.ppt_第4页
第4页 / 共70页
第二章80X86计算机组织课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第二章80X86计算机组织课件.ppt》由会员分享,可在线阅读,更多相关《第二章80X86计算机组织课件.ppt(70页珍藏版)》请在三一办公上搜索。

1、第2章 80 x86计算机组织,2.1 80X86微处理器2.2基于微处理器的计算机系统构成2.3中央处理机2.4存储器2.5外部设备,2.1 80X86 计算机的基本结构微型计算机硬件系统结构主要是由三部分组成,它们是:中央处理器CPU、存储器、输入输出设备,如图1所示。,图1 计算机的基本结构,2.1.1中央处理器,中央处理器又称为微处理器,内部由运算器、控制器和寄存器三部分组成。运算器也称为算术逻辑部件,是用来执行指令所要求的算术运算、逻辑运算和数据传送等操作。控制器是控制执行步骤;从内存中取出指令,分析指令的操作码, 完成操作数的存取,发出相应的控制命令等。,2.1.2 总线结构,总线

2、负责传送地址、数据和控制信息,因此包括:数据总线DB(Data Bus)地址总线AB(Address Bus)控制总线CB(Control Bus) 三类总线的主要任务是负责CPU与内存、外存、外部设备交换信息。,1.数据总线DB 数据总线是用来传送数据的。CPU与内存、I/O设备之间通过数据总线传送数据,80 x86系列的数据总线有8位、16位、32位和64位。2.地址总线AB 地址总线是用来传送地址的。内存中的每个字节都对应着一个唯一的地址。地址总线的位数与寻址空间有着直接的关系。例如:8086/8088地址总线20根,则可访问的地址为:220 =1,048,576 = 1M 则8086/

3、8088最大可用的存储空间为1M字节。 3.控制总线CB 控制总线是传送控制信息的。,存储器是计算机的记忆部件,包括内存(主存)和外部存储器(辅助存储器), 存储器中存放的是指令和数据。存储器由若干存储单元构成,存储单元的最小单位是字节。将所有的存储单元按顺序编号,即每一个字节有一个唯一的编号,这些编号称为存储单元的地址(也称为物理地址)。 IBMPC机及其兼容机的存储器系统结构基本是相同的,存储器系统主要分为3个主要部分: 程序暂驻区(TPA)、系统内存区、扩展存储区(XMS),2.1.3 存储器,在微机系统中最常用的外部设备有:键盘显示器打印机外部存储器等CPU与外部设备交换信息是通过I/

4、O接口电路来完成的。,2.1.4 外部设备,外部设备外部设备与主机( CPU 和存储器)的通信是通过外设接口(Interface)进行的,每个接口包括一组寄存器。数据寄存器:存放外设和主机间传送的数据状态寄存器:保存外设或接口的状态信息命令寄存器:保存CPU发给外设或接口的控制命令,外设中每个寄存器有一个端口(Port)地址,构成一个独立于内存的 I / O 地址空间:0000H FFFFH,寄存器分为3类: 通用寄存器 、控制寄存器、段寄存器。如图80X86寄存器组,2.2 80X86 CPU 的寄存器,8086/8088微处理器8086/8088的主要特性:Intel 8086/8088采

5、用高速运算性能的HMOS工艺制造,内含29000个晶体管,封装在标准的40引脚双列直插式塑封管壳内。采用两个+5V电源供电。数据总线: 8086:16位,8088:8位。地址总线:20位,其中8086的低16位与数据总线复用;8088的低8位与数据总线复用。内存空间:20位地址线可直接寻址1MB存储空间。寻址方式:7种基本的寻址方式,提供了灵活的操作数存取方法。,指令系统:100条基本指令除能完成数据传送、算数运算、逻辑运算、控制转移和处理器控制功能外,内部还设有硬件乘除法与串处理指令电路,可以对位、字节、字节串、字串、压缩和非压缩型BCD码等多种数据类型进行处理。 时钟频率:8088: 4.

6、7MHz; 8086: 5MHz; 8086-2:8MHz。 中断功能:可处理内部软件和外部硬件中断,中断源多达256个。工作模式:支持单处理器、多处理器两种模式。,8086/8088的编程结构所谓编程结构:从程序员和使用者的角度来看的结构。这种结构与CPU内部的物理结构和实际布局有区别,8088编程结构如下页图所示,从编程结构图中可以看到,8088分为两个部分:1、总线接口部件 BIU(Bus Interface Unit)2、执行部件EU(Execution Unit),8086CPU的功能结构内部结构组成(1)执行单元(EU)(a)组成16位算术逻辑单元ALU;16位状态标志寄存器FLA

7、G;8个16位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI)16位数据暂存器;EU控制电路;,(b)功能从BIU指令队列中读取指令;由EU控制电路对指令进行译码分析,指出操作性质及对象;在EU中计算出操作数的16位地址偏移量送给BIU,由BIU的形成20位绝对地址;将取来的操作数经系统数据总线送ALU进行指定操作;运算结果经内部总线送到指定位置,(a)部件4个16位段寄存器CS,DS,SS,ES;16位指令偏移地址寄存器IP;6个字节指令队列ISQ;形成20位物理地址的加法器;与EU通讯的内部寄存器;总线控制逻辑;,(2)总线接口单元,(b)功能:实现CPU与存储器或I/O口之

8、间的数据传送。根据CS和IP取指令进入指令队列。由EU从指令队列中取指令,并根据EU请求BIU将20位操作地址传送给存储器;取来操作数经总线控制逻辑传送到内部EU数据总线,由EU完成内部操作;操作结果若EU提出请求,则由BIU负责产生20位实际目标地址,将结果写入存储器里;,(2)总线接口单元,寄存器结构及操作在8086/8088CPU中,把寄存器分成四大类:数据寄存器;地址指针和变址寄存器;段基址寄存器;控制寄存器;,(一)数据寄存器用来存放操作数及中间结果的通用寄存器称为数据寄存器。16位寄存器:AX,BX,CX,DX(可以分成两个8位的使用)8位寄存器:AH,AL,BH,BL,CH,CL

9、,DH,DL有些存储器有特殊功能:如AX和AL为累加器,乘法指令中专用;BX可以作为基址指针,CX为计数寄存器。,AX - 1)作为累加器用,在加法运算中参与运算,结果存于累加其中;2)所有的I/O指令都使用这一寄存器与外部设备传送信息BX - 作为通用寄存器使用,在计算存储器地址的时候,它经常用作基址寄存器CX - 1)作为通用寄存器使用;2)常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器DX -1)作为通用寄存器使用;2)在一些指令中,通常用它来存放数据,所以又称为数据寄存器;3)在做双字长运算时,将DX和AX组合在一起存放双字长数,用DX存放高位字;4)对某些I/

10、O操作时,DX用来存放端口的地址,(二)地址指针和变址寄存器指针寄存器包括堆栈指针寄存器SP(stack pointer)和基数指针寄存器BP(base pointer),变址寄存器包括源变址寄存器SI(source index )和目的变址寄存器DI(destination index)。这4个寄存器都是16位寄存器。这些寄存器在运算过程中也可用来存放操作数(只能以字为单位),但经常的用途是在段内寻址时提供偏移地址。,SP和BP一般与段寄存器SS联用,以确定堆栈段中某一存储单元的地址,SP用以指示栈顶的偏移地址,而BP可作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。SI和DI一般与

11、段寄存器DS联用,以确定数据段中某一存储单元的地址。SI和DI具有自动增量和自动减量的功能,这一点使在串操作指令中用作变址非常方便,SI作为隐含的源变址和DS联用,DI作为隐含的目的变址和ES联用,从而达到在数据段和附加段中寻址的目的。,(三)段基址寄存器段基址寄存器用于存放4个当前段的起始地址。4个段为:代码段CS,数据段DS,堆栈段SS和附加段ES。1、存储器的段8086/8088CPU对可寻址的1MB空间划分为很多个逻辑段,每个逻辑小于64KB,段内地址是连续的。CPU规定4个段寄存器存放当前可寻址的段基址。CS指示当前的代码段;DS指示当前的数据段;SS指示当前的堆栈段;ES指示当前的

12、附加段;,(三)段基址寄存器为了方便编写程序,4个段寄存器是隐含使用的,但也允许段超越,DEBUG 命令的使用(1)1、输入 DEBUG 运行DEBUG程序,显示提示符_ 。 2、退出DEBUG命令:Q 3、显示CPU内部所有寄存器内容和标志位状态:R 显示和修改标志位状态 RF: 4、汇编命令:A 起始地址,若不输入指令打回车键退出A命令。 5、单步命令:T=起始地址 运行指令数,进入子程序内部。6、反汇编命令:U 起始地址 结束地址7、修改寄存器命令:R 寄存器名8、显示内存命令:D 起始地址 结束地址,DEBUG 命令的使用(2)9、运行命令:G=起始地址 结束(断点)地址10、修改内存

13、命令:E 起始地址,连续修改打空格键。打回车键退出E命令。11、文件命名命令:N 盘号:文件名 12、读文件命令:L 内存地址 13、写文件命令:W 内存地址 14、读扇区命令:L 内存地址 盘号(0-A:,1-B:) 扇区号 扇区数 15、写扇区命令:W 内存地址 盘号 扇区号 扇区数 16、内存搬家命令:M 起始地址 结束地址 目的地址,0101 0100 0011 1001+0100 0101 0110 10101001 1001 1010 0011,高位=1,SF=1,NG低8位中偶数为4个,PF=1,PE运算结果不为0,ZF=0,NZ低4位向前有进位,AF=1,AC最高位向前没有进位

14、,CF=0,NC运算结果溢出,OF=1,OV,(五)指令指针寄存器IP1、 指令指针寄存器IP 指令指针寄存器IP始终指向当前代码段(CS)所要取出的下一条指令的地址。每取出一个字节指令后,IP自动加1。可以用转移指令、调用指令及中断和复位等改变IP值。,2.3存储器一个存储单元存放的信息为存储单元的内容字节单元内容:地址00004H的内容为34H,表示为(0004H)=34H。字单元内容:多用偶地址来表示字单元的地址,字的低字节在偶地址上为偶地址,地址00004H的字单元内容为1234H,表示为(00002H)=1234H。如下图所示。某单元内容的内容:某单元的内容为要寻找的单元地址,该地址

15、所指的内容为要寻找的内容。,某单元内容的内容,(0004H)=1234H(1234H)=FFEEH则记(0004H)=FFEEH;两个括号表示内容的内容,即地址0004H单元的内容的内容为FFEEH。,存储单元的的内容:一个存储单元里面存放的有效信息。 由于机器字长是16位,而字数据必须转换为字节数据才能存放到存储器中。所以一个字数据存入存储器中占用连续的二个存储单元:低位字节存入低地址,高位字节存入高地址。字单元的地址采用它的低地址来表示。,存储器的分段8086/8088系统中1MB的存储单元按照00000H至FFFFFH来编址。但CPU的内部寄存器都是16位的,显然用寄存器不能直接对1M字

16、节的内存空间进行寻址,为此引入了分段、物理地址和逻辑地址的概念。1)分段的实现: 8086/8088中将1MB内存分为若干个段(称为逻辑段),每个段最多包含64KB。段与段之间是相互独立的,可以分别寻址。规定每个段的首地址是一个可以被16整除的数(即段起始地址的低4位为0)。因此,可以取20位地址码中的高16位来表示段地址。前已指出,8086/8088 CPU设置了4个段寄存器(CS、DS、SS、ES)。段的位置不受任何限制,段与段之间可以是连续的,可以是间断的,也可以是部分重叠的,甚至可以是完全重叠的。,(1)小段的概念 从0地址开始每16字节为一小段,每个小段的第一个字节的地址为小段的起始

17、地址 对于16位地址总线,段内存储器小段地址如下:如: 0000H,0001H,0002H,000EH,000FH一个小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, FFFEH, FFFFH 其中:第一列就是每个小段的首地址。,(2)每个小段首地址特征: 在二进制表示的地址中,它的低4位二进制一定为零!即在16进制表示的地址中,最低位为0H在1M字节的地址空间,共有64K个小段其首地址为: 二进制数小段地址 16进制数小段地址0000 0000 0000 0000 0000B

18、 0000 0H0000 0000 0000 0001 0000B 0001 0H 1111 1111 1111 1110 0000B FFFE 0H1111 1111 1111 1111 0000B FFFF 0H,(4)逻辑地址: 由段基址和段内偏移地址组成的地址,段基址和段内偏移地址都是16位的无符号二进制数,在程序设计时使用。 存储器管理:将程序中逻辑地址转移为物理地址的机构。(5)逻辑地址和物理地址的关系方法:即把段地址左移4个二进制位再加上偏移地址值形成物理地址,写成: 物理地址= 16d段地址+偏移地址 每个存储单元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址组成。逻辑

19、地址与物理地址概念如下页图所示。,注意: 1、在8088CPU的IBM PC系统中,存储器首尾地址的用途固定。 00000H003FFH共1K内存单元用于存放中断向量。 FFFF0HFFFFFH是存储器底部的16个单元。系统加电复位时,会自动转到FFFF0H单元执行,而在FFFF0H处存放一条无条件转移指令,转向系统初始化程序。 2、IBM PC机对段的起始地址有限制,段的起始地址一定能被16整除,即段不能从任意地址开始:必须从任一小段(paragraph)的首地址开始。,8086/8088的I/O组织I/O接口电路:它就是指CPU与外部设备之间是通信的桥梁,有时简称为接口,接口是用于实现主机

20、与外设传输信息的通道。端口:每个接口芯片上都有一个或几个用于寄存信息的寄存器,为了与CPU的寄存器区别,我们称之为端口。端口地址:和存储单元一样,每一个端口都有唯一确定的地址,称为端口地址。,从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。按存放信息的不同,I/O端口可分为三种类型 数据端口:用于存放CPU与外设间传送的数据信息 状态端口:用于暂存外设的状态信息 控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。CPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成。,2.4

21、80X86 CPU 的工作模式2.4.1 实模式2.4.2 保护模式,2.4.1 实模式1内存地址的分段8086/8088地址总线20根可访问的地址为: 220 =1,048,576 = 1M2分段方法用16位段地址与16位段内地址的迭加形成20位物理地址,放在16位段寄存器内的段地址定义在任意64K字节存储段的起始地址上,段内地址(偏移地址)定义在64K字节存储段内的任意单元。 地址的组合:物理地址=段地址*16D(或10H)+偏移地址,即物理地址等于2进制的16位段地址乘以16(左移4位)加2进制16位偏移地址。为了书写方便一般采用16进制表示地址和数据,则物理地址等于16进制的4位段地址

22、乘以10H(左移1位)加16进制4位偏移地址。 如图2-9所示。,3物理地址、段地址、段内地址和逻辑地址(1)物理地址:与内存单元一一对应的20位2进制(或5位16进制)表示的地址为物理地址。 1MB=00000H FFFFFH每个物理地址代表一个唯一的内存单元。(2)段地址:将1MB的内存空间分成长为64K字节的程序区和数据区为段,每个段用1个16位2进制地址表示。 (3)段内地址:(偏移地址或偏移值):16位2进制段内地址为偏移地址。不同段内的偏移地址是存放在不同的寄存器中.,(4)逻辑地址:用段地址和偏移地址来表示内存单元的地址为逻辑地址,两地址之间用“:”隔开。常写成: 段地址:偏移地

23、址。 例如: 物理地址为00001H逻辑地址为0000H:0001H 当物理地址为00001H时,其逻辑地址为0000H:0001H,段地址为0000H段内地址为0001H。,4逻辑地址与物理地址的换算关系逻辑地址是段地址和偏移地址的组合表示,物理地址是段地址和偏移地址的迭加表示。 物理地址=段地址*16D(或10H)+偏移地址逻辑地址=段地址:偏移地址【例2-7】设逻辑地址为1111H:2222H则物理地址为:1111H10H+2222H=13332H表示:当逻辑地址为1111H:2222H时物理地址为13332H假设段地址1111H为代码段地址,则1111H存放在代码段寄存器CS中,偏移地

24、址2222H就放在指针寄存器IP中。,保护模式下的80 x8680286以上的计算机增加了物理地址空间,如80286提供了16M,80386提供了4GB的地址空间或更多的地址空间,前面介绍的在实模式下的寻址方式是由逻辑地址得到物理地址的,实模式下最大寻址空间只为1MB。在增加了地址空间的情况下,系统首先要解决的问题是如何寻址,因此引出了保护模式的存储器寻址方法。同时在WINDOWS系统下可以提供多任务处理功能,即多个应用程序能同时运行,同时还要对存放在存储器中的代码及数据的共享和保护提供支持。,1保护模式存储器寻址机制在80286CPU以上的微处理器,既可以工作在实模式下也可以工作在保护模式下

25、,如果要工作在保护模式下,要求程序员在程序中指定逻辑地址,机器则采用另外一种间接的方法得到相应的物理地址。因此,对程序员编程来说,并未增加复杂性。在保护模式下,逻辑地址由选择符和偏移地址两部分组成。选择符存放在段寄存器中,但它不能直接表示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从而求得所选存储单元的物理地址。下图所表示的为保护模式存储器寻址的示意图。,在实模式下,段寄存器指示段基地址,即段寄存器存放在当前正在允许程序的段基地址。从图可以看出,在保护模式下段寄存器存放当前正在运行程序的段选择符,通过段描述符表中的描述符间接的形成段基地址,加上偏移地址得到最终的线性地址

26、。此时对于存储器来说不必分段就可以访问到所有的内存地址。在实模式下,段地址是直接通过段寄存器得到的,在保护模式下段地址是间接得到的。另外,保护模式的偏移地址最大可以为32位,最大段长可以从64KB扩大到4GB。,1、指向程序堆栈区的段寄存器是()CS B. DS C.SS D.ES2、存放当前堆栈段栈顶的偏移地址的寄存器是( )A、BP B、SP C、IP D、SS3、存放当前正在执行指令的下一条指令的偏移地址的寄存器是( )A、SP 、ESP B、IP、EIP C、CS D、BP、EBP4、指向程序代码段的段寄存器是( )A、CS B、DS C、SS D、FS5、已知内存中两个字节单元的内容(20000H)10H,(20001H)20H则从字单元20000H中取出的一个字为()A、10H B、20H C、1020H D、2019H,6、已知两个16位字数据4321H和0DCBAH,它们相加后的结果是多少?标志位CF、ZF、SF的值各是多少?7、在实模式下,逻辑地址2F3E:1020H对应的物理地址是多少?该物理地址还有其他逻辑地址吗?试举例说明。8、已知SS=1000H,SP=0100H,现在要求将数据5080H、6172H压入堆栈,然后将栈顶字单元的内容弹出堆栈,画出每步操作的堆栈示意图。,课后作业题,第33面2.2,2.3,2.4,2.5,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号