汇编语言程序设计(第二版)第2章课件

上传人:我*** 文档编号:141880884 上传时间:2020-08-13 格式:PPT 页数:52 大小:300KB
返回 下载 相关 举报
汇编语言程序设计(第二版)第2章课件_第1页
第1页 / 共52页
汇编语言程序设计(第二版)第2章课件_第2页
第2页 / 共52页
汇编语言程序设计(第二版)第2章课件_第3页
第3页 / 共52页
汇编语言程序设计(第二版)第2章课件_第4页
第4页 / 共52页
汇编语言程序设计(第二版)第2章课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《汇编语言程序设计(第二版)第2章课件》由会员分享,可在线阅读,更多相关《汇编语言程序设计(第二版)第2章课件(52页珍藏版)》请在金锄头文库上搜索。

1、第章 微型计算机的内部结构,2.1 微型计算机的构成 2.2 8086/8088MPU的内部结构 2.3 内存与物理地址 2.4 PC/XT微型计算机的内存分配 2.5 逻辑地址到物理地址的变换 习题二,2.1 微型计算机的构成,电子计算机由中央处理器(简称CPU)、内部存储器(简称内存)和输入输出设备(简称IO设备)三大部件构成。CPU是计算机的核心,人们交给计算机的命令总是由CPU解释并执行,CPU还负责产生各种控制信号,令各部件协调工作,使整个系统构成一个有机整体。内存是高速的数据存储部件,它与CPU一起构成了计算机的主机部分。输入输出设备用来完成计算机内部与系统外部的数据交换。IO设备

2、中,输入设备用来把人的操作命令、外部采集到的数据传递到计算机的内部,典型的输入设备有键盘、鼠标、扫描仪等;输出设备则用于把计算机内部数据送出来变成人可以理解的形式,或者变成控制工业机器的信号,典型的输出设备有显示器、打印机、绘图仪等。用于长期保存大量数据的设备是外部存储器,磁盘、光盘是典型的外存。,CPU的规模是划分计算机档次的一个决定性指标,我们把集成在一个芯片上的CPU又称为微处理器,简称MPU,8088和8086芯片是Intel公司较早生产的两种同档次的MPU,在此之后,该公司又陆续推出了人们熟知的80286、80386、80486和Pentium等一系列性能越来越好的MPU。以一个MP

3、U芯片为核心构成的计算机称为微型计算机,也叫微电脑,由8088或8086为MPU构成的微机就是20世纪80年代初出现并流行一时的PC/XT型个人电脑,当今正在走入家庭的微电脑大多数则是以Pentium或同档次MPU作为主芯片。,计算机的协调工作是靠三大部件之间有机连接并相互配合来实现的。三大部件之间的逻辑连接关系可以用图2.1来表示。图2.1中的双线是各部件之间进行数据传递的公共通道,是计算机的系统总线。MPU和内存直接连接在系统总线上。D1、D2、Dn表示若干个外部设备,各个外设性能各异,控制外设的信号也各不相同。为了分担MPU的工作,在每个外设与总线之间往往需要一个称为“接口”的连接部件。

4、通常情况下,MPU掌握总线的控制权,可以选择连接在总线上的另外一个部件与之进行数据传递,数据传递的方向也由MPU决定。系统总线从功能上划分为数据总线、地址总线和控制总线三部分,每一部分又包含多根信号线。,图2.1 微型计算机各部件的连接,2.2 8086/8088MPU的内部结构,微型计算机的核心部件MPU从总体功能上讲由三部分构成:运算器、控制器、寄存器组。运算器完成各种运算,包括人们熟知的加、减、乘、除等算术运算,以及与、或、非等逻辑运算。一个MPU中通常包含多个寄存器,寄存器用于临时存放数据。控制器负责整个系统的协调。8086/8088微处理器的内部结构如图2.2所示。,图2.2 808

5、6/8088MPU的内部结构,2.2.1 运算器 运算器(Arithmatical and Logical Unit)是CPU中完成算术运算和逻辑运算的部件,它受内部控制系统发出的信号控制,决定究竟做哪一种操作。操作中涉及的数据可以由其它部件通过内部总线送来,运算结果一方面通过内部总线送到某个寄存器或者送往片外,另一方面运算结果的特征还送往标志寄存器。,具体地说,8086/8088的运算器可以完成以下操作: (1) 加减法。两个字节型数据相加减,或者两个字型数据相加减,计算结果的类型与操作数类型相同。 (2) 乘法。两个字节型数据相乘,得到字型的乘积;或者两个字型数据相乘,得到双字型的乘积。

