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

下载本文档

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

文档简介

第3章微型计算机的基本工作原理第3章微型计算机的基本工作原理本章教学目的本章以一个简化了的计算机作为分析对象,逐步讲述一般计算机的各种基本功能,从而概括出微型计算机的基本工作原理。本章教学目的本章以一个简化了的计算机作为分析对象,逐步讲述一本章学习要求1.掌握模型机的简化形式;模型机各部件的功能与作用;基于模型机的编程过程。位(Bit)、字(Word)、字节(Byte)、中央处理单元(CPU)等名词术语。

2.理解指令的意义;指令周期;控制字的含义。

3.了解程序设计步骤;控制部件的构成及其工作原理,模型机的功能扩展,现代技术在微型集中的应用。

本章学习要求1.掌握2.理解3.了解本章主要外语词汇PROM:ProgrammableReadOnlyMemory,可编程只读存储器CM:ControlMatrix,控制矩阵Bit:位Byte:字节Word:字本章主要外语词汇PROM:ProgrammableRea主要内容微型计算机结构的简化形式指令系统控制部件程序设计及执行指令的例行程序微机功能扩展初级程序设计举例现代技术在微机中的应用主要内容微型计算机结构的简化形式3.1微型计算机结构的简化形式微型计算机的基本功能能运算、能判别及能决策;速度快模型机简化了的微型计算机可以根据模型机理解各个基本电路和部件之间的信息流通过程,指令系统的意义,程序设计的步骤,控制部件的功能及其结构,还有控制矩阵产生控制字的过程等等3.1微型计算机结构的简化形式微型计算机的基本功能模型机的结构特点

功能简单:只能做两个数的加减法。

内存量小:只有一个16×8PROM(可编程序只读存储器)。

字长8位:二进制8位显示。

手动输入:用拨动开关输入程序和数据模型机的结构特点功能简单:只能做两个数的加减法。模型机的硬件结构1模型机的硬件结构1模型机的硬件结构21.程序计数器PC计数范围由0000~1111(0~F)。每次运行之前,先复位至0000。当取出一条指令后,PC应加1。2.存储地址寄存器MAR接收来自PC的二进制程序号,作为地址码送至PROM去。模型机的硬件结构21.程序计数器PC模型机的硬件结构3可编程序只读存储器PROM可编程序ROM,每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。因此,只要拨动开关,即可使该数据位置1或置0PROM同时具有RAM和ROM功能。右图是4×4PROM的电路图16×8PROM的横线应为16条(R0~R15),竖线为8条(D7D6…D0),地址码线应为4条(A3A2A1A0)模型机的硬件结构3可编程序只读存储器PROM模型机的硬件结构44.指令寄存器IRIR从PROM接收指令字(当LI=1,ER=1),同时将指令字分送到控制部件CON和W总线上去。指令字是8位的:××××

××××

MSB

LSB左4位为最高有效位(高4位),称为指令字段;右4位为最低有效位(低4位),称为地址字段。5.控制部件CON(1)每次运行前,CON先发出CLR=1,使有关的部件清0。此时:

PC=0000

IR=0000

0000(2)CON能发出同步脉冲CLK到各个部件去,使它们同步运行。(3)在CON中有控制矩阵CM,能根据IR送来的指令发出12位的控制字:

CON=CPEPLMERLIEILAEASUEULBLO根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序运行模型机的硬件结构44.指令寄存器IR模型机的硬件结构56.累加器A用以储存计算机运行期间的中间结果。它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。它还有一个数据输出端,将数据送至ALU去进行算术运算。这个输出是双态的,即是立即地送去,而不受E门的控制。7.算术逻辑部件ALU它只是一个二进制补码加法器/减法器(参见图1.9)。当SU=0,ALU,进行加法A+B;当SU=1,ALU,进行减法A-B,即(A+B′)。8.寄存器B将要与A相加减的数据暂存于此寄存器。它到ALU的输出也是双态的,即无E门控制。模型机的硬件结构56.累加器A模型机的硬件结构69.输出寄存器O计算机运行结束时,累加器A中存有答案。如要输出此答案,就得送入O。此时EA=1,LO=1,则O=A。典型的计算机具有若干个输出寄存器,称为输出接口电路。这样就可以驱动不同的外围设备,如打印机、显示器等。10.二进制显示器D这是用发光二极管(LED)组成的显示器。每一个LED接到寄存器O的一位上去。当某位为高电位时,则该LED发光。因为寄存器O是8位的,所以这里也由8个LED组成显示器。模型机的硬件结构69.输出寄存器O模型机的硬件结构7总体来说,模型机可以如下划分中央处理器CPU(包括PC,IR,CON,ALU,A及B);记忆装置M(MAR及PROM);输入/输出I/O接口(包括O及D)模型机的硬件结构7总体来说,模型机可以如下划分模型机的硬件结构8中央处理器(centralprocessingunit,

CPU)将程序计数功能(PC)、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。存储器M(memory)

此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。输入及输出接口(I/O)

