



接下来讲一讲表 1-1 中的 基址寄存器 和 变址寄存器 的功能。使用这一对寄存器,我们可以对特定的内存空间进行划分,按照数组 [1] 的方式对其进行使用。
    这里我们将计算机的内存地址按十六进制
    
    编码为 00000000 ~ FFFFFFFF。在这个范围内,使用一个 32 位寄存器就可以查看所有的地址,但要访问类似于数组的连续的内存空间,使用两个寄存器会更方便。例如,在访问地址 10000000~1000FFFF 时,如
    
     图 1-9
    
    所示,可以将基址寄存器设为 10000000,然后让变址寄存器的值在 00000000 ~ 0000FFFF 变化。CPU 会将基址寄存器和变址寄存器的值相加计算出实际的内存地址,其中变址寄存器的值就相当于高级编程语言程序中数组的下标。
   
    图 1-9 通过基址寄存器和变址寄存器的组合决定实际地址
    
     [1]
    
    数组是一种长度相同的数据在内存中连续排列所构成的数据结构。统一使用一个数组名来表示所有数据,使用下标来表示其中每个数据(元素)。例如,对于包含 10 个元素的数组 a,其中各个数据使用 a[0]~a[9] 来表示,[ ] 内的数字 0~9 就是下标。