6、(3) 除法。字型的被除数除以字节型的除数,商和余数都是字节型;或者是双字型的被除数除以字型的除数,商和余数都是字型。 (4) 逻辑与、逻辑或、逻辑异或。两个字节型数据进行对应位的逻辑运算,结果仍然是字节型数据;或者两个字型数据运算,结果仍然是字型。 (5) 逻辑非。对一个字节型或字型数据的每个二进制位进行逻辑非运算。,2.2.2 通用寄存器组 寄存器是CPU内部临时存放数据的部件,它的存取速度比内存更快,可以把数据通过内部总线送往运算器进行运算,或者接收来自运算器的结果。充分利用CPU的内部寄存器可以加快程序的执行速度。8086/8088有8个16位的字型通用寄存器,各个寄存器都有自己特定的

7、功能,特定的指令可以使用这些功能,而不执行特定指令时,这些寄存器都可以用来临时存放数据。,各寄存器的名称及特定功能是: (1) AX累加器。这是算术运算的主要寄存器,用于存放操作数或运算结果。另外,对外设操作的指令都使用AX存放数据。 (2) BX基地址寄存器。用于存放操作数的偏移地址。 (3) CX计数寄存器。用于循环指令、移位指令及串操作指令的计数控制。 (4) DX数据寄存器。在乘除法运算中,与AX组合在一起存放双字型数据。在对外设操作的指令中,DX还用于存放外设端口地址。,(5) SI源变址寄存器。在串操作指令中用于存放源操作数的偏移地址。 (6) DI目的变址寄存器。在串操作指令中用

8、于存放目的操作数的偏移地址。 (7) BP栈基地址寄存器。用于存放堆栈中操作数的偏移地址。 (8) SP栈顶指针。用于记载栈顶的当前位置(偏移地址)。,上述每个寄存器都是16位的,可以存放一个字型数据。但8086/8088还支持8位数据操作,因而需要有临时存放8位二进制数的字节型寄存器。通用寄存器中的AX、BX、CX和DX,每一个又可以拆成高位部分和低位部分两个8位寄存器使用,代号分别是AH、AL、BH、BL、CH、CL、DH、DL。往AX中存放一个数据将对AH和AL都有影响;反之,对AH的赋值将改变AX的高8位部分而不影响AL,对AL的赋值会改变AX的低8位部分但不影响AH。,2.2.3 标

9、志寄存器 标志寄存器又称作程序状态字(Program Status Word,简记作PSW),共16位,每一位有各自的用途,8086/8088使用其中的9位,用于存放当前程序执行的状况和运算结果的特征,各标志位的分布如图2.3所示。,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,图2.3 标志寄存器中各标志位的分布,在8086/8088中使用的9个标志位可分为两组:一组为条件标志位,记载运算结果的特征,包括CF、ZF、SF、OF、PF、AF等6个标志位;另一组是控制标志位,用于记载MPU当前工作状态,包括TF、IF、DF等3个标志位。,1条件标志位 (1) CF进

10、位标志。记录加法运算的进位值,或者减法运算的借位值。 (2) ZF零标志。记录运算结果是否为。 (3) SF符号标志。记录运算结果的正负情况。 (4) OF溢出标志。记录运算结果是否超出带符号数的表示范围。 (5) PF奇偶标志。记录字节型运算结果中有奇数个1还是偶数个1。 (6) AF辅助进位标志。记录加/减法运算中后4位向前有无进/借位。,2控制标志位 (1) TF单步中断允许标志,又称跟踪标志。表示系统当前是否允许单步中断。 (2) IF外中断屏蔽标志。表示系统当前是否允许可屏蔽外中断。 (3) DF方向标志。表示串操作按增量方向还是按减量方向进行。 这三个标志位与8086/8088的运

11、行状态密切相关,TF和IF涉及中断系统,将在第8章中介绍,DF影响串操作指令的执行方式,将在第7章中加以说明。,2.2.4 段寄存器组 这是一组专用寄存器,共有4个,每个都是16位,用于存放逻辑地址中的段地址部分(逻辑地址的概念将在本章稍后的部分讲述)。各个段寄存器的名称和代号分别是: (1) CS代码段段地址寄存器,或称指令段段地址寄存器。 (2) DS数据段段地址寄存器。 (3) ES附加段段地址寄存器。 (4) SS堆栈段段地址寄存器。,2.2.5 指令指针 指令指针的代号是IP。这也是一个16位的寄存器,专门用于存放下一条指令所在的偏移地址。它与CS配合,用来确定程序的下一条指令在内存

