彙編學習筆記 2 2實體地址計算

2021-07-06 11:40:34 字數 622 閱讀 8452

要理解段位址偏移,首先要了解,為啥要計算段位址。

舉個例子:8086cpu有20位位址匯流排,一次可以傳送20為位址,達到1mb的定址能力,但是,該cpu內部又是16位結構,一次處理傳輸和暫存的位址為16位,只能傳送16位的位址,定址能力只有64k,因此,通常8086cpu採用的是在內部用兩個16位位址來合成乙個20位實體地址,而這個20位的實體地址計算,就是通過段位址和偏移位址來合成的。

當8086cpu要讀寫記憶體時:

在上述過程中,位址加法器是如何計算20位實體地址的呢?

20位實體地址=段位址x16+偏移位址

偏移位址00c8

實體地址=1230x16+00c8=12300+00c8=123c8

注意:這裡的x16不同於我們的數學計算哦

對於實體地址的計算,它的本質含義是這樣的:cpu在訪問記憶體時,用乙個基礎位址(段位址x16)和乙個相對於基礎位址的偏移位址相加,來給出記憶體單元的實體地址。

這裡乙個基礎位址必然是16的倍數,所以乙個段的起始位址也一定是16的倍數,偏移位址為16位,16位位址的定址能力是64k,所以,乙個段的最大長度為64k。

《組合語言》實體地址

段位址應該是乙個邏輯概念,從 組合語言 3.5資料段原文中 比如用123b0h 123b9h 這段記憶體空間來存放資料,我們就可以認為123b0h 123b9h這段記憶體是乙個資料段,它的段位址為123bh,長度為10個byte。從這裡看出段位址指的應該是乙個資料段的起始位置,在 彙編無言 2.7實...

組合語言 實體地址

你只要嘗試過飛,日後走路也會仰望天空,因為那是你曾經到過,並渴望回去的地方 今日語句 實體地址 我們知道,cpu訪問記憶體單元時,要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間,每乙個記憶體單元在這個空間中都有唯一的位址,我們將這個唯一的位址稱為實體地址。cpu通過位址匯...

組合語言之實體地址

16位結構的cpu的特點 運算器一次最多可以處理16位資料 暫存器的最大寬度是16 暫存器和運算器之間的通路是16位 8086cpu給出實體地址的方法 8086cpu有20位位址匯流排,可以傳送20位位址,也就是1m定址能力,而8086又是16位結構,在內部一次性處理 傳輸 暫時儲存的位址為16位,...