是计算机实行人机对话的重要部件。实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。模型机的硬件结构8中央处理器(centralprocess3.2指令系统指令系统就是用来编制计算程序的一个指令集合微型机有5条指令LDA——将数据装入累加器A;ADD——进行加法运算;SUB——进行减法运算;OUT——输出结果;HLT——停机。不同型号的微处理机的指令系统是不同的,指令的条数也不相同。例如,Z80型的指令系统可达158条,M6800型有72条,6502型则有56条指令,而Intel80386则为152条。3.2指令系统指令系统就是用来编制计算程序的一个指令集合指令系统2例如一个计算程序的格式如下:助记符操作数注释LDA

R9;把R9中的数据存入AADD

RA;把RA中的数据与A的相加ADD

RB;把RB中的数据与A的相加ADD

RC;把RC中的数据与A的相加SUB

RD;把A中的数据与RD的相减OUT;输出A中的数据,即结果HLT;停机指令系统2例如一个计算程序的格式如下:指令系统3指令执行结果(A)=(R9)+(RA)+(RB)+(RC)-(RD)(D)=(A)加括号的意义是指被括上的寄存器或存储单元的内容。如(A)是指累加器A中的内容,(D)是指显示器显示出的数据,(R9)是存储单元R9中的数据,等等。((MAR))呢?HLT指令,使时钟脉冲停发,计算机停止运行,但电源未切断,显示器仍继续显示计算结果指令系统3指令执行结果(A)=(R9)+(RA)+(RB)+3.3程序设计程序设计中要包括:(1)编制汇编语言写的程序;(2)助记符的翻译;(3)存储器的分配。指令清单是程序设计的重要步骤上面讲的微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码——机器码。存储器中既要写入计算程序,也要存放参与运算的数据,因此,需要决定存储器中的存储单元应如何分配,这称为存储空间分配。3.3程序设计程序设计中要包括:程序设计23.3.1操作码表

这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。由于我们的计算机很简单,只有5个助记符,列成对照表助记符操作码LDA0000ADD0001SUB0010OUT1110HLT11113.3.2存储器分配在本微型机中就是要把PROM中的16个存储单元分配成两个区:程序存放区(指令区)和数据存放区(数据区)。指令区数据区存储单元R0~R7R8~RF二进制地址0000~01111000~1111程序设计23.3.1操作码表

这是由计算机制造厂提供的源程序目的程序存储单元指LDA

R9

→00001001

0000(R0)

ADD

RA

→00011010

0001(R1)令ADD

RB

→00011011

0010(R2)

ADD

RC

→00011100

0011(R3)区SUB

RD

→00101101

0100(R4)

OUT

→1110××××

0101(R5)

HLT

→1111××××

0110(R6)

数1610→00010000

1001(R9)

2010→00010100

1010(RA)据2410→00011000

1011(RB)

2810→00011100

1100(RC)区3210→00100000

1101(RD)3.3.3将源程序翻译成目的程序根据助记符与二进制的对照表(操作码表)将上节例题中的每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R0→0000,R1→0001,…,R9→1001)源程序目的程序存储单元3.33.3.4程序及数据的输入方法3.3.4程序及数据的输入方法程序及数据的输入方法2PROM分成两区,指令区一旦存入指令,就不许再改(除非要计算的公式改变了)。数据区是可以随时存入要参与运算的数据,并在计算过程中可以取出来将PROM的每个数据位的开关拨向置0或置1的位置输入在前面例题的计算程序设计好,并输入至PROM之后,就可以开始执行程序了。程序执行的第一步必须先使计算机复位,此时控制器先发出一个CLR为高电位的脉冲,同时时钟脉冲开始工作,即发出脉冲电压系列到各个部件去。 执行LDA

9H后A=0001

0000[16(10)]执行ADD

AH后A=0010

0100[36(10)]执行ADD

BH后A=0011

1100[60(10)]执行ADD

CH后A=0101

1000[88(10)]执行SUB

DH后A=0011

1000[56(10)]执行OUT后D=00111000[56(10)]执行HLT后D=0011

1000(不变)程序及数据的输入方法2PROM分成两区,指令区一旦存入指令,3.4执行指令的例行程序在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。一个机器周期为执行一条指令的时间。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。3.4执行指令的例行程序在程序和数据装入之后,启动按钮将执行指令的例行程序2环形计数器及机器节拍各位输出端Q0~Q5的电位就是机器节拍T0~T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。环形计数器的输出看做是一个字T,则:T=T5T4T3T2T1T0下图是一个6位的环形字,用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器节拍。执行指令的例行程序2环形计数器及机器节拍执行指令的例行程序3取指周期取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。取指周期,对任何一条指令都是一样的。因为任何一条指令都是沿着这个程式而将指令取出来,再将其高4位送入控制部件去进行分析,决定下面应如何执行(1)地址节拍(T0=1)在T0=1时,应将PC的内容(即第1个地址码)送入MAR(并通过MAR而达到PROM),所以,此时应有:

EP=1,即PC准备放出数据

LM=1,即MAR准备接收数据(2)储存节拍(T1=1)在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:

ER=1即PROM准备放出数据

LI=1即IR准备接收数据(3)增量节拍(T2=1)在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。执行指令的例行程序3取指周期取出指令的过程需要3个机器节拍,执行指令的例行程序4执行周期也需要3拍(T3,T4,T5),这种程序是由厂家编好了的,所以称为例行程序。以LDA例行程序为例,考查一下在此3节拍中,各个寄存器的内容应有何变化(4)T3=1时,IR已将从PROM来的指令码的高4位送至控制部件进行分析。此高4位是与LDA相应的二进制码“0000”,控制部件经过分析后就发出命令:EI=1,将IR的低4位送至W总线;LM=1,MAR接收此低4位数作为地址并立即送至PROM;例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。(5)T4=1应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即:ER=1,PROM准备放出数据;LA=1,A准备接收数据;(6)T5=1因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍执行指令的例行程序4执行周期也需要3拍(T3,T4,T5),3.5控制部件

