语言
高级语言:
- 非常具有人类可读性
- 一行可以做很多事
- 可快速编写以及调试
- 非常适合企业软件
汇编语言:
- 对CPU的要求很少
- 大量控制
- 执行速度非常快
- 只需要很少的运行时支持
- 非常适合嵌入式(embedded)/微型(tiny)系统
关于汇编的关键知识:
- 指令易于编写和理解
- 你需要很多个指令
- 一些东西你必须自己动手去编写
- 循环,基于块的流控制
- 变量与高级语言的有所不同
变量
在高级语言中,当你看到 int a;
这意味着:分配空间给a,并允许我用a去引用这个空间。
这个空间可能是栈或者堆。
这是汇编语言通常无法提供的高级抽象。
关于我们如何存储字符串,数组,链表:
我们在寄存器中存储一个指向一个地址的指针,并使用它作为引用内存的基础。
寄存器(Registers)
每个CPU有一个小数量的(通常是8-16个)硬件“变量”。在机器内部,这些都有编号。在汇编中,我们将经常看到它们以相同的方式编号:例如R0 - R15。
在x86/x64中,你将会看到一些带有名字(rax,rbx,rcx)和数字(r8-r15)的寄存器。
你可以在你的