汇编小册(八) 寄存器

本文最后更新于9 个月前,文中所描述的信息可能已发生改变。

我们已经知道了什么是数据,那数据存在哪儿呢?还记得我们之前提到过寄存器吗?它就用于临时存储数据。

在使用高级语言编程时,我们可以声明变量来临时存储数据。寄存器,你可以看作汇编语言的变量。

有多种寄存器可供我们选择,每个寄存器都有一个如何使用它的约定。一些寄存器是通用的,这意味着我们可以在程序执行时将所需的任何内容存储在那里。但也有一些用于存储特定数据的专用寄存器,例如专门存储指令指针的寄存器。

存储在寄存器中的数据只能是数字,因为计算机只能理解数字。

保存在寄存器中的数据如下。

  • 数字
  • 字母
  • 内存地址

计算机会将数字存储为位,寄存器能够存储多少位数,取决于处理器。

你听说过 32 位或 64 位吗?它指的就是处理器中寄存器的大小!

一个 64 位的寄存器,可以容纳的最大数字约 18 万亿。32 位可以容纳的最大数字约 40 亿。嗯?你是不是感觉很奇怪,为什么差别这么大,64 位不是 32 位的两倍吗?这是因为二进制的工作方式,它随着我们被允许使用的位数,呈指数级增长。

x86 处理器有 16 位、32 位、64 位。不同位数,引用的寄存器不同。通常, 32 位寄存器以 E开头,64 位寄存器以 R开头。接下来让我们一起探究 64 位的寄存器。

我们可以通过字节来表示寄存器的大小。一个寄存器的大小为 64 位,可以转换为 8 个字节(一个字节是 8 位)。

我们还可以通过**字长(words)**来表示字节。

  • 单字长表示 2 个字节,即 16 位
  • 双字长表示 4 个字节,即 32 位
  • 四重字长表示 8 个字节,即 64 位 因为可以互相转换,所以描述一个寄存器的大小时,还可以使用字长来描述。
汇编小册(九) 动起来
汇编小册(七) 数据