计算机五大组成部件:运算器(ALU),控制器,存储器,输入部件,输出部件
1.控制器
2.运算器
逻辑运算(判断事物的对与错)
数学运算(1+1)
控制器+运算器=中央处理器(CPU)
3.存储器
包括:寄存器,高速缓存,内存,硬盘(外存),磁带
对数据进行存储以及读取
内存:基于电工作的 优点:读取速度快 缺点:断点数据丢失
外存:优点:可以永久存储数据 缺点:读取速度慢
存储器也叫I/O操作
4.输入设备
键盘,鼠标,麦克风,摄像头,触摸屏等
5.输出设备
显示器,音响,打印机
三大核心组件:
CPU:大脑
内存:短期记忆
硬盘:永久保存
x86:32位操作系统 指CPU一次性能处理32位个二进制字符
x86:64位操作系统 指CPU一次性能处理64位个二进制字符
存储器
寄存器:将CPU即将用到的数据存储于寄存器(容量小)
高速缓存:将经常要用到的数据中容量比较小的数据存储在高速缓存
内存:CPU获取数据的主力还是内存
硬盘:机械硬盘/固态硬盘
磁带:服务器数据备份
BIOS系统:basic input output system计算器出厂自带的小系统
操作系统
操作系统也是应用程序,但它是针对计算机硬件,将操作硬件中的复杂的接口封装起来,暴露给用户简单快捷的操作接口,帮助用户管理、协调、操作、调度计算机的各个硬件
Float类型变量在内存中占4个字节
目前我国最快的超级计算机是神威太湖之光
本课程主要内容所讲述的在硬件和软件间起到桥梁作用的是指指令集架构/ISA
编译器把c语言程序转换成可执行的机器代码的过程:
1.预处理:展开头文件/宏替换/去掉注释/条件编译
2.编译:检查语法,生产汇编代码
3.汇编:把汇编代码转化成二进制的机器码
4.链接:合成可执行的程序,并对声明在其他目标文件找到对应的定义
text.c 预处理-> text.i 编译-> text.s 汇编-> text.o链接-> a.out
过程详解:
预处理过程主要处理那些源代码中的以“#”开始的预编译指令
将所有的“#define”删除,并且展开所有的宏定义
处理所有条件预编译指令
处理#include预编译指令,将包含的文件插入到该预编译指令的位置。(这个过程是递归进行的,也就是说被包含的文件还可能包含其它文件)
删除所有的注释
添加行号和文件名标识,以便于编译时编译器产生的调试用的行号信息及用于编译时产生编译错误或警告时能够显示行号
保留所有的#pragma编译器指令,因为编译器需要使用他们
编译过程就是把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生产相应的汇编代码文件
编译器就是将高级语言翻译成机器语言的一个工具
编译过程一般可以分成6步:扫描,语法分析,语义分析,源代码优化,代码生成和目标代码优化
编译器所能分析的语义是静态语义(即在编译期可以确定的语义)【动态语义:只有在运行期才能确定的语义】,包括:声明和类型的匹配,类型的转换
汇编:汇编器是将汇编代码转变成机器可以执行的指令,每一个汇编语句几乎对应一条机器指令
链接:把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。
链接过程主要包括地址和空间分配、符号决议和重定位等这些步骤。(重定位所做的就是给程序中每个这样的绝对地址引用的位置“打补丁”,使他们指向正确的地址)
链接的接口:符号
链接过程的本质就是要把多个不同目标文件相互黏到一起
在链接中,目标文件之间相互拼合实际上是目标文件之间对地址的引用,即对函数和变量的地址的引用
在链接中,我们将函数和变量统称为符号,函数名和变量名就是符号名
每一个目标文件都会有一个相应的符号表,这个表里面记录了目标文件中所用到的所有符号,每个定义的符号都有一个对应的值,叫做符号值,对于变量和函数来说,符号值就是他们的地址
intel处理器是英特尔公司开发的中央处理器
如果把计算机比作一个人,那么cpu就是他的大脑
按照其处理信息的字长,CPU可以分为:四位微处理器,八位微处理器,十六位微处理器,三十二位微处理器,六十四位微处理器
(电脑技术中对CPU在单位时间内能一次处理的二进制数的位数叫字长。能处理字长为8位数据的CPU通常就叫8位CPU…)
计算机的五大部件中的存储器,一般是指
在32位的C89编译器中,int型变量所占的长度为4字节
Intel公司的80286,80386,80486等系列CPU向下兼容的特征被称为x86系列架构