日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 基礎(chǔ)知識科普站
[導(dǎo)讀]指令指針寄存器IP(X86型CPU)相當(dāng)于ARM型CPU中的程序計數(shù)器PC,用于控制程序中指令的執(zhí)行順序。正常運行時,IP中含有BIU要取的下一條指令(字節(jié))的偏移地址,一般情況下,每從內(nèi)存中存取一次指令碼,IP就自動加1,從而保證指令的順序執(zhí)行。IP實際上是指令機器碼存放內(nèi)存單元的地址指針,IP的內(nèi)容可以被轉(zhuǎn)移類指令(如JMP)強迫改寫,以改變程序執(zhí)行的順序。注意!我們編制的程序不能直接訪問IP,即不能用指令去取出IP的值或給IP設(shè)定值(如不能用mov指令給IP賦值)。

指令指針寄存器EIP中存放下一條將要執(zhí)行指令的偏移量(offset ),這個偏移量是相對于目前正在運行的代碼段寄存器CS而言的。偏移量加上當(dāng)前代碼段的基地址,就形成了下一條指令的地址。EIP中的低16位可以分開來進行訪問,給它起名叫指令指針I(yè)P寄存器,用于16位尋址。

指令指針寄存器ip,里面放置的是不是指令,而是一個指向下一個將要去獲取的指令的內(nèi)存地址(所以它是一個指針)。

它們的關(guān)系就是,CPU從指令指針寄存器ip 獲得指令的內(nèi)存地址,然后取出指令,放置到指令寄存器IR。接下來,指令指針寄存器ip自己加1(也就是指向下一條指令)。

指令指針寄存器和指針寄存器的差異

指令指針寄存器

指令指針寄存器及其與指針寄存器的關(guān)系

32位CPU把指令指針擴展到32位,并記作EIP,EIP的低16位與先前CPU中的IP作用相同。

指令指針EIP、IP(InstrucTIon Pointer)是存放下次將要執(zhí)行的指令在代碼段的偏移量。在具有預(yù)取指令功

能的系統(tǒng)中,下次要執(zhí)行的指令通常已被預(yù)取到指令隊列中,除非發(fā)生轉(zhuǎn)移情況。所以,在理解它們的功能

時,不考慮存在指令隊列的情況。

在實方式下,由于每個段的最大范圍為64K,所以,EIP中的高16位肯定都為0,此時,相當(dāng)于只用其低16位

的IP來反映程序中指令的執(zhí)行次序。

指針寄存器

32位CPU有2個32位通用寄存器EBP和ESP。其低16位對應(yīng)先前CPU中的SBP和SP,對低16位數(shù)據(jù)的存取,不影

響高16位的數(shù)據(jù)。

寄存器EBP、ESP、BP和SP稱為指針寄存器(Pointer Register),主要用于存放堆棧內(nèi)存儲單元的偏移量,

用它們可實現(xiàn)多種存儲器操作數(shù)的尋址方式,為以不同的地址形式訪問存儲單元提供方便。

指針寄存器不可分割成8位寄存器。作為通用寄存器,也可存儲算術(shù)邏輯運算的操作數(shù)和運算結(jié)果。

它們主要用于訪問堆棧內(nèi)的存儲單元,并且規(guī)定:

BP為基指針(Base Pointer)寄存器,用它可直接存取堆棧中的數(shù)據(jù);

SP為堆棧指針(Stack Pointer)寄存器,用它只可訪問棧頂。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