机器语言
机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直接理解和接受的程序语言或指令代码。机器语言使用绝对地址和绝对操作码。不同的计算机都有各自的机器语言,即指令系统。从使用的角度看,机器语言是最低级的语言。
由0和1组成
机器语言:1000100111011000
汇编语言(Assembly Language)
用符号代替了0和1,比机器语言便于阅读和记忆
汇编语言:mov ax, bx
不区分大小写,比如mov和MOV是一样的
高级语言
C\C++\Java\Swift等,更接近人类自然语言
高级语言:ax = bx;
C语言
C语言由B语言演化而来,由贝尔实验室提出,诞生1972年。
汇编语言的特点
可以直接访问、控制各种硬件设备,比如存储器、CPU等,能最大限度地发挥硬件的功能。汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的机器指令集\汇编指令集,所以汇编语言不具备可移植性。
汇编语言的种类
8086汇编(8086处理器是16bit的CPU)
Win32汇编
Win64汇编
AT&T汇编(Mac、iOS模拟器)
ARM汇编(嵌入式、iOS设备)
简单介绍下CPU
每一个CPU都有很多脚,这些脚里面是导线,每一个脚都与总线相连,CPU通过这些脚与外部进行交互。
CPU(Central Processing Unit) 中央处理器
是一个由数百万个晶体管组成的集成电路CI,从功能划分 主要由 寄存器、控制器、运算器和时钟构成。
寄存器 负责储存数据和指令
控制器 负责把数据或指令从内存拷贝到寄存器
运算器 负责预算在寄存器中的数据
时钟 负责CPU执行指令的执行信号
总线
系统总线分为3类,地址总线;数据总线;控制总线
地址总线:CPU通过地址总线来指定存储器单元。地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。所以它的宽度决定了CPU的寻址能力,8086的地址总线宽度是20,所以寻址能力是1M( 2^20)。
数据总线:CPU通过数据总线与内存或其他器件之间进行数据传送。1根数据线一次传输1比特(0或1),8根数据线可以一次传送8比特(1字节),以此类推。例如,8088CPU的数据总线宽度为8,一次传送1字节数据;8086CPU的数据总线宽度为16,一次传送2字节数据。这2个字节是数据的长度,不是数据的最大值。
控制总线:CPU通过控制总线来实现对外部器件的控制。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制指令。
寄存器
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和控制寄存器。寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。
寄存器按照功能分类:
1.程序计数器 2.标记寄存器 3.基址寄存器 4.变址寄存器
5.通用寄存器 6.指令寄存器 7.栈寄存器 8.累加寄存器