高等作業系統(2009 年春)

瀏覽次數:11 次
跳到第一則未讀訊息

ellingtonsu

未讀,
2009年3月5日 凌晨12:07:362009/3/5
收件者:課程討論
請大家多多利用此留言版發表任何與課程相關的問題!

郭昭霆

未讀,
2009年4月13日 上午11:34:432009/4/13
收件者:課程討論
在 03linuxkernel 的投影片中 最後一段討論到 big endian 和 little endian 裡面有 圖和 範
例 感覺上有衝突阿

在範例中 big endian 為 0X12 0X34 0X56 0X78
在圖中則 byte 0 1 2 3
24-31 16-23 08-15 01-07 int


這到底是哪邊對阿

臨時抱佛腳 希望不要抱到地雷的人留

蘇維宗

未讀,
2009年4月14日 凌晨2:21:322009/4/14
收件者:ellingto...@googlegroups.com
上課也許我沒有說得很清楚
表示資料 0x12345678 時,我們稱最左邊的位元(組)為 Most Significant Bit(Byte) (MSB);最右邊的位元(組)為 Least Significant Bit(Byte) (LSB)
Little Endian 的架構是將 MSB 放在記憶體位址較高的方向; LSB 放在記憶體較低的方向
Big Endian 的架構則是將 MSB 放在記憶體位址較低的方向;LSB放在記憶體較高的方向
 
以 0x12345678 為例,0x12 為 MSB;0x78 為 LSB,因此
在Little Endian 架構中
記憶體位址 0(低)           1         2        3(高)
                 0x78(LSB)   0x56   0x34   0x12(MSB)
在Bid Endian 架構中
記憶體位址 0(低)            1         2        3(高)
                 0x12(MSB)   0x34   0x56   0x78(LSB)
 
課本的圖是把bit 24 ~ 31當作MSB;bit 0 ~ 7當作LSB,所以造成了有衝突的感覺。
這部分我會在新的投影片中作修正,謝謝~~
2009/4/13 郭昭霆 <srac...@gmail.com>
回覆所有人
回覆作者
轉寄
0 則新訊息