基础知识
现代计算机都是冯诺依曼计算机,共由五大件组成:运算器、存储器、控制器,输入设备、输出设备
程序运行流程
首先有些英文缩写必须要了解:
- ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器
- MQ:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器
- ALU:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算
- X:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数
- CU:Control Unit,控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序列
- IR:Instruction Register,指令寄存器,其功能是存放当前正在执行的指令
- PC:Program Counter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址
- MAR:Memory Address Register,存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址
- MDR:Memory Data Register,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据
- CPU:Central Processing Unit,中央处理机(器),是计算机硬件的核心部件,主要由运算器和控制器组成
现在假设有一条指令,作用是取数,例如:Mov A 78H。工作流程首先通过PC中记录的该指令的地址,到MAR中寻找该条指令(1),然后MAR再到存储体中寻找该地址(2),存储体将该地址内的内容读到MDR中(3),然后该指令传给IR(4),IR又将指令传到CU中执行(5),CU进行译码得出指令内容后,通知IR执行(6),IR首先要取MAR找到A的地址(7),找到A的地址后取出A的值(8),传给ACC(9)。需要注意的是,有两次访问存储器的过程,这两次的意义是不一样的,第一次是为了找到指令的地址以及取出指令,第二次是为了找到A的地址以及取出A的值
流劈哟,大基佬
是你呀,大gay佬