80386的4種執行模式
80386的記憶體使用框架
80386的暫存器
32位cpu所含有的暫存器有:
4個資料暫存器(eax、ebx、ecx和edx) 2個變址和指標暫存器(esi和edi) 2個指標暫存器(esp和ebp) 6個段暫存器(es、cs、ss、ds、fs和gs) 1個指令指標暫存器(eip) 1個標誌暫存器(eflags) 共八種
通用暫存器eax、ebx、ecx、edx、esi、edi、esp和ebp
段暫存器es、cs、ss、ds、fs和gs
指令指標暫存器eip
標誌暫存器eflags
控制暫存器(一般開發作業系統,系統軟體時用到)
系統位址暫存器(一般開發作業系統,系統軟體時用到)
除錯暫存器(一般開發作業系統,系統軟體時用到)
測試暫存器(一般開發作業系統,系統軟體時用到)
通用暫存器
指令指標暫存器
32位cpu把指令指標擴充套件到32位,並記作eip,eip的低16位與先前cpu中的ip作用相同。
指令指標eip、ip(instruction pointer)是存放下次將要執行的指令在**段的偏移量。在具有預取指令功能的系統中,下次要執行的指令通常已被預取到指令佇列中,除非發生轉移情況。所以,在理解它們的功能時,不考慮存在指令佇列的情況。
標誌暫存器
一、運算結果標誌位 1、進製標誌cf(carry flag) 進製標誌cf主要用來反映運算是否產生進製或借位。如果運算結果的最高位產生了乙個進製或借位,那麼,其值為1,否則其值為0。使用該標誌位的情況有:多字(位元組)數的加減運算,無符號數的大小比較運算,移位操作,字(位元組)之間移位,專門改變cf值的指令等。
2、奇偶標誌pf(parity flag) 奇偶標誌pf用於反映運算結果中「1」的個數的奇偶性。如果「1」的個數為偶數,則pf的值為1,否則其值為0。利用pf可進行奇偶校驗檢查,或產生奇偶校驗位。在資料傳送過程中,為了提供傳送的可靠性,如果採用奇偶校驗的方法,就可使用該標誌位。
3、輔助進製標誌af(auxiliary carry flag) 在發生下列情況時,輔助進製標誌af的值被置為1,否則其值為0:
(1)、在字操作時,發生低位元組向高位元組進製或借位時; (2)、在位元組操作時,發生低4位向高4位進製或借位時。對以上6個運算結果標誌位,在一般程式設計情況下,標誌位cf、zf、sf和of的使用頻率較高,而標誌位pf和af的使用頻率較低。
4、零標誌zf(zero flag) 零標誌zf用來反映運算結果是否為0。如果運算結果為0,則其值為1,否則其值為0。在判斷運算結果是否為0時,可使用此標誌位。
5、符號標誌sf(sign flag) 符號標誌sf用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用碼表示法,所以,sf也就反映運算結果的正負號。運算結果為正數時,sf的值為0,否則其值為1。
6、溢位標誌of(overflow flag) 溢位標誌of用於反映有符號數加減運算所得結果是否溢位。如果運算結果超過當前運算位數所能表示的範圍,則稱為溢位,of的值被置為1,否則,of的值被清為0。
「溢位」和「進製」是兩個不同含義的概念,不要混淆。如果不太清楚的話,請查閱《計算機組成原理》課程中的有關章節。
OS學習筆記 4(清華大學慕課)mooc實驗一
使用到函式棧,暫存器ebp esp ebp和esp稱為指標暫存器 pointer register 主要用於存放堆疊內儲存單元的偏移量,用它們可實現多種儲存器運算元的定址方式,為以不同的位址形式訪問儲存單元提供方便。1.首先將呼叫call函式的函式的一系列的暫存器資訊壓入棧中 2.呼叫call函式 ...
作業系統OS筆記目錄(清華大學)
不得不說想自學學作業系統,清華大學慕課是個不錯的選擇,但難度比較大,特別是想把慕課的實驗部分內容也完成的話。不過如果能把它的實驗部分也完成的話,相信你會對作業系統有個新的認識,在以後的接觸有關計算機方面的內容都很有幫助。如果有打算考清華專業課912研究生的也可以參考下我的筆記 有些我的總結,比較水,...
清華大學作業系統OS學習(十二) 訊號量與管程
一 訊號量 1 訊號量 semaphore 是作業系統提供的一種協調共享資源訪問的方法 訊號是一種抽象資料結構 乙個整型int sem 可進行兩個原子操作 p sem 如果sem 0,等待,否則繼續,類似lock acquire v sem 如果sem 0,說明當前有等著的,喚醒掛在訊號量上的程序,...