8086寄存器詳解

8086寄存器詳解

    

        因爲現在的PC機處理器,都是向下一直兼容到8086,編語言是針對微處理器(即CPU)的,如INTEL8088/8086,8051/8031,Z80等...,我們不可能掌握所有的彙編,無必要也不可能,所以我們選擇8086來學習彙編語言。
        而對於一個彙編程序員來說,CPU 中主要可以使用的也就是寄存器而已,彙編程序員可以使用指令來讀寫 CPU 中的寄存器,從而可以實現對於 CPU 的控制,當然,不同的 CPU ,寄存器的個數和結構都是不一樣的,比如 8086 CPU 中,寄存器的個數也就 14 個而已,並且 8086 CPU 中所有的寄存器的結構爲 16 位,即一個寄存器中可以存放下 2B 即 2 個字節。
        8086  CPU 中寄存器總共爲 14 個,且均爲 16 位 。即   
AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 個。
而這 14 個寄存器按照一定方式又分爲了通用寄存器,控制寄存器和段寄存器。
  
      
             AX (Accumulator):累加寄存器,也稱之爲累加器;在乘除指令中指定用來存放操作數。
                                              另外,所有的I/O指令都使用AX或AL與外部設備傳送信息。
             BX (Base):基地址寄存器,在計算存儲器地址時,可作爲基址寄存器使用,BX 寄存器中存放的
                               數據一般是用來作爲偏移地址使用的;
             CX (Count):計數器寄存器,常用來保存計數值,如在移位指令、循環指令和串處理指令中用
                                  作隱含的計數器。;
             DX (Data):數據寄存器,使用 DIV 指令進行除法運算時,如果除數爲 16 位時,被除數將會是 
                                32 位,而被除數的高 16 位就是存放在 DX 中,而且執行完 DIV 指令後,本次除
                                法運算所產生的餘數將會保存在 DX 中,同時,在執行 MUL 指令時,如果兩個相
                                乘的數都是 16 位的話,那麼相乘後產生的結果顯然需要 32 位來保存,而這 32 位
                                的結果的高 16 位就是存放在 DX 寄存器中 ;
     
            SP (Stack Pointer):堆棧指針寄存器;
            BP (Base Pointer):基指針寄存器;
     
            SI (Source Index):源變址寄存器;
            DI (Destination Index):目的變址寄存器;

           IP (Instruction Pointer):指令指針寄存器;
           FLAG:標誌寄存器;

           CS (Code Segment):代碼段寄存器;
           DS (Data Segment):數據段寄存器;
           SS (Stack Segment):堆棧段寄存器;
           ES (Extra Segment):附加段寄存器;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章