为了提高CPU的运算速度,减少访问存储器的存取操作,8086CPU内置了相应寄存器,用来暂存参加运算的操作数及运算的中间结果。指令通过寄存器实现对操作数的操作比通过存储器操作要快得多,因此在编程时,合理利用寄存器能提高程序的运行效率。8086CPU内部提供了14个16位的寄存器。其结构如下:
通用寄存器
通用寄存器分为数据通用寄存器和地址指针与变址寄存器两组。
数据通用寄存器
数据通用寄存器包括AX、BX、CX和DX共4个16位寄存器,他们既可以作为16位寄存器使用,也可以将每个寄存器分开作为两个独立的8位寄存器使用,即高8位寄存器AH、BH、CH、DH和低8位寄存器AL、BL、CL、DL。这些寄存器既可以作为目的操作地址,保存运算的中间结果或最后结果。
地址指针与变址寄存器
地址指针寄存器SP、BP与变址寄存器SI、DI主要用来存放或指示操作数的偏移地址,其中SP中存放当前堆栈段中栈顶的偏移地址。在进行堆栈操作时,SP的值随着栈顶的变化而自动改变,但始终指向栈顶位置;BP是访问堆栈时的基址寄存器,存放堆栈中某一存储单元的偏移地址,使用BP是为了访问堆栈区内任意位置的存储单元。
变址寄存器SI和DI用来存放当前数据所在段的存储单元的偏移地址。SI和DI除了可作为一般的变址寄存器使用外,