计算机编程基础:从内存到第一个汇编程序
1. 数据的本质与文件扩展名
在计算机的世界里,数据究竟是以怎样的形式存在呢?其实,数字、字母、图像和声音,这些看似不同的元素,本质上都是由数字组成的。关键在于它们的使用方式。比如,当我们把一个数字发送给显卡时,它就代表一种颜色;若对两个数字进行相加操作,它们就是普通的数字;当存储我们输入的内容时,这些数字就成了字母;而将数字发送给扬声器,它就变成了声音。
这就是为什么文件会有诸如 .docx
、 .png
、 .mov
或 .xlsx
这样的扩展名。这些扩展名就像是计算机的“说明书”,告诉计算机如何解读文件中的内容。实际上,文件本身只是一长串的数字。程序会读取文件名,查看扩展名,然后依据这些信息来处理文件里存储的数字。
2. 内存的组织与寻址
计算机拥有海量的内存,那么我们如何确定要访问的具体内存位置呢?可以把内存想象成一个个大小相同的盒子,每个盒子就是 1 个字节。每个内存盒子都有一个地址,就像每个邮政信箱或银行保险箱都有编号一样。通过这个地址,计算机就能找到对应的内存位置。
在 64 位计算机中,我们通常一次会加载 8 个字节的数据。例如,从地址 279,935 开始加载,就会获取从该地址到 279,942 的所有字节。
在 x86 - 64 平台上,不同大小的值有不同的名称:
| 字节数 | 位数 | 名称 |
| ---- | ---- | ---- |
| 1 | 8 | 字节(byte) |
| 2 | 1