12、的哪个字节。,2.2.6 地址加法器 这是8086/8088中专用于一种特殊加法运算的部件,加法的两个操作数都是16位的,参与加法运算的两个操作数一个来自内部总线,另一个来自段寄存器。运算结果则有20位,这20位二进制数将作为MPU对内存操作时的物理地址送往地址总线。 地址加法器能进行加法运算,但并不是运算器的一部分,而是8086/8088中专门用来计算物理地址的部件,需要把它和运算器严格区分开。普通的8 位或者16位二进制数的加法运算是由运算器完成,而逻辑地址到物理地址的计算则是由地址加法器执行,两个部件各司其事,互不干扰,相互间没有直接联系。,2.2.7 其它部件 1预取指令队列 CPU完

13、成一条指令可分为两个阶段:首先是从存储器中取出指令,称“取指阶段”,而后是完成该指令所规定的操作,称“执行阶段”。在取指阶段CPU要通过系统总线从内存中取出指令,而在执行阶段,如果执行的操作不涉及内存和外设,系统总线就会出现空闲。为了提高系统的效率,8088和8086被设计成“流水线”式,在一条指令的执行阶段,利用总线空闲时间从内存取出下一条指令,放入预取指令队列中,这样实现了原本该依次执行的两条指令在时间上的部分重叠,从而缩短了执行整个程序的时间。,2内部控制系统 这是CPU中控制器的一部分。计算机的任何动作都是在一定的信号控制之下完成的,CPU内部控制系统就担负着产生有关运算器、通用寄存器

14、组、标志寄存器等内部部件的控制信号的任务,并且还要保证这些信号保持足够长的有效时间,以及安排信号在时间上的先后关系。内部控制系统总是根据当前指令去产生相应的控制信号。,3系统总线控制系统 计算机处理的对象是数据,处理数据的依据是指令,无论是数据还是指令都存放在内存中,放在8086/8088芯片之外,因此需要MPU通过总线对内存进行取出、存入等操作。这些操作都需要MPU在系统总线上发出相应的信号才能完成。系统总线控制系统就负责把MPU的内部需要转换成对外操作信号,并按一定的时间长短和先后次序送上系统总线。,8088和8086是两种性能非常接近的MPU,内部结构也大致相同,指令系统更是完全一样。两

15、者的细微差别之一是8088的预取指令队列有4字节,而8086却有6字节。更重要的差异在于两者的外部性能,8086支持16位数据总线,一次可以与片外交换16位的字型数据,而8088只支持8位数据总线,每次只能从片外读入或向片外写出8位数据。但8088也有存取16位操作数的有关指令,这类指令的片外数据存取操作总是被分成两个 8位来完成,因而执行效果上要比8086慢。正因为8088对内可以进行16位数据操作,而对外只有8位数据传递能力,所以被称作是“准16位”的。不过,8088和8086的这些差异对于汇编语言程序设计而言是没有影响的,因而本书后面的章节中不再区分这两种芯片,并在提到芯片型号的时候只写

16、8088。,2.3 内存与物理地址,内存(主要是RAM)是计算机在开机状态下暂时保存数据的存储部件,它具有记忆能力。内存中的数据都以二进制的形式存在。存储元(又叫存储细胞)是内存的最小单位,每个存储元能够存放一个二进制位,即存放一个0或者1。但是这样的存储单位太小,不利于数据的组织,因而不太适用。现在通用的方法是把8个存储元“捆绑”在一起,构成一个1字节存储器。一台计算机的内存所包含的字节型存储器的总数称为它的内存容量,目前,一台常见的微型计算机的内存容量在1 MB到1 GB之间。,一台微机的内存中包含了很多个1字节存储器,那么又如何对它们进行管理呢?具体地说,往内存中存放一个8位二进制数到底放在内存的哪个地方,从内存中取出1字节数据又取自哪个字节呢?对此,8088系统的解决方法是把所有的字节型存储器统一编排号码,从0开始往后连续编号,这个号码就是内存的物理地址。在此基础之上,如果MPU要向内存存入一个8位二进制数必须交代清楚以下3件事: (1) 物理地址。用来指明对内存的哪一个字节进行操作,这需要MPU在地址总线上给出地址信号。,(2) 8位

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号