1.6 通過地址和索引實現數組
接下來我們看一下表1-1中出現的基址寄存器和變址寄存器。通過這兩個寄存器,我們可以對主內存上特定的內存區域進行劃分,從而實現類似于數組注1的操作。
注1:數組是指同樣長度的數據在內存中進行連續排列的數據構造。用一個數組名來表示全體數據,通過索引來區分數組的各個數據(元素)。例如,一個10個元素的數組a,其中的各個數據就用a[0]~a[9]來表示。[]內的數字0~9就是索引。

首先,我們用十六進制數將計算機內存上00000000~FFFFFFFF的地址劃分出來。那么,凡是該范圍的內存區域,只要有一個32位的寄存器,即可查看全部的內存地址。但如果想要像數組那樣分割特定的內存區域以達到連續查看的目的,使用兩個寄存器會更方便些。例如,查看10000000地址~1000FFFF地址時,如圖1-9所示,可以將10000000存入基址寄存器,并使變址寄存器的值在00000000~0000FFFF變化。CPU則會把基址寄存器+變址寄存器的值解釋為實際查看的內存地址。變址寄存器的值就相當于高級編程語言程序中數組的索引功能。

圖1-9 綜合使用地址和索引來決定實際地址
推薦閱讀
- Learning Single:page Web Application Development
- C# 7 and .NET Core Cookbook
- iOS開發實戰:從零基礎到App Store上架
- Flash CS6中文版應用教程(第三版)
- Quarkus實踐指南:構建新一代的Kubernetes原生Java微服務
- HTML5+CSS3網站設計基礎教程
- MINECRAFT編程:使用Python語言玩轉我的世界
- Machine Learning With Go
- 深度學習原理與PyTorch實戰(第2版)
- Qt5 C++ GUI Programming Cookbook
- Extending Unity with Editor Scripting
- Instant Zurb Foundation 4
- 零基礎學HTML+CSS第2版
- Backbone.js Testing
- Android Sensor Programming By Example