天天看點

Ax、Bx、Cx、Dx、AL、BL、CL、DL、AH、BH、CH、DH

        英文單詞縮寫:

                                 AH&AL=AX(accumulator):累加寄存器

                                 BH&BL=BX(base):基址寄存器

                                 CH&CL=CX(count):計數寄存器

                                 DH&DL=DX(data):資料寄存器

                                 SP(Stack Pointer):堆棧指針寄存器

                                 BP(Base Pointer):基址指針寄存器

                                 SI(Source Index):源變址寄存器

                                 DI(Destination Index):目的變址寄存器

                                 IP(Instruction Pointer):指令指針寄存器

                                 CS(Code Segment)代碼段寄存器

                                 DS(Data Segment):資料段寄存器

                                 SS(Stack Segment):堆棧段寄存器

                                 ES(Extra Segment):附加段寄存器

        32位CPU有4個32位的通用寄存器EAX、EBX、ECX和EDX。對低16位資料的存取,不會影響高16位的資料。這些低16位寄存器分别命名為:AX、BX、CX和DX,它和先前的CPU中的寄存器相一緻。

        4個16位寄存器又可分割成8個獨立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每個寄存器都有自己的名稱,可獨立存取。程式員可利用資料寄存器的這種“可分可合”的特性,靈活地處理字/位元組的資訊。

        寄存器AX和AL通常稱為累加器(Accumulator),用累加器進行的操作可能需要更少時間。累加器可用于乘、除、輸入/輸出等操作,它們的使用頻率很高;

         寄存器BX稱為基位址寄存器(Base Register)。它可作為存儲器指針來使用;

        寄存器CX稱為計數寄存器(Count Register)。在循環和字元串操作時,要用它來控制循環次數;在位操作中,當移多位時,要用CL來指明移位的位數;

        寄存器DX稱為資料寄存器(Data Register)。在進行乘、除運算時,它可作為預設的操作數參與運算,也可用于存放I/O的端口位址。

        在16位CPU中,AX、BX、CX和DX不能作為基址和變址寄存器來存放存儲單元的位址,但在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不僅可傳送資料、暫存資料儲存算術邏輯運算結果,而且也可作為指針寄存器,是以,這些32位寄存器更具有通用性。

        變址寄存器32位CPU有2個32位通用寄存器ESI和EDI。其低16位對應先前CPU中的SI和DI,對低16位資料的存取,不影響高16位的資料。寄存器ESI、EDI、SI和DI稱為變址寄存器(Index Register),它們主要用于存放存儲單元在段内的偏移量,用它們可實作多種存儲器操作數的尋址方式,為以不同的位址形式通路存儲單元提供友善。變址寄存器不可分割成8位寄存器。作為通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。它們可作一般的存儲器指針使用。在字元串操作指令的執行過程中,對它們有特定的要求,而且還具有特殊的功能。