操作系統知識:程序計數器(pc)、指令寄存器(IR)、通用寄存器(GR)、狀態寄存器(SR)、程序狀態字PSW

  • 程序計數器(PC,Program counter),用於存放指令的地址。爲了保證程序(在操作系統中理解爲進程)能夠連續地執行下去,CPU必須具有某些手段來確定下一條指令的地址。當執行一條指令時,首先需要根據PC中存放的指令地址,將指令由內存取到指令寄存器中,此過程稱,爲“取指令”。與此同時,PC中的地址或自動加1或由轉移指針給出下一條指令的地址。此後經過分析指令,執行指令。完成第一條指令的執行,而後根據PC取出第二條指令的地址,如此循環,執行每一條指令。
  • 指令寄存器(IR,Instruction Register),用來保存當前正在執行的一條指令。是臨時放置從內存裏面取得的程序指令的寄存器,用於存放當前從主存儲器讀出的正在執行的一條指令。當執行一條指令時,先把它從內存取到數據寄存器(DR,Data Register)中,然後再傳送至IR。指令劃分爲操作碼和地址碼字段,由二進制數字組成。爲了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經譯碼後,即可向操作控制器發出具體操作的特定信號。
  • 通用寄存器(GR,General register):通用寄存器可用於傳送和暫存數據,也可參與算術邏輯運算,並保存運算結果。除此之外,它們還各自具有一些特殊功能。通用寄存器的長度取決於機器字長,彙編語言程序員必須熟悉每個寄存器的一般用途和特殊用途,只有這樣,才能在程序中做到正確、合理地使用它們。
  • 16位cpu通用寄存器共有8個:AX(累加器(Accumulator Register)),BX(基地址寄存器(Base Register)),CX(計數寄存器(Count Register)),DX(數據寄存器(Data Register)),BP(基址指針寄存器(Base Pointer)),SP(堆棧指針寄存器(Stack Pointer)),SI(源變址寄存器 (Source Index)),DI(目的變址寄存器(Destination Index)).八個寄存器都可以作爲普通的數據寄存器使用。
  1. 寄存器AX通常稱爲累加器(Accumulator);用累加器進行的操作可能需要更少時間。累加器可用於乘、除、輸入/輸出等操作,它們的使用頻率很高; 

  2. 寄存器BX稱爲基地址寄存器(Base Register):它可作爲存儲器指針來使用; 

  3. 寄存器CX稱爲計數寄存器(Count Register):在循環和字符串操作時,要用它來控制循環次數;在位操作中,當移多位時,要用CL來指明移位的位數; 

  4. 寄存器DX稱爲數據寄存器(Data Register):在進行乘、除運算時,它可作爲默認的操作數參與運算,也可用於存放I/O的端口地址。

  5. 指針寄存器  EBP,  ESP,(Pointer Register),指針寄存器主要用於存放堆棧內存儲單元的偏移量,用它們可實現多種存儲器操作數的尋址方式,爲以不同的地址形式訪問存儲單元提供方便。指針寄存器不可分割成8位寄存器。作爲通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。寄存器BP稱爲基址指針寄存器(Base Pointer);寄存器SP稱爲堆棧指針寄存器(Stack Pointer)。

  6. 變址寄存器  ESI,   EDI , 變址寄存器主要用於存放存儲單元在段內的偏移量,用它們可實現多種存儲器操作數的尋址方式,爲以不同的地址形式訪問存儲單元提供方便。 變址寄存器不可分割成8位寄存器。作爲通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。

  7. 寄存器SI稱爲源變址寄存器 (Source Index);

  8. 寄存器DI稱爲目的變址寄存器(Destination Index)。

  • 16位cpu通用寄存器共有 8 個:  AX,     BX,   CX,  DX,  BP, SP,   SI,   DI.
  • 32位cpu通用寄存器共有 8 個: EAX, EBX , ECX, EDX, EBP, ESP, ESI, EDI
  • 但有的有特殊的用途:AX爲累加器,CX爲計數器,BX,BP爲基址寄存器,SI,DI爲變址寄存器,BP還可以是基指針,SP爲堆棧指針。
  • 程序狀態字PSW(PSW,Program Status Word)包括的狀態位有進位標誌位(CF)、結果爲零標誌位(ZF)、符號標誌位(SF)、溢出標誌位(OF)、陷阱標誌位(TF)、中斷使能(中斷屏蔽)標誌位(IF)、虛擬中斷標誌位(VIF)、虛擬中斷待決標誌位(VIP)、I0特權級別(IOPL)。
  • 狀態寄存器又名條件碼寄存器(SR,Status register),它是計算機系統的核心部件——運算器的一部分,狀態寄存器用來存放兩類信息:一類是體現當前指令執行結果的各種狀態信息(條件碼,如有無進位(CF位)、有無溢出(OF位)、結果正負(SF位)、結果是否爲零(ZF位)、奇偶標誌位(P位)等;另一類是存放控制信息(PSW:程序狀態字寄存器,如允許中斷(IF位)、跟蹤標誌(TF位)等。有些機器中將PSW稱爲標誌寄存器FR(Flag Register)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章