關於cpu分段的段位址計算

2021-08-01 06:19:22 字數 809 閱讀 6889

《微機原理》這本課程學過,不過後來我忘記了。今天覆習的時候,作為學渣的我解了好大乙個疑惑。

書上說,8086cpu有16位的資料匯流排和20位的位址匯流排。

所以,為了能讓16位的cpu能夠驅動20位的記憶體,採用了分段的形式。

原理和內容都在這裡,不詳細展開了

我們知道段暫存器是16位的,16為的ip指標指向偏移量。

舉個例子

段暫存器中的數值為: 2000h(16進製制)

ip偏移量指標的指向: 1100h(16進行)

那麼,cpu實際想指向的邏輯位址是多少呢?

書上一直講,段暫存器後面補4個0+偏移量指標。

這裡是16進製制,所以後面補乙個0。

所以結果是  2000h *10h + 1100h = 21100h

這個結果是什麼意思呢?

意思是:

1.我們的偏移量是16位的數字,即範圍是(0000h-ffffh),這表示每一段的範圍是2的16次方一共64k。

2.我們的段暫存器也是16為的數字,範圍是(0000h-ffffh),當它後面跟四個0之後,範圍變成了(00000h --ffff0h)。這個範圍,就是端暫存器的表示的基位址的範圍。

如果是0000h  ,基位址就是00000h

如果是0001h,  基位址就是00010h

從00000h 到00010h之前的範圍,就是每個分段的最小值,也就是說,最小的分段為2的4次方16b。

而最大範圍就是偏移量ip的範圍2的16次方,64kb。

3.我們可以以任何16b為最小度量,16b為整數倍的位址為基位址進行分段

原理和內容都在這裡,不詳細展開了

ASP ,IP位址分段計算

asp ip位址分段計算 在vbs中沒有位操作,這樣在乙個頁面中用到了js和vbs,並不好,如果用vbs也可以,不過羅嗦了一些,而且有一點注意,如果在vbs中split 202.102.29.6 會得到202,102,29三個數,得不到最後乙個6,所以需要將ip換成split 202.102.29....

7 2 分段計算居民水費 1 10分

為鼓勵居民節約用水,自來水公司採取按用水量階梯式計價的辦法,居民應交水費y 元 與月用水量x 噸 相關 當x不超過15噸時,y 4x 3 超過後,y 2.5x 10.5。請編寫程式實現水費的計算。輸入格式 輸入在一行中給出非負實數x。輸出格式 按照以下的格式在一行輸出月用水量和應交的水費,都精確到小...

關於「實體地址 段基址x16 段內偏移位址」

以8086為例。1 段基址和段內偏移位址都是16位 8086僅有16位資料匯流排 實體地址是20位 8086有20位位址匯流排 2 由於段內偏移位址是16位,所以每個段最大2 16,即0xffff。3 段基址也是16位的,它放在乙個20位的資料中,則低4位一定為0。4 公式中以十進位制的眼光看,確實...