求问IBM8086汇编语言中各通用寄存器的默认段

请问AX,BX,CX,DX,SP,BP,SI,DI的默认段分别是那个段寄存器呢?
我是问那些寄存器默认的段寄存器,而不是问它们的作用……

(1)通用寄存器有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个).
数据寄存器分为:
AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.
BH&BL=BX(base):基址寄存器,常用于地址索引;
CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
DH&DL=DX(data):数据寄存器,常用于数据传递。
他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。
另一组是指针寄存器和变址寄存器,包括:
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
BX,SI,DI这3个默认ds段寄存器

BP这1个默认ss段寄存器

AX,CX,DX,SP这4个不能用来寻址,所以那个段寄存器也不默认。本回答被提问者采纳
第2个回答  2009-06-07
在80X86汇编语言中,在用于寻址时,
BX,SI,DI的默认段都是基于数据段寻址;BP是基于堆栈段寻址;
AX,CX,DX,SP不能用于寻址。
第3个回答  2009-06-07
问人不如问己,可以写一个小程序自己来确认。
1. 将DS/ES/SS分别附上一个不同的值(但不要太大,否则会出现异常错误);
2. 先将这些段清空(可以使用DEBUG);各个寄存器清零;
3. 编写语句,通过各个寄存器给不同的段赋值,例如:
MOV BYTE PTR [DI], 11H;
MOV BYTE PTR [BX], 22H;
MOV BYTE PTR [BP], 33H
上述代码运行后再观察DS:0,ES:0,SS:0等位置的值,就明白了。
相似回答