操作系统
- 每个进程拥有一片连续的内存空间(地址空间),空间中的每个字节都可以用一个32位无符号整数定位,每个字节的位置称为地址
CPU
- 32位:能够处理的数据最大为32bit,地址空间2^32<4G
- 64位:能够处理的数据最大为64bit,地址空间2^64
寄存器
- EAX、EBX、ECX、EDX:通用寄存器
- ESI、EDI、EBP:存储内存地址
- EIP、ESP
- PSW
工作过程
- 从寄存器取出一个数据(地址空间中的地址),然后CPU加载这个数据指向的若干字节的数据组成的指令,随即读取寄存器下一个字节处的地址
- 一个指令分为三部分:操作、参数、参数定位方式
三种代码
- 本地代码:二进制机器码
- 汇编代码:用助记符表示的本地代码(汇编代码——汇编——本地代码)
- 源代码:高级语言编写的代码(源代码——编译——汇编代码)
gcc命令
- 编译流程:源程序-->预处理(.i)-->编译(.s)-->汇编(.o)-->链接(可执行程序)
- 默认:预处理+编译+汇编+链接
- -E:预处理(.i)
- -S:预处理+编译(.s)
- -c:预处理+编译+汇编(.o)
- -g:预处理+编译+汇编+链接+调试信息(.o)
- -o [file1] [file2]:将file2编译成可执行文件file1(.o)