首頁  >  文章  >  存放程式碼段中偏移位址的暫存器是什麼

存放程式碼段中偏移位址的暫存器是什麼

青灯夜游
青灯夜游原創
2021-01-22 13:54:019931瀏覽

存放程式碼段中偏移位址的暫存器是:指令指標暫存器。指令指標暫存器IP用於控製程式中指令的執行順序;正常運作時,IP中含有BIU要取的下一指令(位元組)的偏移位址,一般情況下,每從記憶體存取一次指令碼,IP就自動加1,從而保證指令的順序執行。

存放程式碼段中偏移位址的暫存器是什麼

本教學操作環境:windows7系統、Dell G3電腦。

暫存器的功能是儲存二進位程式碼,它是由具有儲存功能的觸發器組合起來構成的。一個觸發器可以儲存1位二進位代碼,故存放n位二進位代碼的暫存器,需用n個觸發器來構成。

存放程式碼段中偏移位址的暫存器是:指令指標暫存器。

指令指標暫存器IP(X86型CPU)相當於ARM型CPU中​​的程式計數器PC,用於控製程式中指令的執行順序。正常運作時,IP中含有BIU要取的下一指令(位元組)的偏移位址,一般情況下,每從記憶體中存取一次指令碼,IP就自動加1,從而保證指令的順序執行。 IP其實是指令機器碼存放記憶體單元的位址指針,IP的內容可以被轉移類別指令(如JMP)強迫改寫,以改變程式執行的順序。

注意!我們編製的程式不能直接存取IP,也就是不能用指令去取出IP的值或給IP設定值(如不能用mov指令給IP賦值)。

擴展知識:概念區分

#指令暫存器(IR,Instruction Register),用於暫存目前正在執行的指令。指令暫存器的時脈訊號是clk,在clk的上升沿觸發。指令暫存器將資料匯流排送來的指令存入16位元的暫存器中,但並非每次資料匯流排上的資料都需要寄存,因為資料匯流排上有時會傳送指令,有時會傳送資料。由CPU狀態控制器的 Ir_ena訊號控制資料是否需要寄存。重設時,指令暫存器被清除。

指令指標暫存器IP(Instruction Pointer)用來存放待要取出指令的位址偏移。它只有與CS暫存器結合,才能形成指向指令的真正實體位址。

想要查閱更多相關文章,請造訪PHP中文網! !

以上是存放程式碼段中偏移位址的暫存器是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn