asm:8086寄存器概述(intel - reg16bits)
一、 4个16位段地址寄存器
1、8086对存储器采用分段管理,4个段寄存器分别用于存放4个当前段的起始地址,又称为段基址寄存器。
CS(Code Segment) —— 代码段寄存器,CS用来存放“代码段”的地址,不能人工修改CS的值。
DS(Data Segment) —— 数据段寄存器,DS用来存放“数据段”的地址。
SS(Stack Segment) —— 栈段寄存器,SS用来存放“栈段”的地址。
ES(Extra Segment) —— 扩展段寄存器,ES用来存放“扩展段”的地址。
二、 16位指令指针寄存器IP
1、IP始终指向当前代码段CS所要取出的下一条指令的地址。每取出一个字节指令后,IP自动加1。可以用转移指令、调用指令及中断和复位等改变IP值。
2、IP和CS配合使用。
三、 4个16位数据寄存器
1、AX、BX、CX、DX,可以分成8个8位寄存器使用。 AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。
AX —— 累加寄存器,常用于运算。在乘除等指令中指定用来存放操作数。另外,所有的I/O指令都使用这一寄存器与外界设备传送数据。
BX —— 基址寄存器,常用于地址索引。
CX —— 计数寄存器,常用于计数。常用于保存计算值,如在移位指令。循环(loop)和串处理指令中用作隐含的计数器。
DX —— 数据寄存器,常用于数据传递。
2、基本说明:
2.1、bx 是数据基址寄存器,它可以和 ds 或 es 段寄存器显式的联合使用。如:ds:[bx]、 es:[bx]。
四、 4个16位地址指针寄存器
1、地址指针寄存器用于存放操作数的地址,编程时通过修改寄存器的内容达到修改地址的目的。
SP(Stack Pointer)堆栈指针寄存器 —— 堆栈指针寄存器,与SS配合使用。SS:SP永远指向栈顶位置;用来指示数据进栈和出栈的位置。
BP(Base Pointer) 基址指针寄存器 —— 基址指针寄存器,可用作SS的一个相对基址位置;SS:BP,通过BP偏移,可以获取“栈段”内的数据。
SI(Sourse Index) 源变址寄存器(这里不懂啊)—— 源变址寄存器,默认段是DS,SI用来确定“数据段DS”中某一存储单元的偏移地址。
SI(Sourse Index) 源变址寄存器(这里不懂啊)—— SI是源变址寄存器,用于存放源操作数的偏移地址,并且SI的内容有自动修改的功能,故称为源变址寄存器。
DI(Destination Index)目的变址寄存器(这里不懂啊) —— 目的变址寄存器,默认段是ES,SI用来确定“扩展段ES”中某一存储单元的偏移地址。
DI(Destination Index)目的变址寄存器(这里不懂啊) —— DI是目的寄存器,用于存放目的操作数的偏移地址,并且DI的内容有自动修改的功能,故称为目的变址寄存器。
2、 基本说明:
2.1、bp 是栈基址寄存器,缺省时使用 ss 段寄存器。 bp 也可以和 ds、es段寄存器显式的联合使用。如:ds:[bp]、 es:[bp]。
2.2、si 是源变址寄存器,默认段是 ds ; di 是目的变址寄存器,默认段是 es 。 si、di 均可以显式的和ds、es段寄存器联合使用。
2.3.1、代码示例:
mov al, [si]
mov [di], al
mov al, es:[si]
mov ds:[di], al
2.3、bx 和 si 或 di 可以联合使用,用于数据段中数组数据的处理; 或者 bp 和 si 或 di 可以联合使用,用于栈中数组数据的处理。如:[bx+si]、 [bx+di]。
2.4、DI和SI
2.4.1、这两个属于变址寄存器,可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用时,段地址在SS中,也可以单独使用,单独使用时,段地址默认在DS中,想要越段使用,加上段前缀即可。
2.4.2、在串指令操作中,si和ds联用,确定目标源地址,di和es(附加段寄存器)联用,确定传送的目的地址,就是分别寻址数据段和附加段。在串指令中,si和di具有自加和自减功能。
五、参考资料:
1、8086cpu中的寄存器(cs、ds、es、ss、ip、sp、bp、si、di): https://blog.csdn.net/weixin_42240667/article/details/104503184
2、求问IBM8086汇编语言中各通用寄存器的默认段: https://zhidao.baidu.com/question/100343826.html
3、bx,bp,si,di分别针对什么情况来使用: https://zhidao.baidu.com/question/1450486265262602420.html
4、汇编语言中,SI DI 的作用是什么?: https://zhidao.baidu.com/question/429892276.html
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章的版权归属于【原创作者】; 转载或引用时请【保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/17042721.html