1.8086寄存器结构
8086CPU内部有14个16位寄存器,按功能分可分为三大类: 通用寄存器(8个),段寄存器(4个),和控制寄存器(2个)
1>数据寄存器AX,BX,CX,DX
每个数据寄存器都是十六位的,但又可将高,低8位分别作为两个独立的8位寄存器来用.
AX:累加器,存放运算结果 ,可使指令简化,提高指令的执行速度
BX:基址寄存器,操作数在数据段内的偏移地址
CX:计数器,在设计循环程序时存放循环次数
DX:数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口地址; 在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数
2>地址指针寄存器SP,BP
SP:称为堆栈指针寄存器,在使用堆栈操作指令(PUSH或POP)时,系统会将SP的内容减2或 加2,以使其始终指向栈顶
PB:基址寄存器,重要的用途是存放操作数在堆栈段的偏移地址
3>变址寄存器SI,DI
SI为源变址寄存器 ,DI为目的变址寄存器,通常用在 字符串操作时存放操作数的偏移地址. SI存放在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址
4>段寄存器
CS:代码段寄存器,用来存放程序当前使用的代码的段地址,其内容左移4位再加上指令指针寄存器IP中的内容 就是 下一条要读取的指令在存储器中的物理地址
DS:数据段寄存器,存放当前程序数据段的段地址,左移4位再加上按指令中存储器寻址方式给出的偏移地址即可得到数据段指定单元读写的物理地址