控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件:环形计数器(RC);指令译码器(ID);控制矩阵(CM);其他控制电路。环形计数器、指令译码器、控制矩阵称为控制器。3.5控制部件

3.5.1指令译码器指令寄存器IR高4位被送入控制部件这高4位就是各种控制动作的代码,比如:0000代表LDA的控制动作;0001代表ADD的控制动作;0010代表SUB的控制动作;1110代表OUT的控制动作;1111代表HLT的控制动作。一个控制动作相当于一条控制线,就要使该控制线为高电位。这个由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。译码器可以由与门和非门组成,下图就是一个4位译码器。4位应该可以有16种编码的可能,由于我们的模拟机功能简单,只有5条指令,所以只要5个与门就够了。3.5.1指令译码器指令寄存器IR高4位被送入控制部件微机原理第三章课件3.5.2控制矩阵控制矩阵就是要决定控制字的输出电平高低一般每一节拍大都要求两个控制字位为高电位,有的可能只有一位为高电位的(如

CP=1),也可能是3位为高电位。控制矩阵是控制部件的核心部件下图是一个控制矩阵(CM)电路图控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,下图是本模型机中控制矩阵的电路图:3.5.2控制矩阵控制矩阵就是要决定控制字的输出电平高低控制矩阵控制矩阵控制矩阵2电路组成环形计数器,使T0至T5的6根横线轮流为高电位;指令控制信号线为中间4根横线,它们的电位高低由指令译码器决定控制字输出CON,最下面部分是由19个与门和6个或门组成一个逻辑电路。这个电路共有12个输出端,就是控制字CON:CON=CPEPIMERLIEILAEASUEULBLO

控制矩阵的初始化开机前使CLR为高电位,则此时环形计数器复位至T0=1,其他各位为0。这就是说,每一节拍都是从T0开始的。控制矩阵2电路组成3.5.3其他控制电路时钟脉冲发生器,包括时钟振荡器及射极跟随器,输出CLK运行/停车触发器,其输出去启动时钟振荡器“启动”和“清除”按钮,由人直接操作的主令电器,命令都是由此开始的3.5.3其他控制电路时钟脉冲发生器,包括时钟振荡器及射

3.6微型计算机功能的扩展模型机的不足硬件过于简单,尤其是控制部件只能接受5条指令而产生相应的例行程序。软件开发问题,即如何利用现有的指令系统,经过灵活的编程以解决更多更复杂的问题。扩展模型机的功能中央处理器控制器算术逻辑部件(ALU)寄存器的个数、性能等

3.6微型计算机功能的扩展模型机的不足算术逻辑部件及控制器的功能有相当的扩展,这样,就既可能进行逻辑运算,也有跳转和循环运算的功能。控制器的增强,指令系统已扩大到28条指令增加的部件子程序计数器SC变址寄存器X随机存取存储器RAMMDR输入寄存器算术逻辑部件及控制器的功能有相当的扩展,这样,就既可能进行逻微型计算机功能的扩展5本机共有28条指令,可分为3类:1.访问存储器指令(memoryreferenceinstruction,

MRI)与存储器的读/写有关,其地址字段必须为8位(256个地址)。特点:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。助记符操作码操作数意义LDA0000nn将地址nn的内容装入AADD0001nn将地址nn的内容与A相加SUB0010nn将地址nn的内容与A相减STA0011nn将A中内容存入地址nn中LDB0100nn将地址nn的内容装入BLDX0101nn将地址nn的内容装入X微型计算机功能的扩展5本机共有28条指令,可分为3类:助记符微型计算机功能的扩展62.转移指令 可用以改变程序的顺序,可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。特点:由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。助记符操作码操作数意义JMP0110nn无条件转移至程序nnJAM0111nn(A)=负则转移至程序nnJAZ1000nn(A)=0则转移至程序nnJIM1001nn(X)=负则转移至程序nnJIZ1010nn(X)=0则转移至程序nnJMS1011起始地址转至子程序的起始地址微型计算机功能的扩展62.转移指令助记符操作码操作数意义微型计算机功能的扩展73.逻辑运算指令 控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。微型计算机功能的扩展73.逻辑运算指令微型计算机功能的扩展8助记符操作码选择码低4位意义NOP11110000随意空操作CLA11110001累加器A清零XCH11110010累加器A与变址器X内容交换DEX11110011变址器X内容减1INX11110100变址器X内容加1CMA11110101累加器A内容取反CMB11110110累加器B内容取反LOR11110111A和B各位进行或运算AND11111000A和B各位进行与运算NOR11111001A和B各位进行或非运算NAN11111010A和B各位进行与非运算XOR11111011A和B各位进行异或运算BRB11111100由子程序返回主程序INP11111101输入:外部数据装入I再装入AOUT11111110输出:A的内容装入OHLT11111111停机:CLK停发微型计算机功能的扩展8助记符操作码选择码低4位意义NOP113.7初级程序设计举例利用上节提供的指令系统,可以据此进行程序设计。初级程序主要包括下列的程序模式:简单程序——程序一统到底,中间没有任何分支和跳转。分支程序——程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。循环程序——程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。调用子程序——程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。3.7初级程序设计举例利用上节提供的指令系统,可以据此初级程序设计举例2【例3.1】分支程序指R0

