首页 > 其他分享 >计算机栈stack存在的意义

计算机栈stack存在的意义

时间:2023-01-31 15:41:29浏览次数:35  
标签:存储 计算机 意义 寄存器 偏移 程序设计 设计 数据结构 stack


计算机栈stack存在的意义_数据结构


栈是现代化计算机不可或缺的设计元素

当初代计算机已经实现了单次计算和累加计算并能够实现正确的存取结果

我们开始了对于数据结构的思考

而更高的自动化的实现却需要数据结构的有力支撑
因而计算机底层的设计人员考虑到到一些常用的数据结构的实现需要一些固定的内存单元去存储
这样就规定出了一块独立的内存空间用于存储重复计算或者临时数值保存用途的空间

对于栈的定义中文描述较为概念化,我用一句英文解释作为描述示例
Stack is some space for data structures and some data serial.
它的结构刚刚好可以存储一些结构化的连续数据,以便于读取和写入的时候可以进行连续的操作
这样就可以按照内存单元的基本单位进行偏移的递增和递减
而不用再去关心结构化数据和其他临时性数据还有一些程序代码所存储的空间上的冲突和地址顺序的寻址障碍
我们可以视作栈的设计就是为了连续取址而设定的

当然我们也可以不需要设计栈的概念而自己独立定义出一部分内存地址作为连续性数据的存放空间
但是这样会大大增加程序员对于程序设计的难度
毕竟每种cpu的内存的规划方式都是不同的
这样每次都要让程序设计人员自己探索可划分出的数据区域的大小和位置以及是否使用
所以在汇编指令中就预先定义了栈的概念
在cpu设计之初也就预先为栈的使用留下了预定义好的段地址寄存器和指针偏移寄存器
以便于程序设计人员在后续的设计过程中可以把抽象化的寄存器配置变成实例化的配置

栈的设计大大的增加了程序的可用性
也同时增加了程序承载的计算的复杂型
栈空间的良好利用会让结构化的数据在处理的时候能够得到相对有规律性的指针偏移
栈的设计最大的好处就是可以随时随地复用程序设计


标签:存储,计算机,意义,寄存器,偏移,程序设计,设计,数据结构,stack
From: https://blog.51cto.com/u_15946668/6029699

相关文章

  • 计算机锁原理
    随着多进程多线程的出现,对共享资源(设备,数据等)的竞争往往会导致资源的使用表现为随机无序例如:一个线程想在控制台输出"Iamfine",刚写到"Iam",就被另一线程抢占控制台输......
  • OpenStack 命令行创建 Unified limit
    CreateregisteredlimitusingcURL1.Gettokenreftohttps://docs.openstack.org/api-ref/identity/v3/index.html?expanded=create-registered-limits-detail,list-......
  • C++ STL stack
    #include<stack>头文件usingnamespacestd;作用这个很清楚了,FILO运用在:括号匹配、波兰式计算问题上(未完待续)创建一个参数,默认使用deque容器stack<typenameT,t......
  • 常见计算机行业的公司
    AMD:美国超威半导体公司:美国AMD半导体公司专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(CPU、GPU、主板芯片组、电视卡芯片等),以及提供闪存和低功率处理器......
  • 计算机网络查看路由表命令,如何查看、添加、修改、删除路由器内部的路由表项
    操作步骤:1、首先,我们看看如何在dos界面下获取帮助信息;可以通过命令:【help】回车;或者【关键字/?】这两种方式。2、如何查看电脑内部路由;可以通过命令:【routeprint......
  • 个人自学计算机学习大纲
    一、计算机四大核心基础计算机组成计算机网络操作系统数据结构二、研发需要c/java、ruby(个人学习)软件工程编译原理算法数据库三、落实技术栈Rubyon......
  • 计算机网络连环炮40问
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招......
  • python进程绑定CPU的意义
    1.绑定CPU后对计算密集型的任务可能会一定程度上提升运算性能:(小幅度的性能提升,甚至小幅度落后,总之就是差别不大)对比1代码A:importosfrommultiprocessingimportProcessfr......
  • 计算机网络基础
    1.什么是网络?网络就是使用连接设备将终端设备通过传输介质连接起来,进行数据的传输终端设备:个人电脑手机ipad等设备连接设备:路由器、交换机、网桥、中继器等设......
  • 【MIT CS6.828】Lab 1: Booting a PC - Part 4: The Stack
    Part4:TheStack1.栈的初始化练习9.确定内核初始化栈的位置,以及栈在内存中的确切位置。内核如何为其栈保留空间?栈指针初始化后指向这个保留区域的哪一“端”?内核......