计算机基础原理知识,计算机基础知识之计算机的工作原理

1.3 计算机的工作原理

到目前为止,微机的工作原理均采用冯.若依曼的存储程序方式,即把程序存储在微机内,由微机自动存取指令并执行它。微机的工作过程就是执行程序的过程,而程序由指令序列组成,因此,执行程序的过程,就是执行指令序列的过程,即逐条地执行指令;由于执行每一条指令,都包括取指令与执行指令两个基本阶段,所以,微机的工作过程,也就是不断地取指令和执行指令的过程。微机执行程序过程示意图如下图所示。

a4c26d1e5885305701be709a3d33442f.png

假定程序已由输入设备存放到内存中。当计算机要从停机状态进入运行状态时,首先应把第一条指令所在的地址赋给程序计数器PC,然后机器就进入取指阶段。在取指阶段,CPU从内存中读出的内容必为指令,于是,数据寄存器DR便把它送至指令寄存器IR;然后由指令译码器译码,控制器就发出相应的控制信号。CPU便知道该条指令要执行什么操作。在取指阶段结束后,机器就进入执指阶段,这时,CPU执行指令所规定的具体操作。当一条指令执行完毕以后,就转入了下一条指令的取指阶段。这样周而复始地循环一直进行到程序中遇到暂停指令时方才结束。

取指阶段都是由一系列相同的操作组成的,所以,取指阶段的时间总是相同的,它称为公操作。而执指阶段将由不同的事件顺序组成,它取决于被执行指令的类型,因此,执指阶段的时间从一条指令到下一条指令变化相当大。

应当指出的是,指令通常包括操作码(operationcode)和操作数(operand)两大部分。操作码表示计算机执行什么具体操作,而操作数表示参加操作的数的本身或操作数所在的地址,也称之为地址码。在8位机中,由于一个存储单元只能存放一个字节,而指令根据其所含内容不同而有单字节、双字节、三字节乃至最多四字节之分,因此,在执行一条指令时,就可能要处理1—4个不等字节数目的代码信息,包括操作码、操作数或操作数的地址。

为了进——步说明微机的工作过程.我们来具体讨论一个模型机怎样执行一段简单的程序。例如,计算机如何具体计算3十2=?虽然这是一个相当简单的加法运算,但是,计算机却无法理解。人们必须要先编写一段程序,以计算机能够理解的语言告诉它如何一步一步地去做,直到每一个细节都详尽无误,计算机才能正确地理解与执行。

在编写程序之前,必须首先查问所使用的微处理器的指令表(或指令系统),它是某种微处理器所能执行的全部操作命令汇总。不同系列的微处理器各自具有不同的指令表。假定查到模型机的指令友中可以用三条指令求解这个问题:表1示出了这三条指令及其说明。

表中第—列为指令的名称。编写程序时,写指令的全名是不方便的,因此,人们给每条指令规定了—个缩写词,或称作助记符。第二列即助记符。第三列为机器码,机器码用二进制和十六进制两种形式表示,计算机和程序员用它来表示指令。最后一列,确切地说明了执行一条指令时所完成的具体操作。

表1 模型机指令表

名称

助记符

机器码

说明

立即数取入累加器

LD A,n

00111110 n

3E n

这是一条双字节指令,把指令第二字节的立即数n取入累加器A中

加立即数

ADD A,n

11000110 n

C6 n

这是一条双字节指令,把指令第二字节的立即数n与A中的内容相加,结果暂存A

暂停

HALT

01110110

76

停止所有操作

现在我们来编写3十2=?的程序。根据指令表提供的指令,用助记符形式和十进制数表示的加法运算的程序可表达为二制数

LD A,3

ADD A,2

HALT

但是,模型机却并不认识助记符和十进制数,而只认识用二进制数表示的操作码和操作数。因此,必须按二进制数的形式来写程序,即用对应的操作码代替每个助记符,用相应的二进制数代替每个十进制效。

LD

A,3 变成 0011

1110;操作码(LD A,n)

0000 0011;操作数(3)

ADD A,2

变成 1100 0110;操作码(ADD A,n)

0000 0010;操作数(2)

HALT 变成 0111 0110;操作码(HALT)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值