Architecture 需要帮助理解基本的计算机架构吗
我们正在学习计算机如何在课堂上实际执行C程序。我不清楚以下几部分是如何组合在一起的:处理器(或CPU)、寄存器文件、运行时堆栈、程序计数器、虚拟地址、程序内存 让我解释一下我目前知道或认为我了解的情况:Architecture 需要帮助理解基本的计算机架构吗,architecture,Architecture,我们正在学习计算机如何在课堂上实际执行C程序。我不清楚以下几部分是如何组合在一起的:处理器(或CPU)、寄存器文件、运行时堆栈、程序计数器、虚拟地址、程序内存 让我解释一下我目前知道或认为我了解的情况: 处理器(或CPU)将把.c文件编译成计算机可以理解和执行的可执行机器级代码 存在一个堆栈,可以将指令推送到该堆栈上,以便计算机可以执行所述指令。问题:该堆栈寄存器相对于CPU位于何处?指令是从哪里获取的 此堆栈可以保存%eax、%ecx、%edx等寄存器,这些寄存器有时保存数值,有时保存指向“内
我现在的想法是如此混乱,我甚至不确定我问的问题是否正确,或者这些主题是否应该是相关的……一张分类图将非常有用,因为我只是看不出所有的东西应该如何组合在一起。我甚至不知道我说的是否有一点正确…基本上,你需要看看: 本网站上的图片提供了电脑主要组件的良好概述: 然而,我将解释一些这方面的内容,重点是您的问题(与CPU相关的东西在哪里): CPU
- CPU:一种通常被称为计算机“大脑”的微芯片——它负责实际的计算工作。程序是从第一条指令开始执行的指令的简单“列表”
- ALU:(算术逻辑单元)驻留在CPU内部并实际执行计算
- 寄存器:驻留在CPU内部的内存单元。存储计算中所需的值(或其结果)
- 程序计数器:CPU内的一个特殊寄存器,包含对将要执行的指令的引用
- RAM只是大量存储值的单元
- RAM比硬盘快得多。但是RAM比CPU内部的寄存器慢得多
- 当你启动一个程序时,它的指令会从你的硬盘加载到RAM中
- 程序通常需要处理大量数据(编程时使用的变量、对象等)——这些数据也存储在RAM中
- 堆栈是驻留在RAM中的数据结构(至少在我们的PC中)。堆栈保存函数的局部变量、函数参数和地址(如果从函数A调用函数B,则函数A的下一条指令的地址存储在堆栈上。因此,当程序完成函数B时,它可以右跳回它离开函数A的位置)(在Wikipedia中搜索“堆栈”。)
这只是一个概述,当你深入了解细节时,它会变得非常乏味-我希望它能有所帮助,但是:-)1是编译器,而不是处理器。不幸的是,这个问题对于堆栈溢出来说太广泛了。有许多关于计算机体系结构的好教程已经编写并可用。这里的任何答案都只能涵盖基本内容。哦,好的。我想在问更多问题之前,你最好先多读一点。有很多很多网站都涉及处理器、寄存器、内存、编译器和高级语言(如C)的基础知识。你们有什么可以推荐的资源吗?