深入理解計算機系統(tǒng)復(fù)習(xí)參考_第1頁
深入理解計算機系統(tǒng)復(fù)習(xí)參考_第2頁
深入理解計算機系統(tǒng)復(fù)習(xí)參考_第3頁
深入理解計算機系統(tǒng)復(fù)習(xí)參考_第4頁
深入理解計算機系統(tǒng)復(fù)習(xí)參考_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

深入理解計算機系統(tǒng)復(fù)習(xí)參考1、字節(jié)序問題--大端法和小端法字節(jié)序,顧名思義字節(jié)的順序,是大于一個字節(jié)類型的數(shù)據(jù)在內(nèi)存中的存放順序。字節(jié)序分為兩類:大端法Big-Endian和小端法Little-Endian。定義如下:

a)Little-Endian就是低位字節(jié)排放在內(nèi)存的低地址端,高位字節(jié)排放在內(nèi)存的高地址端。

b)Big-Endian就是高位字節(jié)排放在內(nèi)存的低地址端,低位字節(jié)排放在內(nèi)存的高地址端。假設(shè)變量x類型為int,位于地址0x100處,有一個十六進(jìn)制值為0x0123456。地址范圍從0x100~0x103的字節(jié)順序來自于機器的類型:大端法:0x100

0x101

0x102

0x103

...01234567...小端法:0x100

0x101

0x102

0x103

...67452301...而對于字符,大小為一個字節(jié),不存在字節(jié)序問題,均為順序輸出。又其以ASCII碼存儲,所以注意以十六進(jìn)制輸出時的類型轉(zhuǎn)換。字母“A”~“Z”的ASCII碼為0x41~0x5A。字符串“ABCDEF”輸出為414243444546。2、C中的位運算1)位運算C語言提供了按位與(BitwiseAND)運算符&、按位或(BitwiseOR)運算符|和按位取反(BitwiseNOT)運算符~,此外還有按位異或(BitwiseXOR)運算符^。位運算2)左移右移移位運算符(BitwiseShift)包括左移<<和右移>>。a)左移將一個整數(shù)的各二進(jìn)制位全部左移若干位,例如0xcfffffff3<<2得到0x3fffffcc:左移運算最高兩位的11被移出去了,最低兩位又補了兩個0,其它位依次左移兩位。但要注意,移動的位數(shù)必須小于左操作數(shù)的總位數(shù),比如上面的例子,左邊是unsignedint型,如果左移的位數(shù)大于等于32位,則結(jié)果是Undefined。在一定的取值范圍內(nèi),將一個整數(shù)左移1位相當(dāng)于乘以2。這條規(guī)律對有符號數(shù)和無符號數(shù)都成立,對負(fù)數(shù)也成立。當(dāng)然,如果左移改變了最高位(符號位),那么結(jié)果肯定不是乘以2了,所以前提“在一定的取值范圍內(nèi)”。b)右移將一個整數(shù)的各二進(jìn)制位全部右移若干位。當(dāng)操作數(shù)是無符號數(shù)時,右移運算的規(guī)則和左移類似,例如0xcfffffff3>>2得到0x33fffffc:右移運算最低兩位的11被移出去了,最高兩位又補了兩個0,其它位依次右移兩位。和左移類似,移動的位數(shù)也必須小于左操作數(shù)的總位數(shù),否則結(jié)果是Undefined。在一定的取值范圍內(nèi),將一個整數(shù)右移1位相當(dāng)于除以2,小數(shù)部分截掉。當(dāng)操作數(shù)是有符號數(shù)時,右移運算的規(guī)則比較復(fù)雜:如果是正數(shù),那么高位移入0如果是負(fù)數(shù),那么高位移入1還是0不一定,這是Implementation-defined的。對于x86平臺的gcc編譯器,最高位移入1,也就是仍保持負(fù)數(shù)的符號位,這種處理方式對負(fù)數(shù)仍然保持了“右移1位相當(dāng)于除以2”的性質(zhì)。3)掩碼如果要對一個整數(shù)中的某些位進(jìn)行操作,怎樣表示這些位在整數(shù)中的位置呢?可以用掩碼(Mask)來表示。比如掩碼0x0000ff00表示對一個32位整數(shù)的8~15位進(jìn)行操作。4)異或運算的一些特性1、一個數(shù)和自己做異或的結(jié)果是0。2、從異或的真值表可以看出,不管是0還是1,和0做異或值不變,和1做異或得到原值的相反值。3、如果a1^a2^a3^...^an的結(jié)果是1,則表示a1、a2、a3...an之中1的個數(shù)為奇數(shù)個,否則為偶數(shù)個。這條性質(zhì)可用于奇偶校驗(ParityCheck)。4、x^x^y==y,因為x^x==0,0^y==y。3、整數(shù)在計算機中的存儲在計算機系統(tǒng)中,整數(shù)一律用補碼來表示(存儲)。無符號的整數(shù)就沒有原碼、反碼和補碼。(所有位均為數(shù)值位)對于有符號數(shù):原碼為直接的二進(jìn)制表示,用一個數(shù)的最高位存放符號(0為正,1為負(fù)),其余為數(shù)值位。正數(shù)的原碼,反碼,補碼都一樣。負(fù)數(shù),反碼是對它的原碼(符號位除外)各位取反而得到的。補碼是對它的原碼(除符號位外)各位取反,并在未位加1而得到的。例:若機器數(shù)是16位:

十進(jìn)制數(shù)17的原碼、反碼與補碼均為:0000000000010001

十進(jìn)制數(shù)-17的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、11111111111011114、擴展一個數(shù)字的位表示5、操作數(shù)指示符%eax--0x100--0xFF%eax--0x100--0x100+0x4=0x104--0xAB%eax--0x100--0xFF%eax--0x100--0x100+0x4=0x104--0xAB0x100+0x3=0x103--0x103+0x9=0x10c--0x110x1*4+0xFC=0x10--0xFF0x100+0x3*4=0x10--0x116、加載有效地址7+x+8*x9+x+2+y7+x+8*x9+x+2+y7、一元和二元操作0x100--0xFF--0xFF+0x1=0x1000x100+0x4=0x104--0xAB-0x3=0xA80x100--0xFF--0xFF+0x1=0x1000x100+0x4=0x104--0xAB-0x3=0xA80x100+0x3*0x4=0x10c--0x11*0x10=0x1100x100+0x8=0x108--0x13+0x1=0x140x1-0x1=00x100-0x3=0xFDP125改變狀態(tài)寄存器P1273.11P1313.93.12均涉及代碼翻譯,大家自己看書體會一下。8、寄存器使用慣例根據(jù)慣例,寄存器%eax,%ecx,%edx被劃分為由調(diào)用者保存的寄存器。寄存器%ebx,%esi,%edi被劃分為由被調(diào)用者保存的寄存器。此外必須保持寄存器%ebp和%esp。返回值存放于%eax中。P148代碼需理解9、高速緩存的工作方式標(biāo)記組索引塊偏移E=2S=8C標(biāo)記組索引塊偏移E=2S=8CI=log28E=2B=4CO=log24000x0000x01010x5011100010x715組,標(biāo)記位71有效位是1命中塊偏移0返回0B0x0E34--01110001101005組,標(biāo)記位6E有效位是05組,標(biāo)記位6E有效位是0不命中塊偏移1返回-1組,標(biāo)記位FF不存在1組,標(biāo)記位FF不存在不命中無返回組011標(biāo)記32組011標(biāo)記3200110010偏移00、01、10、110011001001100001100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論