听了大神的意见,去看计组和单片机,然后对于寄存器有点问题,求指导~

时间:2020-11-28 14:09:30
为了更好理解c,和计算机的工作原理以及硬件,去接触单片机,顺便看计算机组成原理。看到在mcs-51中SFR位于ram中,而计组中说寄存器位于cpu中。这怎么理解?  然后能不能详细说下,在mcs—51中寄存器只存在于ram中?别的地方有?  在计组原理中只位于cpu中? 别的地方可有?  求各位大神帮忙解释,谢谢!还有就是能不能给点学习的建议,比如从哪里着重入手和理解~~ 

16 个解决方案

#1


我又来问问题了,表示没有太多的学习资料真的很受伤,然后,百度什么的没有找到这个,求各位大神帮忙解释下。

#2


寄存器这个名词的范围比较宽泛,并没有绝对的一种定义,寄存器必须在哪里。

比较典型的:

1,一般处理器中的通用寄存器,在cpu内部的寄存器文件中,比如x86中的AX;
2,处理器内部一些专用寄存器,比如PC;
3,协处理器中的寄存器;
4,io空间或者存储空间映射的,处理器自定义的寄存器;
5,片内外设控制等寄存器;
6,外部总线连接的外部设备中的寄存器;

不同寄存器访问方式各不相同,功能千差万别,无法准确定义。

建议不要再钻牛角尖了。

#3


你受人蛊惑,搞计算机组成原理是理解不了C的,两者不是相同层次上的东西。学好计算机组成原理有助于理解C的实现,但不是C本身,C语言根本不知道有CPU、内存、外部存储器等等这些东西。

#4


51单片机的硬件结构和86(intel的体系架构)系列有比较大的差别,其内部ram集成在芯片内部,并将其中32字节用作寄存器(4个寄存器组),只有AB寄存器是独立的

从结构角度,z80的架构和intel芯片比较接近(不恰当的比较,后者的性能和功能比前者高出不知道多少倍)

#5


引用 3 楼 supermegaboy 的回复:
你受人蛊惑,搞计算机组成原理是理解不了C的,两者不是相同层次上的东西。学好计算机组成原理有助于理解C的实现,但不是C本身,C语言根本不知道有CPU、内存、外部存储器等等这些东西。

其实也想学习硬件方面的知识。。

#6


SFR: Special Function Register

CPU 中的 registers 一般指 work register, PC register 等与 获取,解码,执行 instruction 相关的register

#7


引用 4 楼 worldy 的回复:
51单片机的硬件结构和86(intel的体系架构)系列有比较大的差别,其内部ram集成在芯片内部,并将其中32字节用作寄存器(4个寄存器组),只有AB寄存器是独立的

从结构角度,z80的架构和intel芯片比较接近(不恰当的比较,后者的性能和功能比前者高出不知道多少倍)

AB属于SFR,也位于RAM中啊。。。。。

#8


引用 6 楼 AnYidan 的回复:
SFR: Special Function Register

CPU 中的 registers 一般指 work register, PC register 等与 获取,解码,执行 instruction 相关的register

能说明下,在51中寄存器的分布和微机中寄存器的分布么?

#9


51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

#10




引用 9 楼 worldy 的回复:
51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

#11


引用 10 楼 u010412073 的回复:
Quote: 引用 9 楼 worldy 的回复:

51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

好像淘宝上有开发用的芯片,开发版,还有资料送。试试看

#12


引用 11 楼 jerry_dqh 的回复:
Quote: 引用 10 楼 u010412073 的回复:



Quote: 引用 9 楼 worldy 的回复:

51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

好像淘宝上有开发用的芯片,开发版,还有资料送。试试看

买块版可以送一堆....

#13


恩,勤奋学习,先学习好一款芯片

#14


这是要走纯硬件开发的路线啊

#15


寄存器可以很复杂-----可以执行包括移位,各种位运算等等功能在内的计算,
也可以很简单----仅仅是一块存储器(ROM或者ROM)的一些单元

CPU的各种寄存器,一般都能够执行某些运算,一些芯片的寄存器,可能只是用来存储一些信息。
51的SFR,实际是一批不同功能的寄存器,地址在CPU内部的ram 位置的区域中。
A 累加器,B 辅助寄存器
R0~R8 *4 51 的通用寄存器组
另外还有一些专用寄存器,比如DPTR,PC,SP等等 

寄存器,是芯片上,执行某些功能的一些单元,它至少有存储功能。

51 的寄存器,地址是在CPU内部的ram 位置的区域中。

