一、计算机系统的层次接口
帮助理解:例如: 汇编语言的MOV AH,0 INT 21H可以退出到dos系统
实际上软件硬件分界线并不是特别清晰,因为某些软件功能可以使用硬件取实现,比如固话;某些硬件功能也可以使用软件去编程替代;总得来说,硬件功能运行速度快,但不够灵活,不易被修改,而软件功能比较灵活,,可以通过编程修改,但运行速度慢。
二、计算机的基本组成
1、冯·诺依曼计算机有五大部件组成,重点存储程序
2.编程举例
计算 ax^2 + bx + c
- 方法一:
- 取x 至运算器中
(确切的应该是运算器的ACC累加器中:也是一个寄存器) - 乘以x 在运算器中
- 乘以a 在运算器中
- 存 ax^2 至存储器中
- 取b 至运算器中
- 乘以x 在运算器中
- 加ax^2 在运算器中
- 加c 在运算器中
- 取x 至运算器中
- 方法二:ax^2 + bx + c = (ax + b) x + c
- 取x 至运算器中
- 乘以a 在运算器中
- 加b 在运算器中
- 乘以x 在运算器中
- 加 c 在运算中
3.计算机的解题过程
(1) 存储器
MAR: memory address register 存储地址寄存器——反映存储单元的个数
MDR: memory data register 存储数据寄存器——反映存储字长(存储单元中二进制代码的位数)
便于理解(比喻):
- 存储体 相当于 大楼
- 存储单元 相当于房间 (存放一串二进制代码)
- 存储元件(0/1) 相当于 床位(无人/有人)
(2) 运算器
MQ 乘商寄存器
X 操作数寄存器
ACC 累加器寄存器
ALU 算术逻辑单元
(3) 控制器
完成一条指令
- 取指令 PC: 保存要执行的这条指令的地址,执行下一条PC+1 → PC
- 分析指令 IR:存放当前欲执行的指令
- 执行指令CU :控制信号发出的地方
- 取指令 :
1. 从PC把地址送到MAR,MAR送到存储体,在控制器的控制下,存储体把指定存储单元中保存的取数指令取出送入MDR;
2. 从MDR取出来的指令送入IR(因为IR是存放当前执行指令的)
3. IR将指令送入CU控制单元,去执行,发出取数指令 - 取数指令:把保存在内存单元中的数据取到ACC
1. IR中保存要执行的指令,同时也保存这条指令操作数的地址,取出地址码,送入MAR,MAR送到存储体
2. 存储体中取到指定地址的操作数送入MDR,MDR送至ACC
- 存数指令:把ACC中数送到存储体
- 取地址 类似 上方1.2.3,到CU发出存数指令
- 存数指令:IR保存了指令中操作数的地址,送到MAR, 告诉存储体有一个数据要存进来,要存储的地址是多少?
- 把ACC中的数送到MDR,在控制器的控制下,把MDR中的数存入存储体中
补充:
机器字长:CPU一次能处理数据的位数,与CPU中的寄存器位数有关
CPI:cycle per Instruction执行一条指令所需时钟周期数:
MIPS:每秒执行百万条指令
FLOPS:每秒浮点运算次数