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):附加段寄存器;