官术网_书友最值得收藏!

1.6 通過地址和索引實現數組

接下來我們看一下表1-1中出現的基址寄存器變址寄存器。通過這兩個寄存器,我們可以對主內存上特定的內存區域進行劃分,從而實現類似于數組注1的操作。

注1:數組是指同樣長度的數據在內存中進行連續排列的數據構造。用一個數組名來表示全體數據,通過索引來區分數組的各個數據(元素)。例如,一個10個元素的數組a,其中的各個數據就用a[0]~a[9]來表示。[]內的數字0~9就是索引。

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

圖1-9 綜合使用地址和索引來決定實際地址

主站蜘蛛池模板: 仲巴县| 池州市| 汝阳县| 洛川县| 浮梁县| 随州市| 黄山市| 麟游县| 双牌县| 临洮县| 宜昌市| 鹤壁市| 长岭县| 铜山县| 五大连池市| 海城市| 安龙县| 文昌市| 视频| 开阳县| 辽源市| 祁连县| 霍城县| 哈巴河县| 阿城市| 遂川县| 广德县| 东兰县| 科尔| 海安县| 贵港市| 武功县| 白水县| 长沙县| 武鸣县| 环江| 华坪县| 江孜县| 长海县| 晴隆县| 周宁县|