汇编是用机器的角度看问题,举一个很简单的例子可读性与效率,a*8 与 a<<3 结果是一样的,但a*8可读性好,除非是一些特别关注与效率的程序比如驱动程序,一般都是用前者,这就是在人的角度看与在机器的角度看的区别
汇编主要是cpu与内存的故事,学汇编最好是把所有程序的内存变化图写下来
一些命令其实也是几个指令的组合,用c语言形式和汇编形式重新写是一个不错的理解方式
学了汇编可以理解函数的代码重用,就那几个指令写功能实在是太麻烦了,函数对提高可读性也是一大促进,程序执行都是从 main 函数开始,如果把 main 函数中用几个函数模块化,程序的可读性、重用行、分工都是有作用。
数据和指令(代码)这些是cpu中存储的内容,但他们都是二进制码,对机器而言,用 cs:ip 指明是指令,用 ds:[bx], ss:sp 指明数据。
内存空间是一个线性的空间,数据结构就是研究在一个线性空间中存储不同关系的数据集合,链表和数组就是线性的,不过链表是不连续的,数组时连续的,树是一对多的结构,图是多对多的结构,图是很复杂的,一般还要很多其他知识,如图论、离散数学。