LDA

6H

令R1

SUB

7H

区R2

JAM

5H

R3

JAZ

5H

R4

JMP

1H

R5

HLT数R6

25(10)据区R7

9(10)根据程序清单,分析程序执行的顺序及结果A<--(6H)A<-(A)-(7H)(A)<0开始(A)=0HLTYYNN初级程序设计举例2【例3.1】分支程序A<--(6H)A<-初级程序设计举例4【例3.2】循环程序 利用变址寄存器可以设计一个循环程序:R0

LDX

5H

R1

DEX

R2

JIZ

4H

R3

JMP

1H

R4

HLT停机R5

3(10)

分析程序运行的过程X<--(R5)X<-(X)-1(X)=0开始HLTYN初级程序设计举例4【例3.2】循环程序X<--(R5)X<-初级程序设计举例6【例3.3】乘法计算的程序利用循环程序可作乘法计算,例如要求12(10)×8(10),就是要求将12(10)连加8次。这就可以利用循环程序,让它进行8次循环。程序如下:

R0

NOP

R1

LDX

AH

R2

CLA

R3

DEX

R4

ADD

9H

7次返回

R5

JIZ

7H

R6

JMP

3H

R7

OUT转出循环R8

HLT

R9

12(10)

RA

8(10)X<--(AH)A<-0X<-(X)-1(X)=0开始OUTYNA<-(A)+(9H)OUTOUTHLT初级程序设计举例6【例3.3】乘法计算的程序X<--(AH)初级程序设计举例7【例3.4】逻辑运算的例子设计一个程序,用以测试某个来自接口电路的输入数I0(12位),以确定该数是否为奇数。如I0为奇数(即最后一位为1),则显示一个11111111

1111;如I0是偶数(最后一位为0),则显示一个0000

0000

0000。程序清单如下:R0

INP;将I0装入累加器A

R1

LDB

9H;将(R9)装入寄存器B

R2

AND;将(B)与(A)进行“与”运算R3

JAZ

6H;(A)=0,则转移至R6

R4

LDA

AH;将(RA)装入累加器A

R5

JMP

7H;无条件转至R7

R6

LDA

BH;将(RB)装入累加器A

R7

OUT;输出(A)至显示器R8

HLT;停机R9

0000

0000

0001

(掩码)

RA

1111

1111

1111奇数标志RB

0000

0000

0000偶数标志初级程序设计举例7【例3.4】逻辑运算的例子初级程序设计举例8【例3.5】子程序设计 设计一个计算x2+y2+z2=?的计算程序。由于x2,y2和z2在形式上都是一样的,是求一个数的平方值,可将x2做成一个子程序而存于存储器中一个固定的区域中,用到时,即可将其调出使用。将此子程序存于以RF2为起始地址(其地址为F2H,即11110010的存储单元)的一个区域中,则可设计其程序如下:

RF2

STA

CAH;将(A)暂存于RCA

RF3

LDX

CAH;将(RCA)装入X

RF4

CLA;累加器A清零循环程序

RF5

DEX;(X)减1循环体

RF6

ADD

CAH

;将(RCA)与(A)相加x个x相加的过程

RF7

JIZ

F9H;(X)=0,则转移到RF9

RF8

JMP

F5H;无条件转移至RF5

RF9

BRB;返回主程序RC6

RC6

x

RC7

y;被运算的数据

RC8

z

RC9

RCA;运算过程暂存地址

初级程序设计举例8【例3.5】子程序设计3.8控制部件的扩展3.8控制部件的扩展以LDA指令为例,该指令的操作码(0000),如有一个操作数为nn(8位),则形成的指令为LDAnn。设此指令存于RAM的指令区的第一个存储单元(其地址为00000000),nn是指参与运算的数据在RAM的数据区中所在的存储单元的地址(n代表一个4位二进制数),如下图所示:以LDA指令为例,该指令的操作码(0000),如有一个操作数3.9现代技术在微型计算机中的应用16微型计算机与8位微型机相比的优点更多的寄存器存储器寻址范围增加更大的指令系统更高的速度新型体系结构存储器管理的改进3.9现代技术在微型计算机中的应用16微型计算机与8位一般微计算机的组成、位(Bit)、字(Word)、字节(Byte)、中央处理单元(CPU)等名词术语。模型机的简化电路、指令系统和程序设计。微型机的控制部件的结构。模型机的功能扩展。现代技术在微型机中的应用。本章小结本章小结课后作业:

P70:3.23.33.63.83.12

思考题练习:概念:命令字、例行程序、机器周期、取指周期、执行周期在微型计算机的简化形式中,环形计数器用于产生机器节拍,取出指令的过程需要T0、T1和T2三个节拍,T0称为_____节拍,T1称为储存节拍,T2称为_______节拍。举例说明模型机中用到了那些寄存器,并说明每种寄存器的作用。课后作业:思考题练习:参考文献郑学坚,周斌.微型计算机原理及应用(第三版).北京:清华大学出版社,2001姚燕南,薛钧义.微型计算机原理.西安:西安电子科技大学出版社,1994邹逢兴.微型计算机接口原理与技术.长沙:国防科技大学出版社,1993幸云辉.16位微型计算机原理与应用.北京:北京邮电学院出版社,1991张钧良.计算机组成原理.北京:清华大学出版社,2003JohnDCarpinelli.李仁发,彭曼曼译.计算机系统组成与体系结构.北京:人民邮电出版社,2003参考文献郑学坚,周斌.微型计算机原理及应用(第三版).北本章结束

