资源描述
微型计算机原理微型计算机原理 Principles of Microcomputers王忠民王忠民 主编主编王忠民王忠民 王钰王钰 王晓婕王晓婕 编著编著面 向 21 世 纪高等学校计算机类专业系列教材第1章 微型计算机系统导论 第2章 计算机中的数制和编码 第3章 80 x86微处理器 第4章 80 x86指令系统 第5章 汇编语言程序设计 第6章 半导体存储器 第7章 输入/输出与中断 第8章 可编程接口芯片及应用 目目 录录第1章 微型计算机系统导论 第1章 微型计算机系统导论 1.1 引言引言 1.2 计算机的发展概况计算机的发展概况1.3 微型计算机系统的组成微型计算机系统的组成 1.4 微型计算机硬件系统微型计算机硬件系统 1.5 微型计算机的工作过程微型计算机的工作过程 第1章 微型计算机系统导论 1.1 引 言 电子计算机是由各种电子器件组成的,能够自动、高速、精确地进行算术运算、逻辑控制和信息处理的现代化设备。自从其诞生以来,已被广泛应用于科学计算、数据(信息)处理和过程控制等领域。 有关统计资料表明,计算机早期的主要应用领域是科学计算。在科学研究,特别是理论研究中,经过严密的论证和推导,得出非常复杂的数学方程,需要求得方程的解。如果手工计算,可能要经过数月、数年的时间,有时甚至是无法完成的。面对这样的难题,计算机可以发挥其强大的威力。 第1章 微型计算机系统导论 计算机在这样的科学计算中,一般用高级语言编程,高级语言是面向用户的,也就是说,用高级语言编写程序比较容易和方便,经过短时间的学习和训练,一般人都能编出功能很复杂的程序。计算机在科学计算中的应用,除了用高级语言编写程序外,与其在信息处理和过程控制领域的应用相比较,还有以下两个特点:第一,它没有很强的实时性要求,虽然使用者在运行程序时也希望尽快得到运算结果,但对结果产生的时间没有严格的要求,结果产生的迟早不影响结果的有效性。第二,在科学计算中,需要输入计算机的数据,一般不是从某种物理现场实时采集的,不需要有专用的完成数据采集任务的输入设备;同样,计算的结果,一般也不完成对外界的控制功能,不需要有专门的输出设备与其它系统相连。 第1章 微型计算机系统导论 在数据(信息)处理和过程控制应用领域情况则要复杂得多。除了对系统的实时性有很高的要求外,还要用专门的输入设备将有关信息输入计算机,用专门的输出设备输出处理结果或对被控对象实施控制。因此,仅仅具备高级语言编程方面的知识是远远不够的。实时数据(信息)处理和过程控制要求实时性,希望编写的程序更精练,运行起来更快(一般情况下,对于完成相同的任务,用机器语言或汇编语言编写的程序运行起来比用高级语言编出的程序快得多);专用的输入输出设备与计算机的连接和编程控制(称为接口),更不是只具有高级语言编程知识所能胜任的。为此,必须对计算机的工作原理有更深入的了解,对计算机的逻辑组成、工作原理、与外界的接口技术以及直接依赖于计算机逻辑结构的机器语言、汇编语言编程方法等需要进一步的学习。第1章 微型计算机系统导论 1.2 计算机的发展概况 计算机的发展,从一开始就和电子技术,特别是微电子技术密切相关的。人们通常按照构成计算机所采用的电子器件及其电路的变革,把计算机划分为若干“代”来标志计算机的发展。自1946年世界上第一台电子计算机问世以来,计算机技术得到了突飞猛进的发展,在这不长的时间里,计算机的发展已经历了四代:电子管计算机、晶体管计算机、集成电路计算机和大规模、超大规模集成电路计算机。目前,各国正加紧研制和开发第五代“非冯诺依曼”计算机和第六代“神经”计算机。 第1章 微型计算机系统导论 微型计算机属于第四代计算机,是二十世纪70年代初期研制成功的。一方面是由于军事、空间及自动化技术的发展需要体积小、功耗低、可靠性高的计算机,另一方面,大规模集成电路技术的不断发展也为微型计算机的产生打下了坚实的物质基础。 微处理器微处理器(MicroProcessor)是微型计算机的核心芯片,它是将计算机中的运算器和控制器集成在一片硅片上制成的集成电路。这样的芯片也被称为中央处理单元,简称为CPU(Central Processing Unit)。 第1章 微型计算机系统导论 微型计算机微型计算机 (MicroComputer)是由微处理器(CPU)、存储器和I/O接口电路组成的计算机。 30多年来,微处理器和微型计算机获得了极快的发展,几乎每两年微处理器的集成度翻一番,每24年更新换代一次,现已进入第五代。 第1章 微型计算机系统导论 1. 第一代第一代4位或低档位或低档8位微处理器位微处理器 第一代微处理器的典型产品是Intel公司1971年研制成功的4004(4位CPU)及1972年推出的低档8位CPU 8008。采用PMOS工艺,集成度约为2000只晶体管/片。指令系统比较简单,运算能力差,速度慢(平均指令执行时间为1020s)。软件主要使用机器语言及简单的汇编语言编写。 第1章 微型计算机系统导论 2 第二代第二代中高档中高档8位微处理器位微处理器 微处理器问世以后,众多公司纷纷研制微处理器,逐渐形成以Intel公司、Motorola公司、Zilog公司产品为代表的三大系列微处理器。第二代微处理器的典型产品有1974年Intel公司生产的8080 CPU, Zilog 公司生产的Z80 CPU、Motorola公司生产的MC6800 CPU以及Intel 公司1976年推出的8085CPU。它们均为8位微处理器,具有16位地址总线。 第二代微处理器采用NMOS工艺,集成度为9000只晶体管/片,指令的平均执行时间为12s。指令系统相对比较完善,已具有典型的计算机体系结构以及中断、存储器直接存取(DMA)功能。由第二代微处理器构成的微机系统(如AppleII等)已经配有单用户操作系统(如CP/M),并可使用汇编语言及BASIC、FORTRAN等高级语言编写程序。 第1章 微型计算机系统导论 3第三代第三代16位微处理器位微处理器 第三代微处理器的典型产品是1978年Intel公司生产的8086 CPU、Zilog公司的Z8000 CPU和Motorola公司的MC6800 CPU。它们均为16位微处理器,具有20位地址总线。 用这些芯片组成的微型计算机有丰富的指令系统、多级中断系统、多处理机系统、段式存储器管理以及硬件乘除法器等。为方便原8位机用户,Intel公司在8086推出后不久便很快推出准16位的8088CPU,其指令系统与8086完全兼容,CPU内部结构仍为16位,但外部数据总线是8位的。并以8088为CPU组成了IBM PC、PC/XT等准16位微型计算机,由于其性能价格比高,很快占领了市场。 第1章 微型计算机系统导论 1982年,Intel公司在8086基础上研制出性能更优越的16位微处理器芯片80286。它具有24位地址总线,并具有多任务系统所必须的任务切换功能、存储器管理功能以及各种保护功能。以80286为CPU组成IBM PC/AT高档16位微型计算机。 第1章 微型计算机系统导论 4第四代第四代32位高档微处理器位高档微处理器 1985年,Intel公司推出了32位微处理器芯片80386,其地址总线也为32位。80386有两种结构:80386SX和80386DX。这两者的关系类似于8088和8086的关系。80386SX内部结构位32位,外部数据总线为16位,采用80287作为协处理器,指令系统与80286兼容。80386DX内部结构、外部数据总线皆为32位,采用80387作为协处理器。 1990年,Intel公司在80386基础上研制出新一代32位微处理器芯片80486,其地址总线仍然为32位。它相当于把80386、80387及8KB高速缓冲存储器(Cache)集成在一块芯片上,性能比80386有较大提高。 第1章 微型计算机系统导论 5. 第五代第五代64位高档微处理器位高档微处理器 第五代微处理器的典型产品是1993年Intel公司推出的Pentium(奔腾,Intel 586)以及IBM、Apple和Motorola三家公司联合生产的Power PC。Pentium微处理器数据总线为64位,地址总线为36位,有两条超标量流水线,两个并行执行单元及双高速缓冲存储器,工作频率有50MHz、66MHz、133MHz、和166MHz等。Power PC是一种精简指令集计算机RISC(Reduced Instruction Set Computer),也是一种性能优异的64位微处理器,其中也采用了先进的超标量流水线技术及双高速缓冲存储器。第1章 微型计算机系统导论 精简指令集计算机的特点是指令规整,从而使指令译码电路简单,译码速度快;指令系统中只设置了使用频率较高的指令,因而指令条数少,指挥指令执行的控制逻辑电路简单,执行速度快。与精简指令集计算机对应的是复杂指令集计算机CISC(Complex Instruction Set Computer),Intel公司的Pentium微处理器及其以前的微处理器产品都属于CISC。 第1章 微型计算机系统导论 1.3 微型计算机系统的组成 图1.1 微型计算机系统的组成硬件微型机系统外围设备过程控制I/O通道A/D,D/A转换器开关量等外部设备键盘、鼠标等输入设备显示器、打印机等输出设备 软驱、硬盘及磁带等外存储器主 机输入输出(I/O)接口电路微处理器(CPU)运算器(算术逻辑运算单元ALU)控制器(控制单元CU)寄存器阵列(RA)内存储器RAM, ROM, EPROMEEPROM, Cash等系统软件软件用户(应用)软件第1章 微型计算机系统导论 1.3.1 硬硬 件件 图1.2 微型计算机硬件系统组成存储器模块运 算 器控 制 器CPU芯片输入输出接口电路取指令/存取操作数命令I/O命令结 果 输出取指令/存取操作数主机读入指令/数据大容量外存储器I/O设 备I/O子系统第1章 微型计算机系统导论 运算器和控制器被集成在一片被称之为CPU的芯片中,它是微机的运算、控制中心,用来实现算术、逻辑运算,并对全机进行控制。 存储器(又称为主存或内存)用来存储程序或数据,计算机要执行的程序以及要处理的数据都要事先装入到内存中才能被CPU执行或访问。 第1章 微型计算机系统导论 输入/输出(I/O)接口是微机与输入输出设备之间的桥梁,这种接口电路又称做“I/O适配器”(I/O Adapter)。这里有必要强调一下大容量外存储器与内存储器(主存或内存)之间的关系。由于微型计算机内存容量有限,所以使用大容量的外存储器作为内存的后援设备,它的容量可以比内存大很多,但存取速度却比内存慢得多。所以,除必要的系统程序外,一般程序(包括数据)都存放在外存中,只有在运行时,才把它从外存传送到内存的某个区域,再由CPU控制执行。 第1章 微型计算机系统导论 1.3.2 软件软件 所谓软件,就是为了管理、维护计算机以及为完成用户的某种特定任务而编写的各种程序的总和。计算机的工作就是运行程序,通过逐条地从存储器(内存)中取出程序中的指令并执行指令规定的操作而实现某种特定的功能,因此,软件是微型计算机系统不可缺少的组成部分。微型计算机的软件包括系统软件和用户(应用)软件。 第1章 微型计算机系统导论 用户软件用户软件就是用户为解决各种实际问题而编写的各种程序。 系统软件系统软件是指不需要用户干预的,为其它程序的开发、调试以及运行等建立一个良好环境的程序。主要包括操作系统OS(Operating System)和系统应用程序。操作系统操作系统是一套复杂的系统程序,用于提供人机接口和管理、调度计算机的所有硬件与软件资源。其中最为重要的核心部分是常驻监控程序,计算机启动后,常驻监控程序始终存放在内存中,它接收用户命令,并执行相应的操作; 第1章 微型计算机系统导论 操作系统还包括用于执行I/O操作的I/O驱动程序,每当用户程序或其它系统程序需要使用I/O设备时,通常并不是该程序执行I/O操作,而是由操作系统利用I/O驱动程序来执行任务;此外,操作系统还包括用于管理存放在外存中大量数据的文件管理程序,文件管理程序和I/O驱动程序配合使用,用于文件的存取、复制和其它处理。系统应用程序系统应用程序很多,如各种高级语言的编译程序、汇编程序、诊断和调试程序,文字处理程序,服务性工具程序,数据库管理程序等。 第1章 微型计算机系统导论 1.4 微型计算机硬件系统微型计算机硬件系统 1.4.1 微型计算机系统的组成 到目前为止,计算机仍沿用1940年由冯.诺依曼首先提出的体系结构。其基本设计思想为: 以二进制形式表示指令和数据。 程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行。 由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机系统。 第1章 微型计算机系统导论 图1.3 微型计算机硬件系统结构 地址总线AB定时电路输入设备输出设备I/O接口ROMRAM数据总线DB控制总线CB微处理器(CPU)第1章 微型计算机系统导论 所谓总线,总线,是计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成部分。它们可以是带状的扁平电缆线,也可以是印刷电路板上的一层极薄的金属连线。所有的信息都通过总线传送。根据所传送信息的内容与作用不同,总线可分为三类: 地址总线地址总线AB(Address Bus):在对存储器或I/O端口进行访问时,传送 由CPU提供的要访问存储单元或I/O端口的地址信息,以便选中要访问的存储单元或I/O端口,是单向总线。 第1章 微型计算机系统导论 数据总线数据总线DB(Data Bus):从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线送往CPU或由CPU送出,是双向总线。 控制总线控制总线CB(Control Bus):各种控制或状态信息通过控制总线由CPU送往有关部件,或者从有关部件送往CPU。CB中每根线的传送方向是一定的,图1.3中CB作为一个整体,用双向表示。 第1章 微型计算机系统导论 1.4.2 微处理器 外部DB 微处理器 (CPU)AARPLAPC标志寄存器IDIRDRRA至外部CB外部AB 4001H E7H 4002H 34H 4003H A5H 4004H 62H 4005H 38H存储器 地址 单元内容ALU图1.4 微处理器结构内 部 数 据 总 线DB第1章 微型计算机系统导论 1运算器 运算器又称算术逻辑单元ALU(Arithmetic Logic Unit),用来进行算术或逻辑运算以及移位循环等操作。参加运算的两个操作数一个来自累加器A(Accumulator),另一个来自内部数据总线,可以是数据缓冲寄存器DR(Data Register)中的内容,也可以是寄存器阵列RA(Register Array)中某个寄存器的内容。计算结果送回累加器A暂存。 第1章 微型计算机系统导论 2. 控制器 控制器又称控制单元CU(Control Unit),是全机的指挥控制中心。它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。 (1) 指令寄存器IR(Instruction Register):用来存放从存储器取出的将要执行的指令码。当执行一条指令时,先把它从内存取到数据缓冲寄存器DR中,然后再传送到指令寄存器IR中。 第1章 微型计算机系统导论 (2)指令译码器ID(Instruction Decoder):用来对指令寄存器IR中的指令操作码字段(指令中用来说明指令功能的字段)进行译码,以确定该指令应执行什么操作。 (3) 可编程逻辑阵列PLA(Programmable Logic Array):用来产生取指令和执行指令所需要的各种微操作控制信号,并经过控制总线CB送往有关部件,从而使计算机完成相应的操作。 第1章 微型计算机系统导论 3. 内部寄存器阵列 1) 程序计数器PC(Program Counter) 程序计数器有时也被称为指令指针IP(Instruction Pointer)。它被用来存放下一条要执行指令所在存储单元的地址。在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的存储单元地址送入PC。当执行指令时,CPU将自动修改PC内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令是按顺序执行的,所以修改的办法通常只是简单地对PC加1。但遇到跳转等改变程序执行顺序的指令时,后继指令的地址(即PC的内容)将从指令寄存器IR中的地址字段得到。 第1章 微型计算机系统导论 2) 地址寄存器AR(Address Register): 地址寄存器用来存放正要取出的指令的地址或操作数的地址。由于在内存单元和CPU之间存在着操作速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。 在取指令时,PC中存放的指令地址送到AR,根据此地址从存储器中取出指令。 在取操作数时,将操作数地址通过内部数据总线送到AR,再根据此地址从存储器中取出操作数;在向存储器存入数据时,也要先将待写入数据的地址送到AR,再根据此地址向存储器写入数据。 第1章 微型计算机系统导论 3) 数据缓冲寄存器DR(Data Register) 数据缓冲寄存器用来暂时存放指令或数据。从存储器读出时,若读出的是指令,经DR暂存的指令经过内部数据总线送到指令寄存器IR;若读出的是数据,则通过内部数据总线送到运算器或有关的寄存器。同样,当向存储器写入数据时,也首先将其存放在数据缓冲寄存器DR中,然后再经数据总线送入存储器。 可以看出,数据缓冲寄存器DR是CPU和内存、外部设备之间信息传送的中转站,用来补偿CPU和内存、外围设备之间在操作速度上存在的差异。 第1章 微型计算机系统导论 4) 指令寄存器IR(Instruction Register) 指令寄存器用来保存从存储器取出的将要执行的指令码,以便指令译码器对其操作码字段进行译码,产生执行该指令所需的微操作命令。 第1章 微型计算机系统导论 5) 累加器A(Accumulator) 累加器是使用最频繁的一个寄存器。在执行算术逻辑运算时,它用来存放一个操作数,而运算结果通常又放回累加器,其中原有信息随即被破坏。所以,顾名思义,累加器是用来暂时存放ALU运算结果的。显然,CPU中至少应有一个累加器。目前CPU中通常有很多个累加器。当使用多个累加器时,就变成了通用寄存器堆结构,其中任何一个既可存放目的操作数,也可以放源操作数。例如本书介绍的80 x86系列CPU就采用了这种累加器结构。 第1章 微型计算机系统导论 6) 标志寄存器FLAGS(Flag Register) 标志寄存器有时也称为程序状态字PSW(Program Status Word)。它用来存放执行算术运算指令、逻辑运算指令或测试指令后建立的各种状态码内容以及对CPU操作进行控制的控制信息。标志位的具体设置及功能随微处理器型号的不同而不同。编写程序时,可以通过测试有关标志位的状态(0或1)来决定程序的流向。 第1章 微型计算机系统导论 1.4.3 存储器 这里介绍的存储器是指内存储器(又称为主存或内存)。它是微型计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最终结果。 在计算机内部,程序和数据都以二进制形式表示,8位二进制代码作为一个字节。为了便于对存储器进行访问,存储器通常被划分为许多单元,每个存储单元存放一个字节的二进制信息,每个存储单元分别赋予一个编号,称为地址。如图1.5所示,地址为4005H的存储单元中存放了一个八位二进制信息00111000B。 第1章 微型计算机系统导论 计算机在执行程序时,CPU会自动而连续地从内存储器中取出要执行的指令,并执行指令规定的操作。这就是说,计算机每完成一条指令,至少有一次为取指令而访问内存储器的操作。内存储器是计算机主机的一部分,一般把具有一定容量且速度较高的存储器作为内存储器,CPU可直接用指令对内存储器进行读写。在微型计算机中,通常用半导体存储器作为内存储器。 第1章 微型计算机系统导论 E7H34HA5HF2H38H4001H4002H4003H4004H4005H地址指令或数据内容0 0 1 1 1 0 0 0图1.5 内存单元的地址和内容第1章 微型计算机系统导论 1. 基本概念 1位(Bit):二进制信息的最小单位(0或1) 2字节(Byte):由8位二进制数组成,可以存放在一个存储单元中。是字的基本组成单位。 3字(Word):计算机中作为一个整体来处理和运算的一组二进制数,是字节的整数倍。通常它与计算机内部的寄存器、算术逻辑单元、数据总线宽度相一致。每个字包括的位数称为计算机的字长,是计算机的重要性能指标。目前为了表示方便,常把一个字定义为16位,把一个双字定义为32位。 第1章 微型计算机系统导论 4内存容量:内存中存储单元的总数。通常以字节为单位,1024(210)字节记作1KB,220字节记作1MB。 5内存单元地址:为了能识别不同的单元,每个单元都赋予一个编号,这个编号称之为内存单元地址。显然,各内存单元的地址与该地址对应的单元中存放的内容是两个完全不同的概念,不可混淆。 第1章 微型计算机系统导论 2.内存的操作 CPU对内存的操作有两种:读或写。读操作是CPU将内存单元的内容读入CPU内部,而写操作是CPU将其内部信息送到内存单元保存起来。显然,写操作的结果改变了被写内存单元的内容,是破坏性的,而读操作是非破坏性的,即该内存单元的内容在信息被读出之后仍保持原信息不变。 第1章 微型计算机系统导论 从内存单元读出信息的操作过程如图1.6(a)所示。假设将地址为90H的单元中的内容10111010B(BAH)读入CPU,其操作过程如下:(1)CPU经地址寄存器AR将要读取单元的地址信息10010000B(90H)送地址总线,经地址译码器选中90H单元。(2)CPU发出“读”控制信号。(3)在读控制信号的作用下,将90H单元中的内容10111010B(BAH)放到数据总线上,然后经数据缓冲寄存器DR送入CPU中的有关部件进行处理。 第1章 微型计算机系统导论 地址译码器10101101B00011010B10111010B00100010B内容地址00H01HFFH90HAB10010000B来自CPU的写信号00000000BDB地址译码器10101101B00011010B10111010B00100010B内容地址00H01HFFH90HAB10010000B10111010BDB来自CPU的读信号(a) 内存读操作过程示意图(b) 内存写操作过程示意图图1.6 内存读写操作过程示意图 第1章 微型计算机系统导论 向内存单元写入信息的操作如图1.6(b)所示。假定要将数据0写入内存中地址为90H的单元,其操作过程如下:(1)写入单元的地址信息90H经地址寄存器AR送到地址总线上。(2)待写入的数据00000000B经数据缓冲寄存器DR放到数据总线上。(3)CPU发出“写”控制信号,在该信号的作用下将数据0写入90H单元。此时,90H单元中原有的内容10111010B就会被00000000B所替代。 第1章 微型计算机系统导论 3. 内存的分类 按工作方式,内存可分为两大类:随机读写存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。 随机读写存储器可被CPU随机地读写,它用于存放将要被CPU执行的用户程序、数据以及部分系统程序。断电后,其中存放的所有信息将丢失。 只读存储器中的信息只能被CPU读取,而不能由CPU任意地写入。断电后,其中的信息不会丢失。它用于存放永久性的程序和数据。如系统引导程序、监控程序、操作系统中的基本输入/输出管理程序(BIOS)等。 第1章 微型计算机系统导论 1.4.4 I/O接口与输入输出设备 I/O接口是微型计算机与输入输出设备之间信息交换的桥梁。 I/O设备是微型计算机系统的重要组成部分。程序、数据及现场信息要通过输入设备输入给计算机。计算机的处理结果要通过输出设备输出,以便用户使用。常用的输入设备有:键盘、鼠标、数字化仪、扫描仪、A/D转换器等。常用的输出设备有显示器、打印机、绘图仪、D/A转换器等。 第1章 微型计算机系统导论 外设的种类很多,有机械式、电子式、机电式、光电式等,且一般来说,与CPU相比,外设的工作速度较低。外设处理的信息有数字量、模拟量、开关量等,而计算机只能处理数字量。另外,外设与微型计算机工作的逻辑时序也可能不一致。由于上述原因,微型机与外设之间的连接及信息的交换不能直接进行,而需要设计一个I/O接口作为微型机与外设之间的桥梁。I/O接口也称为I/O适配器,不同的外设必须通过不同的I/O适配卡(板)才能与微机相连。所以,I/O接口是微型计算机应用系统不可缺少的重要组成部件。任何一个微机应用系统的研制和开发,实际上是I/O接口的研制和开发。因此,I/O接口技术是本课程要重点讨论的内容之一, 第1章 微型计算机系统导论 1.5 微型计算机的工作过程 表1.1为在某模型机上完成“6+5”操作所需的机器语言程序和汇编语言程序,假设该机器语言程序从内存中地址为0000H单元开始存放。机器语言程序机器语言程序是计算机能够理解和直接执行的程序,其指令是用二进制代码表示和存储的。汇编语言程序汇编语言程序是用助记符语言表示的程序,计算机不能直接“识别”,需要经过“汇编程序”把它转换为机器语言程序后才能执行。机器语言指令和汇编语言指令是一一对应的,都是面向机器,不同的机器有着自己独有的机器语言指令系统和汇编语言指令系统。高级语言高级语言是不依赖于具体机型只面向过程的程序设计语言,由它所编写的高级语言程序,需经过编译程序或解释程序的编译或解释生成机器语言程序后才能执行。由此可见,不论程序是用什么语言编写,都必须首先将其转换为计算机能直接识别和执行的机器语言程序,然后才能由CPU逐条读取并执行。 第1章 微型计算机系统导论 内存单元地址机器语言程序 汇编语言程序 指令功能说明0000H0001H1011000100000110MOV A,06H双字节指令。将数字6送累加器A0002H0003H0000100000000101ADD A,05H双字节指令。将数字5与累加器A中的内容相加,结果存放在累加器A中。0004H11111110HLT停机指令表表1.1 完成完成“6+5”操作所需的机器语言程序和汇编语言程序操作所需的机器语言程序和汇编语言程序 第1章 微型计算机系统导论 微机的工作过程就是不断地从内存中取出指令并执行指令的过程。当开始运行程序时,首先应把第一条指令所在存储单元的地址赋予程序计数器PC(Program Counter),然后机器就进入取指阶段。在取指阶段,CPU从内存中读出的内容必为指令,于是,数据缓冲寄存器的内容将被送至指令寄存器IR,然后由指令译码器对IR中指令的操作码字段进行译码,并发出执行该指令所需要的各种微操作控制信号。取指阶段结束后,机器就进入执行指令阶段,这时CPU执行指令所规定的具体操作。当一条指令执行完毕后,转入下一条指令的取指阶段。这样周而复始地循环,直到遇到暂停指令时结束。 第1章 微型计算机系统导论 对于所有的机器指令而言,取指阶段都是由一系列相同的操作组成的,所用的时间都是相同的。而执行指令阶段由不同的事件顺序组成,它取决于被执行指令的类型,因此,执行阶段的时间不同指令间存在很大差异。 需要说明的是,指令通常由操作码(Operation Code)和操作数(Operand)两部分组成。操作码表示该指令完成的操作,而操作数表示参加操作的数本身或操作数所在的地址。指令根据其所含内容的不同而有单字节指令、双字节指令以及多字节指令等,因此,计算机在执行一条指令时,就可能要处理一到多个不等字节数目的代码信息,包括操作码、操作数或操作数的地址。 第1章 微型计算机系统导论 假定完成“6+5”操作所需的机器语言程序(表1.1所示)已由输入设备存放到内存中,如图1.7所示。下面进一步说明微机内部执行该程序的具体操作过程。 开始执行程序时,首先将第一条指令的首地址0000H送程序计数器PC,然后就进入第一条指令的取指阶段,其操作过程如图1.7所示。 第1章 微型计算机系统导论 图1.7 取第一条指令的操作过程示意图 0000H0001H0002H0003H0004H1011000100000110000010000000010111111110A0000 00000000 0000PLAID1011000110110001RA微处理器(CPU)内部数据总线DB至外部CB外部DB外部AB存储器地址单元内容ALUPCCPU发出读命令PC1ARDRIR第1章 微型计算机系统导论 把PC内容送地址寄存器AR. PC内容送入AR后,PC自动加1,即由0000H变为0001H,以使PC指向下一个要读取的内存单元。注意,此时AR的内容并没有变化。 把地址寄存器AR的内容0000H放在地址总线上,并送至存储器系统的地址译码电路(图中未画出),经地址译码选中相应的0000H单元。 CPU发出存储器读命令。 第1章 微型计算机系统导论 在读命令的控制下,把选中的0000H单元的内容即第一条指令的操作码B1H读到数据总线DB上。 把读出的内容B1H经数据总线送到数据缓冲寄存器DR。 指令译码。因为取出的是指令的操作码,故数据缓冲寄存器DR中的内容被送到指令寄存器IR,然后再送到指令译码器ID,经过译码,CPU“识别”出这个操作码代表的指令,于是经控制器发出执行该指令所需要的各种控制命令。 第1章 微型计算机系统导论 接着进入第一条指令的执行阶段。经过对操作码B1H的译码,CPU知道这是一条把下一单元中的操作数送累加器A的双字节指令,所以,执行该指令的操作就是从下一个存储单元中取出指令第二个字节中的操作数06H,并送入累加器A。该指令的执行过程如图1.8所示。 把PC内容01H送地址寄存器AR。 PC内容送入AR后,PC自动加1,即由0001H变为0002H。注意,此时AR的内容0001H并没有变化。 第1章 微型计算机系统导论 把地址寄存器AR的内容0001H放到地址总线上,并送至存储器系统的地址译码电路,经地址译码选中相应的0001H单元。 CPU发出存储器读命令。 在读命令的控制下,把选中的0001H单元的内容06H放到数据总线DB上。 把读出的内容06H经数据总线送到数据缓冲寄存器DR。 数据缓冲寄存器DR的内容经内部数据总线送到累加器A。于是,第一条指令执行完毕,操作数06H被送到累加器A中。
展开阅读全文