《微機原理》這本課程學過,不過後來我忘記了。今天覆習的時候,作為學渣的我解了好大乙個疑惑。
書上說,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 公式中以十進位制的眼光看,確實...