冯诺依曼和数据存储位置

本文探讨了冯诺依曼体系结构在现代计算机中的应用,详细介绍了计算机的五大部分及其作用,特别是存储程序的概念。内容还涵盖了数据存储的位置,包括寄存器和内存的使用,以及在C/C++编程中理解内存管理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、冯诺依曼体系结构

现代计算机多采用冯诺依曼体系结构,将计算机在逻辑上划分为五部分:
冯诺依曼体系结构
在控制器的控制下完成计算机的整体运作,冯诺依曼体系结构的一大特点是存储程序,强调程序指令和数据以无差别的二进制形式存储在存储器中,这就保证了我们可以将自己编写的程序写入计算机并执行。运算器实现对数据的处理,包括数据的算数了逻辑运算但本质上都是通过二进制位的运算来实现。控制器负责取指令、解析指令、执行指令。通常在控制器、运算器和存储器的配合下就能完成按照程序指令逐步完成对数据的操作。
现代计算机将控制器和运算器构成一个模块,就是通常所说的CPU。在一个计算机中,CPU和存储器是最为重要的,数据和程序的存储、程序的执行、数据的处理都能通过这两部分实现。
在CPU中为了实现控制器和运算器的功能,设计了多个寄存器。寄存器是硬件结构,通常用于暂时存储数据。
这样,在计算机中我们用于存储数据的地方有两个:存储器和寄存器。

二、数据存储位置

首先是寄存器,例如32位通用寄存器EAX:
EAX
可以存放32位二进制。
寄存器通常是程序执行过程中临时保存运算的中间量,程序要运行总是要加载到内存中,所以相对于寄存器,我们在编程时更关注内存。
内存指内部存储器,而像磁盘、硬盘是外部存储器。但特别注意我们在代码中所使用的内存,并非指物理内存而是操作系统在物理内存中抽象出来的一块连续的逻辑内存空间。
计算机程序向内存写入或从内存中读取数据,但并非随意使用,内存的使用通常会按内存单元为单位进行操作。
一块逻辑上连续的内存由多个内存单元构成:
在这里插入图片描述
通常是按字节编址按字节寻址,即每8位二进制作为一个单元(字节)。我们所说的内存地址就是指某个内存单元的编号。
计算机一次操作的内存空间大小通常是字节的整数倍,也就是一次操作若干个内存单元。所以计算机中的数据单位有位(bit)、字节(byte)、字(word,2字节16位)、双字(Dword,2字32位也就是通用寄存器最长二进制位数)相应的内存地址是指第一个字节对应的内存单元地址。
C/C++中对内存的操作是非常重要的,无论是普通变量还是指针变量的使用都需要理解内存中数据的存储形式。因此,首先要建立这种以字节为单位的逻辑内存结构,要注意的是这只是在逻辑上对数据进行了划分,在真正的二进制串的存储中并不按8位为单元进行区分,而是连续的无差别二进制串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值