Chapter 3: The Memory Hierarchy
程序编码
假设有一个C程序,包含文件p1.c和p2.c,可以在Linux上使用如下命令进行编译
gcc -o -Og prog p1.c p2.c
-Og
编译选项-Og使编译器生成符合原始 C代码整体结构的机器代码
objdump -d mstore.o
数据格式
| C声明 | Intel数据类型 | 汇编代码后缀 | 大小(字节) |
|---|---|---|---|
char |
字节 | b | 1 |
short |
字 | w | 2 |
int |
双字 | l | 4 |
long |
四字 | q | 8 |
char* |
四字 | q | 8 |
float |
单精度 | s | 4 |
double |
双精度 | l | 8 |
访问信息
一个 x86-64 的中央处理单元包含16个存储 64 位值的通用目的寄存器, 这些寄存器用来存储整数数据和指针.如何下图所示: