8086汇编学习笔记1---寄存器
8086寄存器
不同CPU的寄存器个数结构不同,对于8086CPU,有14个寄存器,分为:
AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW
通用寄存器
在x86架构的汇编语言中ax,bx,cx,dx是通用寄存器,用于存储数据或进行算术运算。这些寄存器的功能区别如下:
- AX (Accumulator): AX寄存器是累加器寄存器,用于执行算术和逻辑操作,以及存放函数返回值。在乘法和除法运算中,AX寄存器存储乘法的结果或除法的被除数。
- BX (Base Register): BX寄存器通常用作基址寄存器,用于存放内存访问中的偏移地址。在一些特殊情况下,BX也可以用作通用寄存器。
- CX (Count Register): CX寄存器通常用作计数器,特别是在循环操作中。它可以作为循环的计数值,并在循环执行过程中递减。
- DX (Data Register): DX寄存器常用于存放一些数据,例如乘法的乘数或除法的除数。
8086的寄存器均为16位,一个16位寄存器又可分为两部分,即kH,kL(k为A,B,C,D),各为一个字节(2字节/16位为一个字)
AX寄存器
AX寄存器一般用来存储临时数据,存储函数返回值,存储控制信息等,所以经常被用于MOV指令
BX寄存器
BX寄存器通常用于内存寻址,即用于存储内存地址或作为其他寄存器的间接寻址寄存器
例如:
1 | MOV BX, 2000h ; 将数据2000h传送到BX寄存器,作为内存地址 |
CX寄存器
CX寄存器常用于计数器,用来在循环中(Loop)计数和存储计数值
Loop <标号>命令执行时,会进行两步操作:
1.(cx)=(cx)-1;
2.判断cx是否为0,如果为0则向下执行,否则跳转至标号处执行程序]
DX寄存器
DX常用于存储数据或者作为数据传输的缓冲区,例如存储循环累加的值
段寄存器
在 8086 处理器中,共有四个段寄存器,它们是 CS (Code Segment)、DS (Data Segment)、SS (Stack Segment) 和 ES (Extra Segment),各个段寄存器的功能如下:
- CS (Code Segment):指向代码段的起始地址,用于存储程序代码的位置。CS 寄存器中的内容加上指令的偏移地址,形成实际的物理地址,从而取得代码段中的指令。
- DS (Data Segment):指向数据段的起始地址,用于存储程序的全局数据和静态数据。DS 寄存器中的内容加上数据的偏移地址,形成实际的物理地址,从而访问数据段中的数据。
- SS (Stack Segment):指向栈段的起始地址,用于存储程序的运行时栈。SS 寄存器中的内容加上栈中数据的偏移地址,形成实际的物理地址,从而操作栈中的数据。
- ES (Extra Segment):额外段寄存器,用于存储其他数据段的起始地址。在特定情况下,程序可以使用 ES 寄存器来访问额外的数据段。
参阅:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WAHAHA's blog!
评论