计算机组成框图-计算机运行流程
ACC(Accumulator): 累加器
MQ(Multiplier-Quotient Register):乘商寄存器
ALU:算术逻辑单元
X:操作数寄存器
CU:控制单元
IR(Instruction Register):指令寄存器(用于存放当前指令)
PC(Program Counter):程序计数器(存放当前欲执行指令的地址)
MDR(Memory Data Register):存储器数据寄存器
MAR(Memory Address Register):存储器地址寄存器
模拟的程序清单(例子):
指令和数据存于主存单元的地址
指令
注释
操作码
地址码
0
000001
0000001000
数x送至ACC
1
000100
0000001001
乘a得ax,存于ACC中
2
000011
0000001010
加b得ax+b,存于ACC中
3
000100
0000001000
乘x得(ax+b)x,存于ACC中
4
000011
0000001011
加c得ax2+bx+c,存于ACC中
5
000010
0000001100
存数,得ax2+bx+c存于主存单元
6
000101
0000001100
打印
7
000110
停机
模拟的微程序(例子程序):
PC→MAR; 将PC内容送到主存MAR中
MAR→MDR;存储器做“读操作”,此刻主存内容“000001,0000001000”
MDR→IR;CU取指令和地址
OP(IR) →CU;CU对IR中的指令进行分析,“000001”为取数指令
Ad(IR) →MAR;CU将地址码(“0000001000”)送至MAR,
M(MAR) →MDR; M根据MAR中的地址取出数据,再把此数据放入MDR中
MDR→ACC;把MDR中的数据放入ACC中
(PC)+1→PC;程序计数器(存放当前的地址)自增1
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
M(MAR) →MDR
MDR→MQ
[ACC] →X
0→ACC;将ACC清零
[X]*[MQ] →ACC;两寄存器相乘存入ACC(课本上高位存入ACC 低位存入MQ,ACC//MQ)
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
M(MAR) →MDR
MDR→X
//
[ACC]+[X]→ACC
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
M(MAR) →MDR
MDR→MQ
ACC→X
0→ACC
[X]*[MQ]→ACC
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
M(MAR) →MDR
MDR→X
[ACC]+[X]→ACC
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
ACC→MDR
MDR→M(MAR)
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU
Ad(IR) →MAR
M(MAR)→MDR
MDR→I/O
(PC)+1→PC
PC→MAR
MAR→MDR
MDR→IR
OP(IR) →CU