X86 寄存器的地址,是不暴露给软件使用的;
软件里只能使用相应的指令,寻址寄存器,而不是通过寄存器的地址,使用寄存器。

#16


(ROM或者RAM)

#1


我又来问问题了,表示没有太多的学习资料真的很受伤,然后,百度什么的没有找到这个,求各位大神帮忙解释下。

#2


寄存器这个名词的范围比较宽泛,并没有绝对的一种定义,寄存器必须在哪里。

比较典型的:

1,一般处理器中的通用寄存器,在cpu内部的寄存器文件中,比如x86中的AX;
2,处理器内部一些专用寄存器,比如PC;
3,协处理器中的寄存器;
4,io空间或者存储空间映射的,处理器自定义的寄存器;
5,片内外设控制等寄存器;
6,外部总线连接的外部设备中的寄存器;

不同寄存器访问方式各不相同,功能千差万别,无法准确定义。

建议不要再钻牛角尖了。

#3


你受人蛊惑,搞计算机组成原理是理解不了C的,两者不是相同层次上的东西。学好计算机组成原理有助于理解C的实现,但不是C本身,C语言根本不知道有CPU、内存、外部存储器等等这些东西。

#4


51单片机的硬件结构和86(intel的体系架构)系列有比较大的差别,其内部ram集成在芯片内部,并将其中32字节用作寄存器(4个寄存器组),只有AB寄存器是独立的

从结构角度,z80的架构和intel芯片比较接近(不恰当的比较,后者的性能和功能比前者高出不知道多少倍)

#5


引用 3 楼 supermegaboy 的回复:
你受人蛊惑,搞计算机组成原理是理解不了C的,两者不是相同层次上的东西。学好计算机组成原理有助于理解C的实现,但不是C本身,C语言根本不知道有CPU、内存、外部存储器等等这些东西。

其实也想学习硬件方面的知识。。

#6


SFR: Special Function Register

CPU 中的 registers 一般指 work register, PC register 等与 获取,解码,执行 instruction 相关的register

#7


引用 4 楼 worldy 的回复:
51单片机的硬件结构和86(intel的体系架构)系列有比较大的差别,其内部ram集成在芯片内部,并将其中32字节用作寄存器(4个寄存器组),只有AB寄存器是独立的

从结构角度,z80的架构和intel芯片比较接近(不恰当的比较,后者的性能和功能比前者高出不知道多少倍)

AB属于SFR,也位于RAM中啊。。。。。

#8


引用 6 楼 AnYidan 的回复:
SFR: Special Function Register

CPU 中的 registers 一般指 work register, PC register 等与 获取,解码,执行 instruction 相关的register

能说明下,在51中寄存器的分布和微机中寄存器的分布么?

#9


51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

#10




引用 9 楼 worldy 的回复:
51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

#11


引用 10 楼 u010412073 的回复:
Quote: 引用 9 楼 worldy 的回复:

51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

好像淘宝上有开发用的芯片,开发版,还有资料送。试试看

#12


引用 11 楼 jerry_dqh 的回复:
Quote: 引用 10 楼 u010412073 的回复:



Quote: 引用 9 楼 worldy 的回复:

51的AB寄存器确实是SFR,我记错了,不好意思,呵呵

现在微机的通用寄存器有
EAX EBX ECX EDX ESI EDI EBP ESP CS SS DS FS GS EIP EFLAGS 段描述符寄存器组、GDTR IDTR CR0 CR1....,太复杂了,你还是自己找一下资料,呵呵

嗯嗯,已经差不多清楚了,看了好多资料。

好像淘宝上有开发用的芯片,开发版,还有资料送。试试看

买块版可以送一堆....

#13


恩,勤奋学习,先学习好一款芯片

#14


这是要走纯硬件开发的路线啊

#15


寄存器可以很复杂-----可以执行包括移位,各种位运算等等功能在内的计算,
也可以很简单----仅仅是一块存储器(ROM或者ROM)的一些单元

CPU的各种寄存器,一般都能够执行某些运算,一些芯片的寄存器,可能只是用来存储一些信息。
51的SFR,实际是一批不同功能的寄存器,地址在CPU内部的ram 位置的区域中。
A 累加器,B 辅助寄存器
R0~R8 *4 51 的通用寄存器组
另外还有一些专用寄存器,比如DPTR,PC,SP等等 

寄存器,是芯片上,执行某些功能的一些单元,它至少有存储功能。

51 的寄存器,地址是在CPU内部的ram 位置的区域中。

X86 寄存器的地址,是不暴露给软件使用的;
软件里只能使用相应的指令,寻址寄存器,而不是通过寄存器的地址,使用寄存器。

#16


(ROM或者RAM)