首页 > 编程语言 >第1章 对程序员来说cpu是什么

第1章 对程序员来说cpu是什么

时间:2024-01-23 23:56:46浏览次数:32  
标签:变址 程序 程序员 计数器 指令 寄存器 来说 cpu

通过本章我知道了什么是CPU,CPU是如何运行的以及程序的运行机制。
CPU内部由寄存器,控制器,运行器和时钟4个部分组成,程序启动后,根据时钟信息,控制器会从内存中读取指令和数据,运算器对数据进行运算,控制器根据运算结果来控制计算机。
CPU 是寄存器的集合体,编程是对大量的寄存器做操作,不同 CPU 其内部寄存器数量以及可存储的数值范围不同,但根据不同功能可以将寄存器分为八大块:累加寄存器,标志寄存器,程序计数器,基址寄存器,变址寄存器,通用寄存器,指令寄存器,栈寄存器。寄存器可以存放指令,也可以存放数据,其中数据分为用于运算的数值与表示内存地址的数值两种,同时每个寄存器的功能都不同,用于计算的数据存放在累加寄存器,内存地址放在基址寄存器与变址寄存器
程序启动流程:用户发出启动程序的指令——操作系统将保存在硬盘的程序复制到内存中——操作系统将程序计数器(cpu寄存器的一种)的值设置为程序运行开始位置内存地址——程序开始运行,cpu每执行一条指令程序计数器的值就会自动加1(当执行的指令占据多个内存地址时增加与指令长度相应的数值)——cpu的控制器参照程序计数器的值,从内存中读取命令并执行
函数在调用完后,处理流程需要回到函数的调用点(函数调用指令的下一地址),在计算机中,机器语言借用栈内存使用call指令与return指令进行函数的调用与返回
call指令:函数调用时使用该指令,该指令会在程序计数器值变为函数入口地址前,将调用函数后要执行的指令地址存储在栈中,return指令:函数执行完毕后,通过在函数的出口执行该指令,将保存在栈中的地址设定到程序计数器中实现回到调用地址
通过基址寄存器与变址寄存器,可以对内存上特定的区域进行划分,实现类似数组的操作例子:查看10000000----1000FFFF地址时,将10000000存入基址寄存器,在使变址寄存器的值在0000000-0000FFFF变化,cpu会将基址寄存器+变址寄存器的值作为实际的内存地址,因为就实现了类似数组的功能,基址寄存器相当于数组的起始地址,变值寄存器相当于数组的索引。

标签:变址,程序,程序员,计数器,指令,寄存器,来说,cpu
From: https://www.cnblogs.com/mzz18/p/17983684

相关文章

  • HA环境cpu不兼容迁移失败
    HA环境cpu不兼容迁移失败   由于两台服务器cpu不一样E7-8895和E7-4830出现不兼容解决方法:开启EVC模式,选择Intel主机VmwareEVC模式:这里有多种选择(如果不知道每一个都选择一次知道兼容性成功)  ......
  • 写给不耐烦程序员的 JavaScript 指南(二)
    第四部分:原始值原文:exploringjs.com/impatient-js/pt_primitive-values.html译者:飞龙协议:CCBY-NC-SA4.0下一步:14非值undefined和null十四、非值的undefined和null原文:exploringjs.com/impatient-js/ch_undefined-null.html译者:飞龙协议:CCBY-NC-SA4.014......
  • 黎活明给程序员的忠告
    黎活明,传智播客教育总裁,JavaEE高级架构师、咨询顾问、高级讲师,国内第一本ejb3.0书籍的作者,有着丰富的b/s系统开发与网站运营经验。现任传智播客教育科技有限公司JavaEE高级架构师与咨询顾问。其中一些我认为经典的地方,做了标红处理。展望未来,总结过去10年的程序员生涯,给程序员小......
  • 计算机编程中的黑魔法编程是什么?如何求解一个浮点数的平方根倒数?计算机中的浮点数是如
    原视频:没有显卡的年代,这群程序员用4行代码优化游戏最原始的求解目标:(求一个浮点数的开方的导数)浮点数在计算机中的表示形式:对数的运算法则:A为a在计算机中的表示形式(二进制表示形式):求浮点数的平方根倒数的应用场景:这个情况,直白的说就......
  • java内存泄露的排查思路?CPU飙高排查方案与思路?
    java内存泄露的排查思路?1.通过工具,VisualVM去分析dump文件,VisualVM可以加载离线的dump文件2.idea-->文件-->装入--->选择dump文件即可查看堆快照信息3.通过查看堆信息的情况,可以大概定位内存溢出是哪行代码出了问题4.找到对应的代码,通过阅读上下文的情况,进行修复即可CPU飙高......
  • 如何查看苹果手机的CPU型号?
    摘要本文将介绍如何在苹果手机上查看CPU型号。通过简单的设置操作,您可以轻松地获取您的iPhone的CPU型号信息。此外,我们还将介绍一些克魔助手可以提供的其他功能,如内存监控、GPU性能监控和网络抓包等,以帮助您优化和提升iOS应用的性能。 引言iPhone是苹果公司于2007年1月9日开......
  • #yyds干货盘点# LeetCode程序员面试金典:反转字符串中的单词 III
    题目给定一个字符串s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"代码实现classSolution{publicString......
  • #yyds干货盘点# LeetCode程序员面试金典:二进制手表
    题目二进制手表顶部有4个LED代表小时(0-11),底部的6个LED代表分钟(0-59)。每个LED代表一个0或1,最低位在右侧。例如,下面的二进制手表读取"4:51"。给你一个整数turnedOn,表示当前亮着的LED的数量,返回二进制手表可以表示的所有可能时间。你可以按任意顺序返回答案......
  • 对程序员来说cpu是什么
    CPU很内存是由许多晶体管组成的电子部件,通常称为IC(IntegratedCircuit,集成电路)。CPU的内部由寄存器、控制器、运算器、和时钟四个部分组成,各个部分之间由电流信号相互连通。寄存器可用来暂存指令数据等处理对象。控制器负责把内存上的指令、数据读入寄存器、并更具指令的执行情况......
  • 程序员数学之-IEEE754规范
    1定点数与浮点数在现实生活中,不仅要有整数,还需要小数,计算机怎么表示小数呢?有两种方式:定点数与浮点数定点数(FixedPointNumber):顾名思义,小数点位置固定,例如常见的Qm.n表示法,共需1(符号位)+m(整数位)+n(小数位)bit位来表示数据,如Q7,Q15,Q31等数据类型。其优点是:计算速度快;缺点......