####
1,学习底层的编程思维,
汇编语言是除了机器语言之外,最底层的语言了,你写的好的话是非常高效的,所以很多的驱动,嵌入式,都是汇编写的,当然也有c写的,
汇编语言直接在硬件上工作的语言,首先要了解硬件系统,才能有效的应用汇编语言对其编程,必须要了解的就是cpu和内存,其他的先不用关注,
你知道了汇编语言,底层的cpu内存是如何运行的,cpu和内存是如何配合的,如何读取信息的,你再去学习高级语言,就会更加得心应手,提升你的编程思维,
学习汇编,可以让你学习编程思维,但是不是推荐你去用汇编去编程,
2,比汇编语言,更低级的就是机器语言,就是01,机器语言只有01,所以发明了汇编语言,c语言,是要翻译成汇编语言,再转成机器语言,才可以机器执行,
3,很多逆向,游戏破解,软件破解,都是要反编译成为汇编语言,你如果读不懂汇编语言,就破解不了,别人c语言编写的不会发布c的源码,会发布机器语言,但是机器语言和汇编语言是一一对应的,所以我们直接可以通过机器语言翻译成为汇编语言,
####
汇编语言的组成
1,汇编指令,直接能翻译成机器码的,比如MOV,汇编指令是汇编语言的核心,
2,伪指令,由编译器执行,机器是不认识的,
3,其他符号,由编译器识别,比如加减乘除,
###
存储器
cpu是计算机的核心组件,要cpu工具,必须要给cpu指令和数据才可以,
而这个指令和数据就是在存储器中,也就是我们说的内存,
内存的作用仅次于cpu,再好的cpu没有内存也不能工作,
硬盘不同于内存,硬盘中的数据如果不能读取到内存中,也无法被cpu使用,cpu不能直接调用硬盘中的数据,
所以我们学习汇编语言,通篇就是讲cpu如何调动内存,怎么和内存打交道,怎么处理这些数据,
###
指令和数据,
本质上这两个在内存和硬盘中存储都是没有区别的都是二进制的信息,
同样的二进制信息,我们告诉电脑这是指令就是指令,说是数据就是数据,
###
每一个存储器是由很多存储单元组成的,
比如一个内存有128个存储单元,他们的编号就是0-127,
比较大的存储器,还要用到计量单位,比如KB,MB,GB,TB,1024倍,硬盘和内存的计量单位是一样的,
###
cpu对存储器的读写,
cpu要读写必须要和存储器做3类信息的交互,
1,存储单元的地址,---地址信息,
2,器件的选择,读或者写,---控制信息,
3,读或写的数据,---数据信息,
#####