ADD B A
把这两个寄存器里面的内容,进行相加,结果保存到第二个操作数的寄存器中
STORE A 内存地址
把A寄存器中的值,写入13这个地址上
一,CPU 是如何计算3+14的
1.cpu要执行的指令,是在内存中的 (冯诺伊曼体系结构,基本设定,让执行单元和存储单元解耦合)
2,cpu想要执行指令,就需要先取指令,再解析指令,然后才能执行指令
3,取指令需要从内存中读取到cpu的寄存器中(这里没有体现出存储指令的寄存器,就只体现出AB用来计算数据的存储器)取指令的操作,其实是非常耗时的(读取内存操作相对于cpu执行计算,要开销大很多)
因此cpu中通过缓存,流水线等技术,来优化这里的效率
4.cpu解析指令的时候,需要用到“指令表”,不同架构的cpu支持的指令表不同(X86和arm等都是不同的)
5,指令在执行过程中,肯能会带有一些操作数,不同的指令,操作数的个数含义有所不同
6,cpu重要的参数,主频。主频表示的含义,近似看成是一秒钟之内,cpu能执行的指令个数
早期的代码都不是写,是抠开关
二,操作系统
操作系统是一个软件(由代码构成程序)
1.1操作系统主要职责,有两方面
1.管理各种硬件设备
2,给其他软件提供稳定的运行环境
1.2 抽象,封装
1.Windows 2.Linux 3.Max 4.IOS 5.Android
1.3一个电脑,有很多的硬件
显示器,鼠标,键盘,音箱,摄像头,麦克风,内存,硬盘,显卡,电源,风扇
市面上,每一种硬件,都有很多的厂商在生产,不同厂商产生在生产
不同厂商生产的硬件就会存在差异。
即使是同一个厂商,不同型号的硬件,也会有差异
1.4假设我们需要写一个程序,响应各种鼠标的各种操作,市面上的不同鼠标,种类繁多,这个时候咋办,总不能 根据不同的鼠标,写不同的代码吧???
此时,就需要操作系统就站出来,统一管理各种不同的硬件设备,给软件提供统一的api
此时,程序员写代码的时候,就可以不必关注软件硬件的细节差别了,只需要调用操作系统的api即可,再有操作系统来去控制不同的硬件进行工作
因此,程序员写的代码,不需要面向硬件,只需要面向操作系统
操作系统也提供了一些管理软件资源的api(多线程编程,网络编程)
jvm又是对系统的抽象封装,就只需要使用JVM提供的api就可以起到控制各种不同的系统,完成编程效果了