(示例将一个代码程序编译成机器码在各寄存器装载过程) https://m.toutiao.com/is/NFf724m/?=计算机大佬总结出的 第一章:计算机系统概述Part1:基本概念1、计算机系统组成计算机系统
2、三级计算机语言
3、计算机的一些指标
Part2:计算机硬件系统1、早期冯·诺依曼结构:以运算器为中心冯诺依曼在研究EDVAC时,提出了“存储程序”的概念,即将指令以代码的形式事先输入存储器,从首地址开始按序执行,直到指令结束。在他的《EDVAC报告书的第一份草案》中,为现代计算机结构指明了道路
这三个原则被称为“存储程序”工作方式 2、现代计算机结构:以存储器为中心现代计算机常将Control Unit和Arithmetic Unit和Memory中MAR、MDR整合入一个部件,并称之为CPU,如下图所示 3、三大硬件基本结构
4、一个例子先看如下代码 int main(void){ int x = 2; int a = 3; int b = 1; int y = 0; y = a * x + b; } 将其编译装入后,变成这个样子
由3可知一个完整的计算机如下图所示 则第一条指令执行过程为: 初始状态:PC=0,指向第一条指令地址 --------------------------------------------------------- step 1 : (PC)->MAR, MAR = 0; | step 2,3 : M(MAR)->MDR, MDR=000 001 0000 00 0101; |取指令阶段 setp 4 : (MDR)->IR; | --------------------------------------------------------- step 5 : op(IR)->MCU MCU分析后得知其为取数指令,pc=pc+1; | 分析指令阶段 --------------------------------------------------------- step 6 : Ad(IR)->MAR, (MAR)=0000 00 0101 = 5; | step 7,8 : M(MAR)->MDR, MDR = 000 000 0000 00 0010 = 2; |执行指令阶段 step 9 : (MDR)->ACC | ---------------------------------------------------------- (pc)表示pc中的值,->表示数据流动方向,M(MAR)表示主存(Main Memory)中地址为MAR的主存单元的值 op(IR)表示IR中指令的操作码(operator),Ad(IR)表示IR中指令的地址码 Part end:参考文献和一些说明可以从pc自增的情况来看出计算机的是按照字节编制还是按照字编制。如果计算机指令长度16位,而pc=pc+2。那么说明该计算机按照字节编制。原因是如果计算机按照字母编制的话pc=pc+1. (示例将一个代码程序编译成机器码在各寄存器装载过程)。 |
|
来自: 山峰云绕 > 《计算机科学(体系结构原理等)》