汇编语言程序设计教程课件.ppt
1,汇编语言程序设计教程,2,内容简介,本书以IBM PC机作为背景系统,介绍微机原理的基础知识及汇编语言程序设计的方法和技术。全书共分9章,第1章和第2章介绍微机基础知识以及80 x86机型的系统结构。第3章详细介绍IBM PC机的寻址方式和指令系统。第4章介绍伪指令、汇编语言程序格式等知识。第5章讲述高级汇编技术,包括宏汇编、条件汇编、重复汇编等。第6章讲述顺序程序设计、分支程序设计、循环程序设计、子程序(过程)设计及参数传递的方法。第7章讲述DOS功能调用和BIOS功能调用知识。第8章是输入/输出程序设计技术。第9章是汇编语言程序设计实验指导。,3,课程的性质与基本要求,汇编语言是能够利用计算机所有硬件特性的一门语言,在涉及到硬件设计的系统中,一般都用汇编语言完成接口部分程序的设计。汇编语言适合于编制在时间和空间要求都很高的程序。本课程的开设,对于训练学生掌握微型计算机的结构、指令的操作过程、汇编语言程序设计技术以及应用汇编语言编制实用程序都有重要的作用。,4,本课程与其它课程的关系,汇编语言是计算机科学专业语言类最基础的课程之一,计算机文化基础、计算机编程基础等作为本课程的前导课程。学好这门课程,可为学习相关的专业课打下基础,它是微机原理及接口技术、操作系统、计算机组成原理、编译原理和单片机原理及应用等的前导课程。,5,第1章 计算机基础知识,计算机的发展及应用计算机的特点与主要技术指标计算机中的信息表示与运算,6,本章内容简介,本章首先介绍计算机的发展、分类、技术指标及应用等方面的知识,然后讨论计算机中的信息表示与信息运算问题。计算机系统内部的信息编码采用二进制,但符号式计算机语言(如汇编语言)支持二进制、八进制、十进制以及十六进制的数据表达,因此涉及到不同进制数据之间的转换问题;在计算机中数值数据的定点数和浮点数表达问题,机器数的原码、反码及补码表示问题;十进制数在机器中通常采用BCD码表示,而字符及字符串通常用ASCII码表示。,7,1.1 计算机的发展及应用,计算机的历史与发展计算机的分类计算机的应用,8,计算机的发展简史,第一台计算机诞生与1946年,遵循于冯诺依曼提出的基本原理,其主要特点为:计算机由运算器、控制器、存储器及输入/输出设备组成。用二进制形式表示数据和指令。采用存储程序原理。机器的工作应该在指令的控制下协调进行。可进行信息的输入和输出。,9,第1代 电子管计算机 19461955年第2代 晶体管计算机 19561963年第3代 集成电路计算机 19641971年第4代 超大规模集成电路计算机 1972?,计算机的发展历程,10,第1代计算机的特点,确立了模拟量可以变换成数字量进行计算,开创了数字化技术的新时代。确立了计算机的基本结构。确定了程序设计的基本方法。首创使用阴极射线管(CRT)作为计算机的字符显示器。,11,第2代计算机的特点,计算机开始用到图形处理领域,开创了计算机处理文字和图形的新阶段。鼠标器问世,使计算机的输入方式发生了重大变化。开始有了通用机和专用机之分,而且通用机的发展势头很大。多种高级语言投入使用。,12,第3代计算机的特点,计算机运算速度提高到每秒运算百万次以上。多种更完善的操作系统推向使用。推出“系列机”的概念,较好地解决了计算机硬件不断更新而软件相对稳定的矛盾。根据计算机的主要性能(字长、速度、容量等)将计算机分成巨型机、大型机、中型机和小型机等不同型号。,13,第4代计算机的特点,半导体存储器问世,迅速取代了磁芯存储器,并不断向大容量、高速度发展。计算机具有了集文字、图形、声音、图像于一体的能力。从集成度来看,计算机使用的半导体芯片的集成度已接近极限,出现了极大、甚大规模集成电路(ULSI、ELSI)。,14,未来计算机的发展方向,超越冯诺依曼结构高速计算机出现生物计算机生机勃勃光学计算机前景光明量子计算机呼之欲出,15,计算机的类型与用途,微型计算机以微处理器为CPU的计算机,如IBM系列微机。工作站高档微机系统,具有多任务及多用户能力。小型机多用户系统,作为集中式的部门级管理计算机。大型通用机通用性强、具有很强的综合处理能力、性能覆盖面广等。巨型机计算机中档次最高的,运算速度最快、性能最高及技术最复杂。服务器网络的普及、集中处理信息的产物。,16,巨型机的发展,第一代巨型机是单指令流多数据流(SIMD)的阵列处理机 AP。第二代巨型机是具有流水线结构的向量机VP。第三代巨型机是多指令流多数据流(MIMD)的共享主存多处理机系统MP。第四代巨型机是大规模并行处理系统MMP。,17,服务器的特点,服务器可以提供信息浏览、电子邮件、文件传输、数据库、打印以及多种应用服务。只有在客户机的请求下才为其提供服务。服务器对客户透明。服务器具有高性能、大容量、高可靠性和可伸展性。,18,计算机软件系统,软件分为系统软件和应用软件。系统软件通常负责管理、控制和维护计算机的各种软硬件资源,并为用户提供友好的操作界面。应用软件是专业人员为各种应用目的而开发的程序。计算机系统是硬件与软件有机结合的产物。,19,计算机语言的发展,第一代语言机器语言(二进制编码)第二代语言汇编语言(符号式)第三代语言 高级语言、算法语言(接近自然语言及面向过程)第四代语言 非过程化语言(面向目标、面向对象)第五代语言智能性语言(具有一定的智能,抽象问题求解),20,操作系统(Operating System),操作系统是计算机中最基本的系统软件,是覆盖在硬件基础上的第一层软件。操作系统管理计算机系统的全部软、硬件资源。组织计算机的工作流程,为用户提供一个使用计算机的工作环境,起到用户和计算机之间的接口作用。操作系统分五大功能模块:进程管理、作业管理、内存管理、设备管理以及文件管理。,21,计算机的应用,科学计算方面数据处理方面实时控制方面人工智能方面计算机辅助设计(CAD)企业管理方面家用电器计算机网络,22,社会的信息化,材料、能源、信息社会的三大要素社会信息化与信息科学技术 通信网络 信息设备 信息资源 人才培养 信息化带动社会现代化 工业、农业及其他领域的信息化,23,计算机病毒,能够引起计算机故障、破坏计算机数据的程序统称为计算机病毒。权威定义:计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。病毒的特性:传染性、未经授权而执行、隐蔽性、潜伏性、破坏性及不可预见性。,24,1.2 计算机的特点与主要技术指标,计算机的主要特点计算机的主要性能指标,25,冯诺依曼机应具有的基本功能,用二进制形式表示数据和指令,因为二进制编码在物理上最容易实现。计算机由运算器、控制器、存储器、输入设备和输出设备五个部分组成。采用存储程序的方式,程序和数据可以在机器中长期记忆保存。机器的工作应当在指令的控制下协调进行,指令由操作码和地址码组成。机器具有数据的运算和处理功能可进行数据的输入、输出。,26,计算机的主要特点,运算速度快运算精度高具有记忆能力极高准确性高度自动化极强的通用性,27,计算机的主要性能指标,机器字长:指计算机能同时进行多少位的二进制数运算。速度:单位时间内能够执行指令的条数,计量单位可用MIPS(每秒百万条指令数)。主频:即主时钟频率,指CPU在单位时间内(秒)产生的时钟脉冲数。存储器的容量:内存储器中能够存储的总字节数。,28,计算机的主要性能指标,存取周期:存储器完成一次数据的读或写操作所需要的时间。可靠性:可用平均无故障时间MTBF和平均故障修复时间MTTR来表示。带宽:计算机的数据传输率,它反映计算机的通信能力。,29,计算机存储器的容量,存储器容量的大小不仅影响着存储程序和数据的多少,而且也影响着运行这些程序的速度。内存储器中能够存储的总字节数称为内存(一般指RAM)的容量。由于存储器的种类很多,所以关心存储器容量也不限于内存的大小,寄存器、高速缓存的大小,还有磁盘、光盘、磁带的容量,以及分散在显示卡、图形卡、视频卡、网络卡等上面的存储器容量都需要关心。存储器的度量单位如下:bit Byte KiloByte MegaByte GigaByte TeraByte位 字节 千字节 兆字节 千兆字节 兆兆字节 8bit 1024B 1024KB 1024MB 1024GB 210B 220B 230B 240,30,1.3 计算机中的信息表示与运算,进位计数制与数制转换定点数与浮点数机器数的编码表示ASCII码和BCD码,31,计算机中的信息表示,计算机最重要的功能是处理信息,这些信息包括数值、文字、符号、语言、图形和图像等。在计算机中,所有处理的信息都必须经过信息数字化处理,即编码,才能成为计算机可以识别和处理的数字信息。编码是指用少量简单的基本符号,按照一定的组合规则,表示出大量复杂多样的信息。二进制的两个数位“0”和“1”正好与逻辑命题的两个值“是”和“否”,或称“真”和“假”相对应,为计算机中实现逻辑运算和程序中的逻辑判断提供了便利的条件。,32,进位计数制与数制转换,1、进位计数制基本概念:基数()、权()、N=Dn-1 Dn-2Rn-2,常用计数制:二进制();八进制();十进制();十六进制()。,33,常用的进位计数制,二进制 R=2 基本符号 0,1八进制 R=8 基本符号 0,1,2,3,4,5,6,7十进制 R=10 基本符号 0,1,2,3,4,5,6,7,8,9十六进制 R=16 基本符号 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,34,进位计数制与数制转换,()二进制、八进制、十六进制转换为十进制数。(按权相加)10101101.101,2222222128328410.50.125 173.625D,、进位计数制间的相互转换,()十进制数转换为二进制、八进制、十六进制。(按取余)36512D,/162282 2282/16142 142/16=8 8/16=0(a0=9)(a1=10)(a2=14)(a3=8)36521D=8EA9H,(3)二进制数与八进制、十进制、十六进制之间的转换。10101001.01101B=,(1010)(1001).(0110)(1000)B A 9 6 8 10101001.01101B=A9.68H,35,定点数和浮点数,1、定点数2、浮点数,定点数的特殊形式:定点整数和定点小数目前微型机中,多采用定点整数形式。,浮点数在机器中的表现形式为:,36,定点数,定点数表示范围受其所采用的码制限制,不同的码制,定点数的表示范围不同。如果计算机采用定点整数表示,则参与运算的数必须都是整数,若参与运算的数是小数,就要在运算前乘以一个比例因子,将小数放大为整数;如果计算机采用定点小数表示,则参与运算的数必须都是小数,若参与运算的数是整数,则也需要在运算前乘以一个比例因子,将整数缩小为小数。同样,对处理后所得到的结果再按此比例因子还原。,37,浮点数,尾数部分给出有效数字的位数,因而决定了浮点数的精度;阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。了提高数据的表示精度,一般采取规格化表示。,38,机器数的编码表示,1、原码2、反码3、补码,数的最高位表示符号位,其余各位表示真值的绝对值。符号位为0表示该数为正数,符号位为1表示该数为负数。,正数的反码与原码相同,负数的反码其符号为仍用1表示,其余数值为则按位取反,用于解决减法转换为加法的问题,简化计算机运算电路。常用方法之一:先取原数反码,再末位加1即得到补码。,39,原码、反码和补码的比较,如果真值x为正数,则有x原=x反=x补。如果真值x为负数,则x原、x反、x补有不同的表示。如果真值x=0,则x补有唯一的编码,x原和x反都有两个不同的编码。定点小数中,原码和反码所能表示数的范围为-1 x 1,补码所能表示的数的范围为-1 x 1。用x原、x反、x补表示的机器数,最高一位表示符号位,正数用“0”表示,负数用“1”表示。,40,ASCII码和BCD码,1、ASCII(American Standard Code for Information Interchange)码2、BCD(Binary Coded Decimal)码,美国信息交换标准代码,用7位二进制编码,在计算机中用一个字节表示一个ASCII字符,最高位默认为0。ASCII码可以表示27即128个字符,包括34个控制字符、52个英文大小写字母,10个阿拉伯数字、32个标点符号和运算符号。,二进制编码的十进制数。即为逢“十”进位,又以4位二进制码来表示一位十进制数。,41,逻辑数据的表示法,逻辑数据是用来表示二值逻辑中的“是”与“否”,或“真”与“假”两个状态的数据。计算机中二进制编码的两个基本码“0”和“1”就能表示逻辑数据的两个状态。例如用“1”表示真,则“0”就能表示假。注意这里的“0”和“1”无数值的大小概念,只有逻辑上的意义。,返回,42,第2章 微型计算机系统概述,微型计算机的基本结构与组成8086/8088微处理器的结构与组成80 x86微处理器概述,43,本章内容简介,本章在介绍一般微型计算机系统的基本结构与组成的基础上,重点介绍了8086/8088微处理器的功能结构、内存组织、寄存器及接口组织等方面的知识。在分析了80286、80386、80486及Pentium微处理器的特点、功能结构、内存组织及寄存器组等信息后,简单介绍了比较新型的Pentium系列微处理器芯片的技术特点及功能。,44,2.1 微型计算机的基本结构与组成,计算机的基本组成微机硬件系统结构,45,计算机的基本组成与汇编语言的关系,汇编语言是与机器的指令系统有关的面向机器的语言。由于各类计算机使用的微处理器(或CPU)的指令系统是不同的,因而相应的汇编语言也就不同。在学习汇编语言之前,应对计算机的基本结构与组成有个大致的了解,知道计算机是如何工作的,了解计算机执行指令的过程,然后再通过指令系统的学习去掌握汇编语言程序设计的方法。,46,微型计算机系统结构,硬件系统(hardware system)软件系统(software system),控制器运算器存储器输入设备输出设备,系统软件应用软件,47,计算机硬件组成框图,48,CPU的特点,由运算器和控制器两部分组成;可以进行算术和逻辑运算;可保存较少量数据;能对指令进行译码并执行规定的动作;能和存储器、外设交换数据;提供整个系统所需要的定时和控制;可以响应其他部件发来的中断请求。,49,运算器,运算器是完成二进制编码的算术或逻辑运算的部件,可以实现各种算术运算和逻辑运算。运算器由累加器、通用寄存器和算术逻辑单元组成,其核心是算术逻辑单元ALU(Arithmetic and Logic Unit)。累加器是特殊的寄存器,它既能接受来自总线的二进制信息作为参加运算的一个操作数,向算术逻辑单元ALU输送,又能存储由ALU运算的中间结果和最后结果。运算器是计算机实现高速运算的核心。它按照指令,在控制器的控制下,对信息进行算术运算、逻辑运算、移位运算等操作。,50,控制器,控制器(Control Unit)是全机的指挥中心,它控制各部件动作,使整个机器连续地、有条不紊地运行,实现计算机本身运行过程的自动化。控制器的具体功能是识别翻译指令代码,安排操作次序并向计算机各部件发出适当的控制信号,以便执行机器指令,使计算机能自动地、协调一致地工作。执行程序时,控制器首先从内存中按顺序取出一条指令,并对指令进行分析,然后根据指令的内容向有关部件发出控制命令,控制它们执行规定的任务。这样逐一执行指令,就能使计算机按照这些指令组成的程序要求,自动运行。,51,微机硬件系统结构,系统总线(AB,CB,DB)把硬件设备连接起来,52,存储器系统,微型计算机的存储器系统由内部存储器和外部存储器组成。内存用于存放执行的程序和待处理的数据,它直接与CPU交换信息。外存不直接与CPU相连,它主要用来保存程序和数据,通常作为辅助存储器。,53,信息存储单位,计算机内部信息的单位常采用bit、byte、word、Dword等量纲。计算机存储器的容量通常用字节来衡量。KB(千字节)1KB=210=1024 byte MB(兆字节)1MB=220=1024 KB GB(千兆字节)1GB=230=1024 MB TB(太字节)1TB=240=1024 GB,54,内存,分类:随机存储器、只读存储器、虚拟存储器、CMOS、高速缓冲存储器。RAM(Random Access Momory)通常用来存储用户程序和数据,机器断电后信息丢失,也称为易失性存储器。ROM(Read Only Memory)通常用于保存系统程序,如OS和BIOS等,机器断电后信息保留,也称为非易失性存储器。,55,CMOS也称为“小内存”,用于保存计算机当前的配置信息,如日期和时间、硬盘的格式和容量、内存容量等。这些信息也是在计算机调入操作系统之前必须知道的信息。Cache(高速缓冲存储器)介于内存和CPU之间,它存取速度比内存快,但容量不大(8KB或16KB等),存储当前CPU正在执行的程序段落或数据。,内存,56,虚拟存储器,虚拟存储器是指通过软件方法,将主存和一部分外存(如磁盘)空间构成一个整体,为用户提供一个比实际物理存储器大得多的存储器。虚存基于以下原理:程序的运行在一段时间内不会涉及到它的全部指令,而仅仅是局限在一段程序代码之内,此即程序的局部性原理。,57,外存,外存通常用来永久存储信息,由操作系统管理。DAS(直接访问存储)是最常用的外存储形式,如磁盘、磁带和光盘。常见的磁盘系统有软盘和硬盘系统。磁盘的读写是通过磁盘驱动器来完成的。磁盘控制器负责与计算机的接口工作。,58,存储器的地址组织,1、存储单元的地址 对于存储器的每一个存储单元给出的唯一编号,称为该存储单元的地址二进制位 1 Word=2 Byte=16 bit(二进制位)1 DW=2 Word存储容量与编址范围 总线宽度 N 位存储容量为 2N Byte地址范围为 0 2N-1,2、存储器地址的分段 8088/8086CPU的20位物理地址带来1M的寻址能力,而其16位的地址寄存器寻址能力只有64K,因此对存储器地址进行分段来解决该问题。物理地址=段地址 16D+偏移地址 段寄存器:CS、SS、ES、DS(20位)(16位)(16位),59,一个字的位编号,60,输入/输出设备,输入/输出设备I/O设备的分类I/O接口的功能,常规输入/输出设备;辅助存储器;数据通信设备;专用控制设备。,实现数据缓冲;实现数据格式的变换;进行CPU与I/O设备之间的通信控制。,简称I/O设备或者外设。它们位于主机之外,用于实现计算机与外部设备或者计算机与人进行的信息交换,所以又称外围设备。,61,接口寄存器的功能,数据缓冲寄存器:用来暂时存放主机输出给外设的数据,或外设输入给主机的数据。即用来存放要在外设和主机间传送的数据,这种寄存器实际上起缓冲器的作用。状态寄存器:用来保存外部设备或接口的状态信息,以便CPU在必要时测试外设状态,了解外设的工作情况。控制或命令寄存器:接收、存放主机发来的各种命令、控制信息。CPU给外设或接口的控制命令通过此寄存器送给外部设备。,62,系统组成,63,总线,总线是一种能由多个部件分时共享的公共信息传送线路。分时和共享是总线的两个主要特点。现代计算机系统的总线包括内部总线、系统总线和处理机间的总线。内部总线是指CPU内部连接各寄存器与ALU部件的总线,它包含在CPU的数据通路内;系统总线是指计算机系统的CPU、主存及I/O接口之间的连线;处理机之间的总线存在于多机系统互连情况,用以实现多个CPU之间的信息交流。,64,微机的主板结构,CPU插槽内存插槽芯片组二级高级缓冲存储器CMOS芯片总线扩展槽,AGP显示卡插槽外接接口插座串行和并行端口主板跳线系统监控,65,软件与硬件的逻辑等价性,一个完整的计算机系统包含硬件和软件两大部分,硬件是计算机系统的物质基础,正是在硬件高度发展的基础上,才有软件赖以生存的空间和活动场所,没有硬件对软件的支持,软件的功能就无从谈起。计算机的软件系统是在硬件系统的基础上,为有效地使用计算机而配置的。没有系统软件,现代计算机系统就无法正常地、有效地运行;没有应用软件,计算机就不能发挥效能。计算机系统的功能由硬件或由软件实现,现代计算机系统的硬件和软件正朝着互相渗透、互相融合的方向发展,计算机系统中没有一条明确的硬件与软件的分界线。,66,2.2 8086/8088微处理器的结构与组成,8086/8088的功能结构8086/8088的内存组织8086/8088CPU的内部寄存器8086/8088的接口组织,67,概述,建立4字节的指令预取队列CPU要执行的指令是从队列中取得的,取指令的操作由总线接口单元承担的。8088的指令预取队列有4个字节,8086有6个字节。设立地址段寄存器为了扩大8088的地址宽度,将存储空间分成若干段,每段为64K字节。用段寄存器存放段的起始地址。在结构上和指令设置方面支持多处理器系统将8088和8087结合起来,组成运算速度很高的处理单元。,68,8088CPU的内部寄存器,通用寄存器组 专用寄存器组,数据寄存器(AX,BX,CX,DX)指针寄存器(SP,BP)变址寄存器(SI,DI),控制寄存器(IP,F)段寄存器(CS,SS,DS,ES),69,8088CPU内部寄存器结构,70,8088生成物理地址的过程,71,8088的标志位,CF 进位标志。PF奇偶标志。AF辅助进位标志。条件标志位ZF全零标志。SF符号标志。OF溢出标志。IF中断允许标志。DF方向标志。控制标志位TF单步标志。,72,8088CPU的两大功能结构,执行单元(EU)总线接口单元(BIU),负责指令的执行。包括算术逻辑单元(ALU)、标志寄存器(F)、通用寄存器及EU控制器。,用于实现EU的所有总线操作。负责CPU与存储器或外部设备之间的信息交换。包括地址加法器、段寄存器、指令指针(IP)和指令队列缓冲器和总线控制逻辑。,73,8088CPU的内部结构,74,8088的引脚,75,最大模式下的总线周期状态,76,复位后CPU内部寄存器状态,77,复位后各引脚的状态,78,8086/8088的接口组织,8086/8088系统和外部设备之间都是通过I/O芯片来联系的。每个I/O芯片都有一个端口或者几个端口,一个端口往往对应了芯片内部的一个寄存器或者一组寄存器。微型机要为每个端口分配一个地址,它通常被称为端口地址。为使主机访问外设方便起见,每个I/O接口电路的若干个端口按功能分为数据端口、命令端口和状态端口,此外还有方式控制、操作结果和地址索引等作特殊用途的端口。,79,2.3 80 x86微处理器概述,80286微处理器80386微处理器80486微处理器Pentium微处理器,80,80 x86微处理器概述,自Intel公司推出8086/8088微处理器之后,又相继推出了80286、80386、80486、Pentium等系列微处理器,每一个微处理器的推出,都给计算机世界带来创新和提高。Intel公司的每一种新产品都兼容原来的系列产品,从而使此前开发的软件都能继续使用。,81,80286微处理器,与8086在目标代码级完全保持了向上兼容。在内部结构上,8086中的总线接口部件BIU在80286中又分成了地址部件AU、指令部件IU和总线部件BU,从而加快了处理器的运行速度。芯片内具有存储管理部件MMU和保护机构。存储器管理可以实现在实地址和保护虚地址两种方式下访问存储器。,82,80286微处理器的内存寻址,80286的存储空间由可变长度的段组成,每个段是一个最长可达64KB的相邻字节序列。存储空间包括物理存储器和虚拟存储器,这些段按用途可分为代码段、堆栈段、数据段和附加段等,在保护方式下,还有任务状态段TSS(Task State Segment)和描述子表段DTS(Descriptor Table Segment)。,83,80286存储器寻址,保护方式的存储器寻址使用32位指针,包含一个16位的选择子分量和一个16位的偏移量分量。但选择子的内容不再是一个物理存储器的地址的高16位,而是进入某一个存储器常驻表的变址值,所要求的段的24位段基地址要从存储器中的表内取得。16位偏移量用来加到段基址上,形成24位的物理地址,84,80286在保护方式下的存储器寻址,85,80386微处理器,它的数据总线和地址总线都是32位的,能灵活处理8位、16位、32位和64位数据信息。内部结构由总线接口单元、指令预取部件、指令译码部件、执行部件、分段部件和分页部件6个逻辑功能部件组成。可以工作在实地址、保护虚地址以及虚拟8086三种模式。新增加了可测试特性和调试功能。,86,80386微处理器的功能部件,87,80386微处理器的工作方式,80386在实地址方式下的工作原理与8086相同,主要差别是80386可以处理32位的数据,如进行32位的寄存器的运算,以及偏移地址在64KB以内的32位的数据传送。80386在保护方式下可以访问4G字节的物理存储空间,段的长度在启动页功能时是4G字节,不启动页功能时是1M字节,页功能是可选的。虚拟8086方式是一种既有保护功能,又能执行8086代码的工作方式,是一种动态方式。,88,80386的三种工作方式之间的转换关系,89,80386的地址空间,逻辑地址又称虚拟地址,由一个选择子(段选择子)和一个偏移量组成。偏移量即在存储器操作数的九种寻址方式中求得的有效地址。线性地址80386芯片内的分段部件将逻辑地址空间转换为32位的线性地址空间。分段部件如何完成逻辑地址到线性地址的转换是实地址方式和保护方式的主要区别。物理地址80386芯片内的分页部件将线性地址空间转换为物理地址空间,物理地址就是在芯片引脚上出现的地址。,90,80386的寄存器,80386内部共有8个32位的通用寄存器,称为EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP,这些寄存器可以用来存放数据和地址,且与8086和80286兼容。32位的指令指针寄存器EIP用于保存下一条待取指令的偏移地址。32位的标志寄存器EFLAGS,它的低16位与80286各位的定义相同,又新增了RF和VM两个标志位。,91,80386的段选择寄存器是在80286选择寄存器基础之上新增了两个支持当前数据段的段选择寄存器FS和GS。80386有四个专用的寄存器用来保存保护模式下的表和段,这些寄存器为GDTR(48位)、IDTR(48位)、LDTR(64位)和TR(64位),它们对应地保存GDT(全局描述符表)、IDT(中断描述符表)、LDT(局部描述符表)和TSS(任务状态段)的信息。,80386的寄存器,92,CR0的含义,93,80486微处理器,80486是一种与80386完全兼容但功能更强的32位微处理器。它采用了一系列新技术增强微处理器功能,如对80386核心硬件进行改造,部分采用RISC(精简指令系统计算机)技术来加快指令的执行速度;增强总线接口部件加快了CPU从主存中存取信息的速度;把浮点运算协处理器部件、高速缓存及其控制器部件集成到CPU芯片内以加快信息的传送与处理性能。,94,80486微处理器的特点,芯片为网络阵列式封装,有168条引脚,数据总线与地址总线均为独立的32位。微处理器内部的寄存器、ALU和内部数据总线都是32位。而CPU与浮点运算部件之间的数据通道为64位,CPU与Cache之间的数据通道为128位。芯片内具有8KB的数据/指令高速缓存Cache,可为频繁访问的数据和指令提供高速缓存,从而加快CPU与存储器之间的信息交换。部分采用RISC技术,芯片上不规则的控制部分减少,缩短了指令的执行时间,大多数常用指令均可在一个时钟周期内完成。,95,80486微处理器的特点,支持突发总线周期操作,即一次总线周期操作可完成一个数据块的传送。具有三种工作方式,即实地址方式、虚拟地址保护方式和虚拟8086方式。在虚拟地址保护方式下,可寻址4GB物理地址空间以及64TB虚拟地址空间。片内集成了浮点运算部件,可支持32位、64位和80位的浮点算术运算。由于与CPU之间的数据通道总线加宽,而引线缩短,它们之间的信息交换速度也得到提高。片内具有存储管理部件MMU,可支持对存储器地址实施管理和对存储器空间进行保护。,96,80486的内部功能结构,97,80486的寄存器组,98,系统地址寄存器,99,Pentium微处理器,Pentium是Intel公司于1993年推出的第五代80 x86系列微处理器,中文译名为“奔腾”。Pentium微处理器在工作方式方面,还增加了一种“系统管理方式(SMM)”,以实现对电源和OS进行管理等高级功能。在软件方面,它兼容了80486的全部指令且有所扩充。Intel公司在以后的研制中,又推出了Pentium MMX、Pentium、Pentium及Pentium。它们在第一代Pentium原有指令系统的基础上,又增加了一些多媒体指令MMX(Multi Media Extension),专门用来处理音频、视频等数据,SSE(Streaming SIMD Extensions)和图形、图像等信息。,100,Pentium微处理器的特点,CISC技术与RISC技术结合 超标量体系结构 浮点指令流水线与浮点指令部件 指令转移预测部件 采用64位外部数据总线 双Cache的哈佛结构:指令与数据分开 支持多重处理 增加了系统管理方式 用硬件实现部分指令,101,Pentium微处理器的内部结构图,102,Pentium微处理器的内部寄存器,Pentium的寄存器组织可以分成三大类,即基本寄存器组、系统寄存器组和浮点寄存器组。其中系统寄存器组只供系统程序访问,其他两组寄存器则供系统程序和应用程序共同访问。Pentium微处理器对80486的寄存器作了一些扩充。EFLAGS标志寄存器增加了两位:VIF(位19)和VIP(位20),它们用于控制Pentium虚拟8086方式扩充部分的虚拟中断。控制寄存器CR0的CD位和NW位被重新定义以控制Pentium的片内高速缓存,并新增了CR4控制寄存器对80486结构扩充。此外,还增加了几个模式专用寄存器,用于控制可测试性、执行跟踪、性能检测和机器检查错误等功能。,103,Pentium系列微处理器的技术发展,Pentium Pro内部设置了3条指令流水线,含36条地址线,直接寻址范围为64GB。Pentium MMX集成了450万个晶体管,虽然片内没有二级Cache,但是其代码Cache和数据Cache均高达16KB,主频达266MHz。Pentium MMX最主要的特点是MMX(Multimedia extension)功能的加入。Pentium 内部含有750万个晶体管,最高频率达500MHz。在结构上,它用一块印刷电路板将CPU和二级Cache封装在一起,再用外壳封装。Pentium 内部集成了950万个晶体管,开始的工作频率为450 MHz,后来高达1GHz以上。Pentium 内部含有4200万个晶体管,目前市场上的Pentium 主频高达3.06GHz。,104,Itanium微处理器简介,Itanium是Intel 公司继Pentium系列微处理器后推出的具有超强能力的微处理器,国内译为“安腾”。其数据总线和地址总线都是64位,内部集成了2.2亿个晶体管,集成度达到Pentium的十倍,主要面向高档服务器和工作站。Itanium拥有三级Cache,一级Cache包括16KB的指令Cache和16KB的数据Cache,二级Cache容量为96KB,此外,还可以外接4MB的三级Cache。Itanium内部含有128个通用寄存器、128个浮点寄存器和64个属性寄存器。众多寄存器使Itanium即使在峰值操作状态也能保证内部寄存器充足够用,从而减少了等待与传输,提高了效率,并且适用于多任务操作。,返回,105,第3章 微型计算机的指令系统,寻址方式8088/8086指令系统80 x86指令系统介绍,106,本章内容简介,本章在介绍指令操作数的寻址方式以及转移地址的寻址方式后,重点讲述8086/8088的指令系统,包括8086/8088指令的分类、基本格式、基本功能等,为第4章的汇编语言程序设计提供必要的基础。本书所涉及的设计实例都是以8086/8088汇编语言来编写的,因此这一部分内容的掌握对后续章节的学习有直接的关系。在本章的最后部分介绍了Intel公司的80 x86系列微处理器80286、80386、80486以及Pentium所支持的指令系统,主要介绍了这些指令系统中新增加指令的功能及用法。,107,3.1 寻址方式,与数据有关的寻址方式与转移地址有关的寻址方式,108,寻址方式,对于一条汇编语言指令来说,有两个问题要解决。一是要指出进行什么操作,这由指令操作码来表明,当然,每条指令都有自己的操作码;二是要指出大多数指令涉及的操作数和操作结果放在何处,即不但要指出操作数的值为多少或者放在什么地方,而且还要指出操作结果送到哪里去。微型计算机系统的每一条指令通常由操作码字段和操作数字段两部分组成。操作数字段指出参加本指令操作的数据。可以直接给出数据,也可以是数据的地址,还可以是其它能间接获得操作数的信息。根据操作数的设置情况,有些指令需要一个或两个操作数,也有些指令不需要操作数。,109,与数据有关的寻址方式,立即寻址方式寄存器寻址方式直接寻址方式寄存器间寻址方式寄存器相对寻址方式基址加变址寻址方式相对基址变址寻址方式,110,寻址方式可能有三种情况,操作数包含在指令中,即指令的操作数字段就包含着操作数本身。这种寻址方式称为立即寻址,这种操作数就称为立即数。操作数包含在CPU的某一个内部寄存器中,这时指令中的操作数字段是CPU内部寄存器的一个编码,这种寻址方式称为寄存器寻址。操作数在内存的数据区中,这时指令中的操作数字段包含着此操作数的地址。8086/8088系统中的任何内存地址是由两部分组成的,即段地址和偏移地址。为了适应要处理的各种数据结构的需要,这个段内偏移地址可以由几个部分组成,把它称为有效地址EA。,111,1、立即寻址方式,立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指令代码段中。立即数可以是8位数或16位数。如果是16位数,则低位字节存放在低地址中,高位字节存放在高地址中。立即寻址方式只能用于源操作数字段,不能用于目的操作数字段,经常用于给寄存器赋初值。例1:MOV AL,18 指令执行后,(AL)=12H,112,2、寄存器寻址方式,在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。这种寻址方式大都用于寄存器之间的数据传输。例3:MOV AX,BX 如指令执行前(AX)=6789H,(BX)=0000H;则指令执行后,(AX)=0000H,(BX)保持不变。,113,3、直接寻址方式,直接寻址方式是操作数地址的16位偏移量直接包含在指令中,和指令操作码一起放在代码段,而操作数则在数据段中。操作数的地址是数据段寄存器DS中的内容左移4位后,加上指令给定的16位地址偏移量。直接寻址方式适合于处理单个数据变量。,114,4、寄存器间接寻址方式,在寄存器间接寻址方式中,操作数在存储器中。操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供。如果指令中指定的寄存器是BX、SI、DI,则用DS寄存器的内容作为段地址。如指令中用BP寄存器,则操作数的段地址在SS中,即堆栈段。,115,5、寄存器相对寻址,该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。,116,6、基址加变址寻址方式,在基址加变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器,可把两种方式组合起来形成一种新的寻址方式。基址加变址的寻址方式是把一个基址