谢谢!本章结束

谢谢!第3章微型计算机的基本工作原理第3章微型计算机的基本工作原理本章教学目的本章以一个简化了的计算机作为分析对象,逐步讲述一般计算机的各种基本功能,从而概括出微型计算机的基本工作原理。本章教学目的本章以一个简化了的计算机作为分析对象,逐步讲述一本章学习要求1.掌握模型机的简化形式;模型机各部件的功能与作用;基于模型机的编程过程。位(Bit)、字(Word)、字节(Byte)、中央处理单元(CPU)等名词术语。

2.理解指令的意义;指令周期;控制字的含义。

3.了解程序设计步骤;控制部件的构成及其工作原理,模型机的功能扩展,现代技术在微型集中的应用。

本章学习要求1.掌握2.理解3.了解本章主要外语词汇PROM:ProgrammableReadOnlyMemory,可编程只读存储器CM:ControlMatrix,控制矩阵Bit:位Byte:字节Word:字本章主要外语词汇PROM:ProgrammableRea主要内容微型计算机结构的简化形式指令系统控制部件程序设计及执行指令的例行程序微机功能扩展初级程序设计举例现代技术在微机中的应用主要内容微型计算机结构的简化形式3.1微型计算机结构的简化形式微型计算机的基本功能能运算、能判别及能决策;速度快模型机简化了的微型计算机可以根据模型机理解各个基本电路和部件之间的信息流通过程,指令系统的意义,程序设计的步骤,控制部件的功能及其结构,还有控制矩阵产生控制字的过程等等3.1微型计算机结构的简化形式微型计算机的基本功能模型机的结构特点

功能简单:只能做两个数的加减法。

内存量小:只有一个16×8PROM(可编程序只读存储器)。

字长8位:二进制8位显示。

手动输入:用拨动开关输入程序和数据模型机的结构特点功能简单:只能做两个数的加减法。模型机的硬件结构1模型机的硬件结构1模型机的硬件结构21.程序计数器PC计数范围由0000~1111(0~F)。每次运行之前,先复位至0000。当取出一条指令后,PC应加1。2.存储地址寄存器MAR接收来自PC的二进制程序号,作为地址码送至PROM去。模型机的硬件结构21.程序计数器PC模型机的硬件结构3可编程序只读存储器PROM可编程序ROM,每条横线与竖线都有一条由开关和二极管串联的电路将它们连接起来。因此,只要拨动开关,即可使该数据位置1或置0PROM同时具有RAM和ROM功能。右图是4×4PROM的电路图16×8PROM的横线应为16条(R0~R15),竖线为8条(D7D6…D0),地址码线应为4条(A3A2A1A0)模型机的硬件结构3可编程序只读存储器PROM模型机的硬件结构44.指令寄存器IRIR从PROM接收指令字(当LI=1,ER=1),同时将指令字分送到控制部件CON和W总线上去。指令字是8位的:××××

××××

MSB

LSB左4位为最高有效位(高4位),称为指令字段;右4位为最低有效位(低4位),称为地址字段。5.控制部件CON(1)每次运行前,CON先发出CLR=1,使有关的部件清0。此时:

PC=0000

IR=0000

0000(2)CON能发出同步脉冲CLK到各个部件去,使它们同步运行。(3)在CON中有控制矩阵CM,能根据IR送来的指令发出12位的控制字:

CON=CPEPLMERLIEILAEASUEULBLO根据控制字中各位的置1或置0情况,计算机就能自动地按指令程序运行模型机的硬件结构44.指令寄存器IR模型机的硬件结构56.累加器A用以储存计算机运行期间的中间结果。它能接收W总线送来的数据(LA=1),也能将数据送到W总线上去(EA=1)。它还有一个数据输出端,将数据送至ALU去进行算术运算。这个输出是双态的,即是立即地送去,而不受E门的控制。7.算术逻辑部件ALU它只是一个二进制补码加法器/减法器(参见图1.9)。当SU=0,ALU,进行加法A+B;当SU=1,ALU,进行减法A-B,即(A+B′)。8.寄存器B将要与A相加减的数据暂存于此寄存器。它到ALU的输出也是双态的,即无E门控制。模型机的硬件结构56.累加器A模型机的硬件结构69.输出寄存器O计算机运行结束时,累加器A中存有答案。如要输出此答案,就得送入O。此时EA=1,LO=1,则O=A。典型的计算机具有若干个输出寄存器,称为输出接口电路。这样就可以驱动不同的外围设备,如打印机、显示器等。10.二进制显示器D这是用发光二极管(LED)组成的显示器。每一个LED接到寄存器O的一位上去。当某位为高电位时,则该LED发光。因为寄存器O是8位的,所以这里也由8个LED组成显示器。模型机的硬件结构69.输出寄存器O模型机的硬件结构7总体来说,模型机可以如下划分中央处理器CPU(包括PC,IR,CON,ALU,A及B);记忆装置M(MAR及PROM);输入/输出I/O接口(包括O及D)模型机的硬件结构7总体来说,模型机可以如下划分模型机的硬件结构8中央处理器(centralprocessingunit,

CPU)将程序计数功能(PC)、指令寄存功能(IR)、控制功能(CON)、算术逻辑功能(ALU)以及暂存中间数据功能(A及B)集成在一块电路器件上的集成电路(IC)。存储器M(memory)

