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位寄存器。作爲通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。它們可作一般的存儲器指針使用。在字符串操作指令的執行過程中,對它們有特定的要求,而且還具有特殊的功能。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章