您的位置:首页 > 其它

常用汇编寄存器

2017-03-13 01:23 127 查看
8086寄存器组 

1. 通用寄存器

通用寄存器包括了8个16位的寄存器:AX、BX、CX、DX、SP、BP、DI及SI。

其中AX、BX、CX、DX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。

它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。

这4个通用数据寄存器除通用功能外,还有如下专门用途:

 AX作为累加器用,所以它是算术运算的主要寄存器。在乘除指令中指定用来存放操作数。另外,所有的I/O指令都使用AX或AL与外部设备传送信息。 

  BX在计算存储器地址时,可作为基址寄存器使用。 

CX常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。 

DX在作双字长运算时,可把DX和AX组合在一起存放一个双字长数,DX用来存放高16位数据。此外,对某些I/O操作,DX可用来存放I/O的端口地址。 

而SP、BP、SI、DI四个16位寄存器可以象数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。

此外,它们更经常的用途是在存储器寻址时,提供偏移地址。因此,它们可称为指针或变址寄存器。

SP称为堆栈指针寄存器,用来指出栈顶的偏移地址。 

BP称为基址指针寄存器,在寻址时作为基地址寄存器使用,但它必须与堆栈段寄存器SS联用来确定堆栈段中的存储单元地址。 

SI为源变址寄存器,在串处理指令中,SI作为隐含的源变址寄存器与DS联用,以确定数据段中的存储单元地址,并有自动增量和自动减量的变址功能。 

DI为目的变址寄存器,在串处理指令中,DI和附加段寄存器ES联用,以达到在附加段中寻址的目的,然后DI自动增量或减量。 

2. 专用寄存器

    8086的专用寄存器包括IP、SP和FLAGS三个16位寄存器。 
    IP为指令指针寄存器,它用来存放将要执行的下一条指令地址的偏移量,它与段寄存器CS联合形成代码段中指令的物理地址。

    SP为堆栈指针寄存器,它与堆栈段寄存器联用来确定堆栈段中栈顶的地址,也就是说SP用来存放栈顶的偏移地址。 
    FLAGS为标志寄存器,这是一个存放条件码标志、控制标志的16位寄存器。

3. 段寄存器 
    8086微处理器共有4个16位的段寄存器,在寻址内存单元时,用它们直接或间接地存放段地址。

代码段寄存器CS:存放当前执行的程序的段地址。  

数据段寄存器DS:存放当前执行的程序所用操作数的段地址。

堆栈段寄存器SS:存放当前执行的程序所用堆栈的段地址。 

附加段寄存器ES:存放当前执行程序中一个辅助数据段的段地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编 寄存器 8086 指令