• <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>

            Ay's Blog@CNSSUESTC

            老把寄存器弄混~~特此記下這些 From 百度百科

              80386的寄存器資料? 省的我看匯編的時候都不知道寄存器咋個用~
              寄存器都是32-bits寬。
              A、通用寄存器
              下面介紹通用寄存器及其習慣用法。顧名思義,通用寄存器是那些你可以根據自己的意愿使用的寄存器,修改他們的值通常不會對計算機的運行造成很大的影響。通用寄存器最多的用途是計算。
              EAX(accumulator):通用寄存器。相對其他寄存器,在進行運算方面比較常用。在保護模式中,也可以作為內存偏移指針(此時,DS作為段 寄存器或選擇器)
              EBX(base):通用寄存器。通常作為內存偏移指針使用(相對于EAX、ECX、EDX),DS是默認的段寄存器或選擇器。在保護模式中,同樣可以起這個作用。
              ECX(count):通用寄存器。通常用于特定指令的計數。在保護模式中,也可以作為內存偏移指針(此時,DS作為 寄存器或段選擇器)。
              EDX(data):通用寄存器。在某些運算中作為EAX的溢出寄存器(例如乘、除)。在保護模式中,也可以作為內存偏移指針(此時,DS作為段 寄存器或選擇器)。
              同AX分為AH&AL一樣,上述寄存器包括對應的16-bit分組和8-bit分組。
              B、用作內存指針的特殊寄存器
              ESI(Source Index):通常在內存操作指令中作為“源地址指針”使用。當然,ESI可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。
              EDI(Destination Index):通常在內存操作指令中作為“目的地址指針”使用。當然,EDI也可以被裝入任意的數值,但通常沒有人把它當作通用寄存器來用。DS是默認段寄存器或選擇器。
              EBP(Base Pointer):這也是一個作為指針的寄存器。通常,它被高級語言編譯器用以建造‘堆棧幀'來保存函數或過程的局部變量,不過,還是那句話,你可以在其中保存你希望的任何數據。SS是它的默認段寄存器或選擇器。
              注意,這三個寄存器沒有對應的8-bit分組。換言之,你可以通過SI、DI、BP作為別名訪問他們的低16位,卻沒有辦法直接訪問他們的低8位。
              C、段選擇器:
              實模式下的段寄存器到保護模式下搖身一變就成了選擇器。不同的是,實模式下的“段寄存器”是16-bit的,而保護模式下的選擇器是32-bit的。
              CS(Code Segment) 代碼段,或代碼選擇器。同IP寄存器(稍后介紹)一同指向當前正在執行的那個地址。處理器執行時從這個寄存器指向的段(實模式)或內存(保護模式)中獲取指令。除了跳轉或其他分支指令之外,你無法修改這個寄存器的內容。
              DS(Data Segment) 數據段,或數據選擇器。這個寄存器的低16 bit連同ESI一同指向的指令將要處理的內存。同時,所有的內存操作指令 默認情況下都用它指定操作段(實模式)或內存(作為選擇器,在保護模式。這個寄存器可以被裝入任意數值,然而在這么做的時候需要小心一些。方法是,首先把 數據送給AX,然后再把它從AX傳送給DS(當然,也可以通過堆棧來做).
              ES(Extra Segment) 附加段,或附加選擇器。這個寄存器的低16 bit連同EDI一同指向的指令將要處理的內存。同樣的,這個寄存器可以被裝入任意數值,方法和DS類似。
              FS F段或F選擇器(推測F可能是Free?)。可以用這個寄存器作為默認段寄存器或選擇器的一個替代品。它可以被裝入任何數值,方法和DS類似。
              GS G段或G選擇器(G的意義和F一樣,沒有在Intel的文檔中解釋)。它和FS幾乎完全一樣。
              SS(Stack Segment) 堆棧段或堆棧選擇器。這個寄存器的低16 bit連同ESP一同指向下一次堆棧操作(push和pop)所要使用的堆棧地址。這個寄存器也可以被裝入任意數值,你可以通過入棧和出棧操作來給他賦 值,不過由于堆棧對于很多操作有很重要的意義,因此,不正確的修改有可能造成對堆棧的破壞。
              * 注意 一定不要在初學匯編的階段把這些寄存器弄混。他們非常重要,而一旦你掌握了他們,你就可以對他們做任意的操作了。段寄存器,或選擇器,在沒有指定的情況下都是使用默認的那個。這句話在現在看來可能有點稀里糊涂,不過你很快就會在后面知道如何去做。
              指令指針寄存器:
              EIP(Instruction Pointer) 這個寄存器非常的重要。這是一個32位寬的寄存器 ,同CS一同指向即將執行的那條指令的地址。不能夠直接修改這個寄存器的值,修改它的唯一方法是跳轉或分支指令。(CS是默認的段或選擇器)

              

            posted on 2009-02-01 16:39 __ay 閱讀(420) 評論(0)  編輯 收藏 引用 所屬分類: 操作系統&&內核

            狠狠色综合网站久久久久久久高清| 久久精品人人槡人妻人人玩AV| 久久久久久国产a免费观看不卡| 无码任你躁久久久久久老妇| 老色鬼久久亚洲AV综合| 国产99久久久久久免费看| 免费久久人人爽人人爽av| 曰曰摸天天摸人人看久久久| 精品一二三区久久aaa片| 狠狠人妻久久久久久综合蜜桃| 噜噜噜色噜噜噜久久| 久久国产高清字幕中文| 国产精品99久久久精品无码| 久久久噜噜噜久久熟女AA片| 欧美亚洲国产精品久久| 久久黄视频| 国产精品伦理久久久久久| 无码国产69精品久久久久网站| 色8激情欧美成人久久综合电| 久久99精品国产麻豆宅宅| 亚洲熟妇无码另类久久久| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久久精品视频免费观看| 99久久99久久精品免费看蜜桃| 亚洲国产成人久久一区WWW| 99久久精品九九亚洲精品| 久久久精品2019免费观看| 浪潮AV色综合久久天堂| 久久人妻AV中文字幕| 国产精品久久久久a影院| 久久人人爽人人爽AV片| 久久精品中文字幕一区| 青青国产成人久久91网| 色综合久久久久| 99久久人人爽亚洲精品美女| 一本久久久久久久| 成人a毛片久久免费播放| 久久国产高清一区二区三区| 精品久久久久久无码免费| 久久亚洲欧洲国产综合| 中文精品99久久国产 |