此图例中只包括存储地址寄存器(MAR)及可编程存储器(实际还包括了地址译码功能),这就是微型计算机的“内存”。实际的“内存”要包括更多的内容(如ROM,RAM及EPROM等)和更大的存储容量。输入及输出接口(I/O)

是计算机实行人机对话的重要部件。实际微型计算机的输入设备多为键盘,输出则为监视器(即电视屏显示器),因而必须有专用的输出接口电路。模型机的硬件结构8中央处理器(centralprocess3.2指令系统指令系统就是用来编制计算程序的一个指令集合微型机有5条指令LDA——将数据装入累加器A;ADD——进行加法运算;SUB——进行减法运算;OUT——输出结果;HLT——停机。不同型号的微处理机的指令系统是不同的,指令的条数也不相同。例如,Z80型的指令系统可达158条,M6800型有72条,6502型则有56条指令,而Intel80386则为152条。3.2指令系统指令系统就是用来编制计算程序的一个指令集合指令系统2例如一个计算程序的格式如下:助记符操作数注释LDA

R9;把R9中的数据存入AADD

RA;把RA中的数据与A的相加ADD

RB;把RB中的数据与A的相加ADD

RC;把RC中的数据与A的相加SUB

RD;把A中的数据与RD的相减OUT;输出A中的数据,即结果HLT;停机指令系统2例如一个计算程序的格式如下:指令系统3指令执行结果(A)=(R9)+(RA)+(RB)+(RC)-(RD)(D)=(A)加括号的意义是指被括上的寄存器或存储单元的内容。如(A)是指累加器A中的内容,(D)是指显示器显示出的数据,(R9)是存储单元R9中的数据,等等。((MAR))呢?HLT指令,使时钟脉冲停发,计算机停止运行,但电源未切断,显示器仍继续显示计算结果指令系统3指令执行结果(A)=(R9)+(RA)+(RB)+3.3程序设计程序设计中要包括:(1)编制汇编语言写的程序;(2)助记符的翻译;(3)存储器的分配。指令清单是程序设计的重要步骤上面讲的微型计算机并不认识助记符的意义,因此必须将指令清单中每一条指令都翻译成二进制码——机器码。存储器中既要写入计算程序,也要存放参与运算的数据,因此,需要决定存储器中的存储单元应如何分配,这称为存储空间分配。3.3程序设计程序设计中要包括:程序设计23.3.1操作码表

这是由计算机制造厂提供的翻译表,它是每个助记符与二进制码的相应对照表。由于我们的计算机很简单,只有5个助记符,列成对照表助记符操作码LDA0000ADD0001SUB0010OUT1110HLT11113.3.2存储器分配在本微型机中就是要把PROM中的16个存储单元分配成两个区:程序存放区(指令区)和数据存放区(数据区)。指令区数据区存储单元R0~R7R8~RF二进制地址0000~01111000~1111程序设计23.3.1操作码表

这是由计算机制造厂提供的源程序目的程序存储单元指LDA

R9

→00001001

0000(R0)

ADD

RA

→00011010

0001(R1)令ADD

RB

→00011011

0010(R2)

ADD

RC

→00011100

0011(R3)区SUB

RD

→00101101

0100(R4)

OUT

→1110××××

0101(R5)

HLT

→1111××××

0110(R6)

数1610→00010000

1001(R9)

2010→00010100

1010(RA)据2410→00011000

1011(RB)

2810→00011100

1100(RC)区3210→00100000

1101(RD)3.3.3将源程序翻译成目的程序根据助记符与二进制的对照表(操作码表)将上节例题中的每条指令的助记符译成二进制码,并将存储单元符号写成地址码(即R0→0000,R1→0001,…,R9→1001)源程序目的程序存储单元3.33.3.4程序及数据的输入方法3.3.4程序及数据的输入方法程序及数据的输入方法2PROM分成两区,指令区一旦存入指令,就不许再改(除非要计算的公式改变了)。数据区是可以随时存入要参与运算的数据,并在计算过程中可以取出来将PROM的每个数据位的开关拨向置0或置1的位置输入在前面例题的计算程序设计好,并输入至PROM之后,就可以开始执行程序了。程序执行的第一步必须先使计算机复位,此时控制器先发出一个CLR为高电位的脉冲,同时时钟脉冲开始工作,即发出脉冲电压系列到各个部件去。 执行LDA

9H后A=0001

0000[16(10)]执行ADD

AH后A=0010

0100[36(10)]执行ADD

BH后A=0011

1100[60(10)]执行ADD

CH后A=0101

1000[88(10)]执行SUB

DH后A=0011

1000[56(10)]执行OUT后D=00111000[56(10)]执行HLT后D=0011

1000(不变)程序及数据的输入方法2PROM分成两区,指令区一旦存入指令,3.4执行指令的例行程序在程序和数据装入之后,启动按钮将启动信号传给控制部件CON,然后控制部件产生控制字,以便取出和执行每条指令。一个机器周期为执行一条指令的时间。机器周期又可分为取指周期和执行周期。取指过程和执行过程机器都得通过不同的机器节拍。在这些节拍内,每个寄存器(PC,MAR,IR,A,B,O等)的内容可能发生变化。3.4执行指令的例行程序在程序和数据装入之后,启动按钮将执行指令的例行程序2环形计数器及机器节拍各位输出端Q0~Q5的电位就是机器节拍T0~T5的电位,由于时钟脉冲是经过反相器再接到环形计数器(图中的“汽泡”表示非门)的CLK端的,所以各节拍之间的转换是在时钟脉冲的负边缘开始的。环形计数器的输出看做是一个字T,则:T=T5T4T3T2T1T0下图是一个6位的环形字,用以控制6条电路,使它们依次轮流为高电位,T0,T1,T2,T3,T4和T5称为机器节拍。执行指令的例行程序2环形计数器及机器节拍执行指令的例行程序3取指周期取出指令的过程需要3个机器节拍,在清零和启动之后第1个节拍为T0。取指周期,对任何一条指令都是一样的。因为任何一条指令都是沿着这个程式而将指令取出来,再将其高4位送入控制部件去进行分析,决定下面应如何执行(1)地址节拍(T0=1)在T0=1时,应将PC的内容(即第1个地址码)送入MAR(并通过MAR而达到PROM),所以,此时应有:

EP=1,即PC准备放出数据

LM=1,即MAR准备接收数据(2)储存节拍(T1=1)在T1=1时,应将PROM中由PC送来的地址码所指定的存储单元中的内容送到IR,同时IR立即将其高4位送至控制部件。因此,在此节拍到来之前,即应准备好:

ER=1即PROM准备放出数据

LI=1即IR准备接收数据(3)增量节拍(T2=1)在T2=1时,应使PC加1,做好下一条指令的取指准备。因此,CP=1,即命令PC计数。执行指令的例行程序3取指周期取出指令的过程需要3个机器节拍,执行指令的例行程序4执行周期也需要3拍(T3,T4,T5),这种程序是由厂家编好了的,所以称为例行程序。以LDA例行程序为例,考查一下在此3节拍中,各个寄存器的内容应有何变化(4)T3=1时,IR已将从PROM来的指令码的高4位送至控制部件进行分析。此高4位是与LDA相应的二进制码“0000”,控制部件经过分析后就发出命令:EI=1,将IR的低4位送至W总线;LM=1,MAR接收此低4位数作为地址并立即送至PROM;例题中,送至PROM的地址就是R9的二进制码地址(1001)。也就是说,第1次访问PROM的是其指令区,第2次访问的是其数据区。(5)T4=1应将PROM的数据区的存储单元(如R9,即1001)的内容送入累加器A,即:ER=1,PROM准备放出数据;LA=1,A准备接收数据;(6)T5=1因为T4=1时,已将数据存放入A中,所以,LDA的例行程序就已完成,T5节拍就变成空拍执行指令的例行程序4执行周期也需要3拍(T3,T4,T5),3.5控制部件

控制部件是使计算机能够成为自动机的关键部件。它包括下列主要部件:环形计数器(RC);指令译码器(ID);控制矩阵(CM);其他控制电路。环形计数器、指令译码器、控制矩阵称为控制器。3.5控制部件

3.5.1指令译码器指令寄存器IR高4位被送入控制部件这高4位就是各种控制动作的代码,比如:0000代表LDA的控制动作;0001代表ADD的控制动作;0010代表SUB的控制动作;1110代表OUT的控制动作;1111代表HLT的控制动作。一个控制动作相当于一条控制线,就要使该控制线为高电位。这个由4个位组成的编码,必须被译成一个信号,即译为某一控制线为高电位,这就是译码器的任务。译码器可以由与门和非门组成,下图就是一个4位译码器。4位应该可以有16种编码的可能,由于我们的模拟机功能简单,只有5条指令,所以只要5个与门就够了。3.5.1指令译码器指令寄存器IR高4位被送入控制部件微机原理第三章课件3.5.2控制矩阵控制矩阵就是要决定控制字的输出电平高低一般每一节拍大都要求两个控制字位为高电位,有的可能只有一位为高电位的(如

CP=1),也可能是3位为高电位。控制矩阵是控制部件的核心部件下图是一个控制矩阵(CM)电路图控制字有12位,每一指令要执行6拍,每拍均有不同的位为高电位,下图是本模型机中控制矩阵的电路图:3.5.2控制矩阵控制矩阵就是要决定控制字的输出电平高低控制矩阵控制矩阵控制矩阵2电路组成环形计数器,使T0至T5的6根横线轮流为高电位;指令控制信号线为中间4根横线,它们的电位高低由指令译码器决定控制字输出CON,最下面部分是由19个与门和6个或门组成一个逻辑电路。这个电路共有12个输出端,就是控制字CON:CON=CPEPIMERLIEILAEASUEULBLO

控制矩阵的初始化开机前使CLR为高电位,则此时环形计数器复位至T0=1,其他各位为0。这就是说,每一节拍都是从T0开始的。控制矩阵2电路组成3.5.3其他控制电路时钟脉冲发生器,包括时钟振荡器及射极跟随器,输出CLK运行/停车触发器,其输出去启动时钟振荡器“启动”和“清除”按钮,由人直接操作的主令电器,命令都是由此开始的3.5.3其他控制电路时钟脉冲发生器,包括时钟振荡器及射

3.6微型计算机功能的扩展模型机的不足硬件过于简单,尤其是控制部件只能接受5条指令而产生相应的例行程序。软件开发问题,即如何利用现有的指令系统,经过灵活的编程以解决更多更复杂的问题。扩展模型机的功能中央处理器控制器算术逻辑部件(ALU)寄存器的个数、性能等

3.6微型计算机功能的扩展模型机的不足算术逻辑部件及控制器的功能有相当的扩展,这样,就既可能进行逻辑运算,也有跳转和循环运算的功能。控制器的增强,指令系统已扩大到28条指令增加的部件子程序计数器SC变址寄存器X随机存取存储器RAMMDR输入寄存器算术逻辑部件及控制器的功能有相当的扩展,这样,就既可能进行逻微型计算机功能的扩展5本机共有28条指令,可分为3类:1.访问存储器指令(memoryreferenceinstruction,

MRI)与存储器的读/写有关,其地址字段必须为8位(256个地址)。特点:由指令寄存器分出来的地址字段(8位的地址字段)必定进入MAR(存储器地址寄存器),这就能够识别出MRI这类指令。助记符操作码操作数意义LDA0000nn将地址nn的内容装入AADD0001nn将地址nn的内容与A相加SUB0010nn将地址nn的内容与A相减STA0011nn将A中内容存入地址nn中LDB0100nn将地址nn的内容装入BLDX0101nn将地址nn的内容装入X微型计算机功能的扩展5本机共有28条指令,可分为3类:助记符微型计算机功能的扩展62.转移指令 可用以改变程序的顺序,可以在规定的某种条件下将程序进程向前转移或向后转移,也可跳过若干条指令语句或去执行某个子程序之后再回至下一条指令语句。特点:由指令寄存器IR分出来的地址段(8位)将进入程序计数器PC(即LP=1),或子程序计数器(LS=1)。助记符操作码操作数意义JMP0110nn无条件转移至程序nnJAM0111nn(A)=负则转移至程序nnJAZ1000nn(A)=0则转移至程序nnJIM1001nn(X)=负则转移至程序nnJIZ1010nn(X)=0则转移至程序nnJMS1011起始地址转至子程序的起始地址微型计算机功能的扩展62.转移指令助记符操作码操作数意义微型计算机功能的扩展73.逻辑运算指令 控制器只要接到1111的高4位,即知为运算指令,然后控制器再辨认选择码以确定进行什么样的运算。这类指令的特点是与存储器及程序计数器都无关,而是与ALU、A及B寄存器有关。由于这些运算都是在ALU和A,B之间进行的,所以不需地址码。低4位可以不置数,由其随机存在,并不产生任何影响。微型计算机功能的扩展73.逻辑运算指令微型计算机功能的扩展8助记符操作码选择码低4位意义NOP11110000随意空操作CLA11110001累加器A清零XCH11110010累加器A与变址器X内容交换DEX11110011变址器X内容减1INX11110100变址器X内容加1CMA11110101累加器A内容取反CMB11110110累加器B内容取反LOR11110111A和B各位进行或运算AND11111000A和B各位进行与运算NOR11111001A和B各位进行或非运算NAN11111010A和B各位进行与非运算XOR11111011A和B各位进行异或运算BRB11111100由子程序返回主程序INP11111101输入:外部数据装入I再装入AOUT11111110输出:A的内容装入OHLT11111111停机:CLK停发微型计算机功能的扩展8助记符操作码选择码低4位意义NOP113.7初级程序设计举例利用上节提供的指令系统,可以据此进行程序设计。初级程序主要包括下列的程序模式:简单程序——程序一统到底,中间没有任何分支和跳转。分支程序——程序进行中,根据判断程序执行的不同结果而分别跳转至其他子程序去。循环程序——程序进行过程中,在某一循环体进行若干次循环运行,然后再继续前进。调用子程序——程序进行至某一阶段,调用存储于某存储区中的某个子程序,然后返回至主程序继续运行下去。3.7初级程序设计举例利用上节提供的指令系统,可以据此初级程序设计举例2【例3.1】分支程序指R0

LDA

6H

令R1

SUB

7H

区R2

JAM

5H

R3

JAZ

5H

R4

JMP

1H

R5

HLT数R6

25(10)据区R7

9(10)根据程序清单,分析程序执行的顺序及结果A<--(6H)A<-(A)-(7H)(A)<0开始(A)=0HLTYYNN初级程序设计举例2【例3.1】分支程序A<--(6H)A<-初级程序设计举例4【例3.2】循环程序 利用变址寄存器可以设计一个循环程序:R0

LDX

5H

R1

DEX

R2

JIZ

4H

R3

JMP

1H

R4

HLT停机R5

3(10)

分析程序运行的过程X<--(R5)X<-(X)-1(X)=0开始HLTYN初级程序设计举例4【例3.2】循环程序X<--(R5)X<-初级程序设计举例6【例3.3】乘法计算的程序利用循环程序可作乘法计算,例如要求12(10)

温馨提示

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

评论

0/150

提交评论