- 无论AMD还是inter名牌的CPU,硬件厂商都会提供各自CPU的驱动程序,这个驱动程序是所有系统的最底层,他上层可以是操作系统,也可以是汇编语言,因此汇编语言没有操作系统也是可以运行的,或者汇编语言和操作系统没有什么关系;
- 指令集是最底层的指令,每个不同的硬件CPU都有特定的指令集集合;
- 汇编语言是直接操作指令集系统,第一点已经说过,他其实经过编译器然后转换成指令集,当然,这个编译器也是厂商提供的;
- 驱动程序也是依据自身的硬件设置需求,然后根据指令集完成驱动程序的开发;因此,比如I/0的一些控制方式,如通道控制,DMA数据控制,都是驱动程序已经完成好的,原理很简单,例如管道控制,本身就是属于I/0的硬件一部分,以及DMA,自然就需要有相应的硬件驱动来实现相关处理。而对于这些驱动程序,会提供一些借口,有上层的操作系统来进行调用处理。
- 上层操作系统会用自己编写的函数操作两部分内容。一部分是操作I/O驱动程序,另外一部分是就是操作CPU的指令集集合,进而完成系统的数据交互;
- 最上层的就是依据操作系统的各种编程语言,这些编程语言操作操作系统的API程序,因为操作系统自身提供了完成的各种服务组件,例如TCP服务组件,IP服务组件以及其他等等服务程序。编程语言需要哪些功能,调用这些相应的API函数即 可。
- 高级语言和汇编语言是两个维度的语言,高级语言最终都是调用的操作系统接口,而汇编语言直接是使用厂商提供的编译器,直接操作硬件,需要注意的是,我们用javap命令反汇编过来的class文件的指令集,只能叫虚拟机汇编指令, 利用这种指令可以清楚的描述程序在CPU内部真实的执行流程;
- 其实C语言编译器也是汇编写的,C语言的源代码经过编译器编译成汇编语言,然后汇编语言经过汇编编译器最终执行机器代码。
07-02
1121