• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            CPU Instruction Pointer

            Posted on 2016-04-10 23:56 eryar 閱讀(1668) 評論(1)  編輯 收藏 引用

            CPU Instruction Pointer

            eryar@163.com

            1.Introduction

            CPU對存儲器的讀寫通過總線Bus來完成,總線又分為地址總線(Address Bus)、數(shù)據(jù)總線(Data Bus)、控制總線(Control Bus)。地址總線AB決定了CPU的尋址能力,即可以訪問的存儲空間的大小。數(shù)據(jù)總線DB決定了CPU的一次操作中可以處理的數(shù)據(jù)的大小,16位CPU一次可以加載兩個字節(jié),32位CPU一次可以加載4個字節(jié)。當(dāng)然CPU的主頻越大,那么在相同的時間內(nèi),處理的次數(shù)會更多。

            2.16bit CPU 

            由于8086CPU有20位地址總線,所以尋址能力為1MB。但是8086所有的寄存器都是16位的,如果由寄存器直接處理地址,那么一個16位的寄存器可以訪問的最大地址為64KB。如何通過16位的寄存器來訪問這1MB的空間呢?8086CPU折騰出一個地址加法器,通過加法器來根據(jù)兩個16位地址來合成一個20位的地址,即物理地址=段地址X16+偏移地址。對應(yīng)到CPU中就是CS和IP這兩個寄存器。

            8086CPU中的CS和IP的內(nèi)容提供了CPU要執(zhí)行指令的地址。在CPU中,程序員能夠用指令讀寫的部件只有寄存器,程序員可以通過改變寄存器中的內(nèi)容實(shí)現(xiàn)對CPU的控制。CPU從何處執(zhí)行指令是由CS和IP中的內(nèi)容決定的,程序員可以通過改變CS和IP中的內(nèi)容來控制CPU執(zhí)行目標(biāo)指令。

            若想同時修改CS和IP的內(nèi)容,可以用形如jmp 段地址:偏移地址的指令完成。如下圖所示:

            wps_clip_image-10222

            3.32bit CPU

            因?yàn)?0386的CPU尋址能力是4GB,所以它的尋址模式是平坦模式,不需要用段地址+偏移地址來折騰。所以32位CPU的EIP寄存器對應(yīng)了16位CPU中的CS和IP兩個寄存器。修改了EIP寄存器就可以改變CPU要執(zhí)行的指令。如下面一段簡單代碼:

            #include <stdio.h> 

            int main(int argc, char* argv[]) 

                mark: printf(
            "hi\n"); 

                
            goto mark; 

                
            return 0
            }

            使用了goto,在Debug時可以在Visual Studio中看到CPU中相關(guān)寄存器中的信息如下圖所示:

            wps_clip_image-22411

            由上圖可知,goto對應(yīng)的匯編命令就是一個修改EIP寄存器的jmp指令。

            Feedback

            # re: CPU Instruction Pointer  回復(fù)  更多評論   

            2016-04-12 16:25 by anna
            很基礎(chǔ)的知識

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            女同久久| 色8激情欧美成人久久综合电| 中文字幕久久精品| 亚洲国产精品无码久久| 亚洲乱码精品久久久久.. | 精品国产青草久久久久福利| 99久久精品免费看国产一区二区三区| 丰满少妇高潮惨叫久久久| 激情久久久久久久久久| 伊人久久大香线焦AV综合影院| 久久国产精品77777| 狠狠色丁香久久婷婷综合| 91久久精一区二区三区大全| 一级做a爰片久久毛片免费陪| 亚洲愉拍99热成人精品热久久 | 无码任你躁久久久久久老妇App| 久久精品这里热有精品| 人妻少妇久久中文字幕| 色99久久久久高潮综合影院| 国产亚洲精久久久久久无码| 亚洲欧美国产精品专区久久| 国产成人精品久久免费动漫 | 久久夜色撩人精品国产小说| 99久久99这里只有免费费精品| 狠狠色丁香久久婷婷综合图片| 九九久久精品国产| 久久久久一区二区三区| WWW婷婷AV久久久影片| 久久综合综合久久综合| 亚洲国产成人乱码精品女人久久久不卡 | 91精品观看91久久久久久| 久久精品国产亚洲AV无码偷窥| 亚洲国产精品嫩草影院久久| 亚洲伊人久久大香线蕉苏妲己| 国产午夜福利精品久久2021| 日日噜噜夜夜狠狠久久丁香五月| 国产一区二区久久久| 国内精品九九久久精品| 7777精品久久久大香线蕉| 囯产精品久久久久久久久蜜桃| 久久人人爽人人爽人人爽|