现在学写汇编语言其实收益挺低的了,毕竟没谁招会写汇编的,但是了解下汇编语法,看一些代码的底层实现还是非常好使的
程序的基本流程就是上图了,程序运行之后就加载到内存,不运行保留在硬盘上,然后内存和CPU进行交互,然后结果需要显示的再布局到屏幕上,需要放声音的就到音响等等
而程序员的工作其实大部分就是处理内存和CPU交互这一块,装载和控制硬件有对应的平台和机械语言处理
CPU有寄存器,运算器和控制器三部分,寄存器就是存储读取的信息,运算器则是对读取进行处理,控制器则是根据需要控制硬件设备之类的
比如int a = 3;int b = a + 1;
这段代码的流程就是cpu读取内存里面的3,把3放入寄存器,然后再在运算器里面进行+1,然后再把计算结果4,写到内存里面的另一个内存地址,也就是b的地址
汇编代码就是
movq a的内存地址,%rax
add &0x1,%rax
movq %rax b的内存地址
汇编代码是以前人类为了取代0101之类的机械语言创建的,因为0101011100这是啥意思,谁看的懂呢,就出现了可读性较强的汇编,然而汇编也不好读,所以有了高级语言java python这些,实话实说感觉高级语言也不好读,可能会出现更好用的东西,但短时间是看不到了
汇编语言的种类
汇编语言是根据内核来的,比如
8086汇编针对16bit,x86汇编对应的是32位 x64就是对应的64位,还有arm汇编则是对应嵌入式板子,