通用寄存器有8个,都是16为位的,分别是ax,bx,cx, dx,si,di,sp, bp,其中寄存器ax,bx,cx, dx又被分为高八位和低八位,高八位和低八位都可以区分开来使用。
ax寄存器的高八位是ah,低八位是al。
bx寄存器的高八位是bh,低八位是bl。
cx寄存器的高八位是ch,低八位是cl。
dx寄存器的高八位是dh,低八位是dl。
ax寄存器,accumulator,累加寄存器,是进行算术运算的主要寄存器,端口操作也用它传送数据。
bx寄存器,base,基址寄存器,作为基础地址使用。
cx寄存器,count,计数器寄存器,主要用于循环。
dx寄存器,data,数据扩展位寄存器,如乘除运算,端口操作时用作存放端口地址。
si寄存器,source index,源变址寄存器,字符串指令默认si寄存器为源地址偏移地址。
di寄存器,destination index,目的变址寄存器,字符串指令默认di寄存器为目的字符串偏移地址。
bp寄存器,base pointer,基址指针寄存器,一般用于堆栈中的数据操作。
sp寄存器,stack point,堆栈指针寄存器,一般总是指向栈顶的位置。
然而80386后面的CPU中,8个通用寄存器变成了32位的了,分别叫做eax,ebx,ecx,edx,esi,edi,ebp,esp。
所以不是高八位与低八位之分了,而是高十六位于低十六位之分了,但是功能不变。