鱼C论坛

 找回密码
 立即注册
查看: 3259|回复: 1

[已解决]通用寄存器是8个还是4个?

[复制链接]
发表于 2020-7-22 14:14:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在学习小甲鱼关于通用寄存器课程时,看到小甲鱼说
AX、BX、CX、DX通常用来存放一般性数据被称为通用寄存器。
然后我在查资料的时候说通用寄存器有8个,分别是AX、BX、CX、DX、SI、DI、SP、BP
有大佬能给我解释一下吗?
最佳答案
2020-7-22 14:20:58
本帖最后由 sunrise085 于 2020-7-22 14:22 编辑

通用寄存器一般来说是指AX、BX、CX、DX,这四个是16位的寄存器,可以分成8个8位寄存器使用
SI、DI、SP、BP是特殊功能寄存器。
这些功能寄存器,在没有用到的情况下,也可以用作数据寄存器

下面给你介绍一下这些寄存器
1:数据寄存器,一般称之为通用寄存器组
8086 有8个8位数据寄存器,
这些8位寄存器可分别组成16位寄存器:
AH&AL=AX:累加寄存器,常用于运算;
BH&BL=BX:基址寄存器,常用于地址索引;
CH&CL=CX:计数寄存器,常用于计数;
DH&DL=DX:数据寄存器,常用于数据传递。
2:地址寄存器/段地址寄存器
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:
CS(Code Segment):代码段寄存器;
DS(Data Segment):数据段寄存器;
SS(Stack Segment):堆栈段寄存器;
ES(Extra Segment):附加段寄存器。
3:特殊功能的寄存器
IP(Instruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-22 14:20:58 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-7-22 14:22 编辑

通用寄存器一般来说是指AX、BX、CX、DX,这四个是16位的寄存器,可以分成8个8位寄存器使用
SI、DI、SP、BP是特殊功能寄存器。
这些功能寄存器,在没有用到的情况下,也可以用作数据寄存器

下面给你介绍一下这些寄存器
1:数据寄存器,一般称之为通用寄存器组
8086 有8个8位数据寄存器,
这些8位寄存器可分别组成16位寄存器:
AH&AL=AX:累加寄存器,常用于运算;
BH&BL=BX:基址寄存器,常用于地址索引;
CH&CL=CX:计数寄存器,常用于计数;
DH&DL=DX:数据寄存器,常用于数据传递。
2:地址寄存器/段地址寄存器
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:
CS(Code Segment):代码段寄存器;
DS(Data Segment):数据段寄存器;
SS(Stack Segment):堆栈段寄存器;
ES(Extra Segment):附加段寄存器。
3:特殊功能的寄存器
IP(Instruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 00:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表