计算机能够自动地进行计算,是由于人把实现计算的一步步操作用命令的形式(即一条条指令)预先送入到存储器中,在执行时,机器把这些命令从存储器中一条条地取出来,加以翻译和执行。
如计算A+B=?,假定A、B的值已存储在存储器中,进行这个简单运算,通常需要做以下几步操作。
第一步:从存储器中取数A;
第二步:从存储器中取数B并与A相加;
第三步:把A+B的结果存储到存储器;
第四步:停机。
所有这些取数、相加、存数等都是一种基本操作,把计算机执行的各种操作用命令的形式写下来,这就是指令,计算机所能执行的各种指令的集合,就是计算机的指令系统。计算机的指令系统,是在设计CPU时由设计人员规定的。在使用计算机时,必须把要解决的问题编成一条条指令,这些指令的有序集合就称为程序。
指令通常分成操作码和操作数两大部分。操作码表示计算机执行什么操作;操作数表示参加操作的数本身或操作数存储在存储器的地址。
因为计算机只能够识别二进制数,所以计算机的指令系统中所有指令,都必须以二进制编码的形式来表示,这称为机器指令。为了便于记忆和理解,人们用助记符(便于记忆的符号)代替操作码,用符号表示操作数,这样形成的指令称为汇编语言指令。例如:MOV AL,09H,其中MOV是操作码助记符,AL,09H是两个操作数。用汇编语言指令编写的程序称为汇编语言源程序,源程序必须翻译成机器能识别的二进制数编码,计算机才能执行。
微机的工作过程就是执行程序的过程。程序由指令序列组成,由用户预先输入到存储器中。所以,执行程序的过程就是执行指令序列的过程,也就是周而复始地取指令、执行指令的过程。
图1-8所示是微机的结构图,它是由微处理器(CPU)、存储器、接口电路组成的,通过三条总线(BUS):地址总线(AB)、数据总线(DB)、控制总线(CB)来连接。为简化问题,认为要执行的程序以及数据,已存储在存储器中。
1.CPU的结构
图1-8 微机的结构图
CPU的基本结构如图1-9中虚线以上部分所示,图1-9中各单元定义如下:
ALU—算术逻辑单元;F—标志寄存器;
AL—累加器;BL—寄存器;
AR—地址寄存器;DR—数据寄存器;
IR—指令寄存器;ID—指令译码器;
IP—指令指针寄存器;PLA—可编程逻辑阵列;
AB—地址总线;DB—数据总线。
要执行的指令的地址由程序计数器PC提供,地址寄存器AR将要寻址的单元的地址通过地址总线AB送至存储器,从存储器中取出指令后,由数据寄存器DR送至指令译码器ID译码,再通过控制电路发出执行一条指令所需要的各种控制信息。
2.存储器
存储器的结构如图1-9虚线以下部分所示。
图1-9 一个模型机的CPU结构
存储器以二进制代码形式存储数据和程序,具有非破坏性读出的特点,即从存储器读出信息后,存储器原来所保存的信息依然不变。
内存储器由许多存储单元组成,每个存储单元可以是1、4、8位等二进制数,其中8位为一个字节,4位为半个字节。内存储器中的每个存储单元都对应一个编号,称为该单元的存储地址,简称地址。内存容量是指地址单元数乘以每个单元的二进制位数,也可用上述乘积即总位数来表示。微处理器就是按照存储单元的地址来访问内存的。每次向内存中写入数据或从内存中读出数据时,都首先由微处理器给出地址,然后再发出读或写控制信号,从而把数据写入指定地址的单元或从指定地址的单元读出数据。
3.简单程序举例
有三条用汇编语言指令表示的程序如下:
(1)MOV AL,09H B009H
(2)ADD AL,12H 0412H
(3)HLT F4H
第1条指令MOV AL,09H是把立即数09H送入累加器AL;
第2条指令ADD AL,12H是把AL中的内容和立即数12H相加,结果(09H+12H=lBH)存入AL中;
第3条指令HLT为暂停指令。可见这段程序的功能是把09H和12H相加后存放在AL中。
4.程序执行的过程
程序执行前,必须先将程序的机器代码装入内存储器,同时将第一条指令的起始地址(见图1-9中的100H存储单元)赋予指令指针寄存器IP。程序启动后,计算机根据IP的值从第一条指令开始执行。(www.xing528.com)
(1)取第一条指令的过程
①IP的值100H送入地址寄存器AR。
②IP的内容自动加1,即100H变为101H。
③地址寄存器AR将地址码100H通过地址总线AB送到地址译码器,经译码后选中100H单元。
④CPU发出读控制信号。
⑤所选中的100H单元内容B0H通过数据总线DB送到数据寄存器DR。
⑥因是取指令操作阶段,取出的是指令操作码B0H,故DR把它送到指令寄存器IR。
⑦指令寄存器IR中的操作码B0H经指令译码器ID译码后,通过可编程逻辑阵列PLA发出执行该指令的有关控制命令。
然后就转入了执行第一条指令阶段。操作码B0H经译码后知道这是一条把立即数送累加器AL的指令,立即数在指令的第二字节中,则执行第一条指令就是从内存中取出指令第二字节(即09H)送入AL。
(2)执行第一条指令的过程
①将IP的内容101H送入地址寄存器AR。
②IP的内容自动加1(变为102H)。
③地址寄存器AR通过地址总线AB把地址码101H送到地址译码器,经地址译码后选中相应的101H存储单元。
④CPU发出读控制信号。
⑤所选中的101H单元内容09H经数据总线DB送到数据寄存器DR。
⑥因已知读出的是操作数,且指令要求把它送累加器AL,所以数据寄存器DR中的数据09H通过内部总线送到AL,则第一条指令的执行过程全部完成。
接着,进入第二条指令的取操作码阶段和第二条指令的执行阶段。
和第一条指令类似,由IP的值取得操作码04H,经指令译码器ID译码后知道这是一条加法指令,其中第一个操作数已在AL中,另一个操作数(12H)在指令的第二个字节中。此时,首先从内存中取出12H送ALU的I2端,然后将AL中的内容与12H相加,结果再送回AL中。
至此,该程序段的主要工作已经完成,第三条指令只是告诉CPU进入“暂停”。这是通过第三条指令HLT的机器码F4H的取指、译码后实现的。
分析以上模型机执行程序的工作过程之后,就可以将CPU的操作归纳如下:
①把指令地址放在地址总线上。
②通过数据总线从存储器中取出指令,并对指令译码。
③根据指令中的地址码取出操作数据。
执行指令码所规定的操作。
在操作过程中提供表示状态的标志信号、控制信号和定时信号。
习题
1-2 写出下列数表示的无符号数和有符号数的范围。
(1)8位二进制数 (2)16位二进制数
1-3 用8位和16位二进制数,写出下列数的原码、反码、补码。
(1)+1 (2)−1 (3)+45 (4)−45 (5)+127 (6)−128
1-4 写出与十进制数145.625相等的二进制数及十六进制数。
1-5 已知[X]补=01110011B,求X的真值。
1-6 已知[X]补=10010101B,求X的真值。
1-7 微机某内存单元中的内容为C5H,若它表示的是一个有符号数,则该数对应的十进制数是什么?
1-8 微机系统由哪几部分组成?微处理器、微机和微机系统的关系是什么?
1-9 微机的分类方法包括哪几种?各应用在什么领域中?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。