CPU中共有四大组件:

寄存器 控制器 运算器 时钟

寄存器:存取数值(存东西的)

控制器:负责将内存(寄存器)中的数据进行读入和写出(控制寄存器 协调者)

运算器:里面是逻辑运算单元,协助寄存器和控制器来达到运算的效果

时钟:时钟频率单位GHz。3.2GHz相当于32亿次每秒 1GHz=10亿次每秒 每算一次运行非常快

程序员最主要的注意:寄存器。其他三个我们接触不到

寄存器是必须要深入理解的,因为他是我们存储数据的地方,也是我们接受数据的地方

语言:

高级语言-->低级语言:汇编语言-->机器语言:CPU能直接读懂的语言

int白皮书:里面都是指令两千多页 每一个指令都有对应的汇编语言

高级语言:人类能读懂,指令更少 利用编译器让高级语言变成计算机能够读懂的语言

利用Hex打开任何程序都是二进制的数据

程序包含了两个方面:1.算法 2.数据

程序和CPU的关系

CPU中的寄存器:

累加寄存器 标志寄存器 程序计数器 基址寄存器 变址寄存器 通用寄存器 指令寄存器  栈寄存器

累加寄存器:主要记录计算之后的数据

标志寄存器:和内存无关 和内存一样 读取拷贝 记录CPU里面的状态 运算之后CPU中的值是否溢出是否为0

程序计数器:存储了下一条指令在我们内存中的地址用二进制储存 存储的是指定的地址

基址寄存器:是用来存储开始的寄存器

变址寄存器:存取基址寄存器的相对位置

基址寄存器加变址寄存器能够得到某一个内存地址

通用寄存器:什么都能用

指定寄存器:CPU内部来使用的程序员是是不能使用的

栈寄存器:记录栈的起始位置

CPU和内存是分开的但是连线是在一起的

CPU通过他的总线告诉主板上的控制器来读取内存的值

寄存器的运算速度是我们内存运算速度的几十甚至上百倍(效率高)相当于CPU中的内存

CPU指令集中有跳转指令:1.运算2.计数器的置位3.得出置位里的值来修改程序计数器

程序与CPU的更多相关文章

  1. 程序员基层知识程序与cpu【更新1】

    我是一个小白,但我通过学习我慢慢的懂了一些事.分享出来有错误的望大咖指导. 我们要很明确的明白我们学的是编程而不是编程语言,编程语言只是工具用来方便我们做很多编程有关的事. 首先我在学习的过程中,第一 ...

  2. 使用Java VisualVM配置Java应用程序/分析CPU或内存的使用情况(转)

    以下内容翻译自(机翻):https://baptiste-wicht.com/posts/2010/07/profile-applications-java-visualvm.html 当您需要发现应 ...

  3. windows 排查javaWeb程序占用CPU过高问题(可追踪到问题代码所在行)

      1.情景展示 java虚拟机占用这么高的CPU,肯定不正常! 2.原因分析 第一个是tomcat,正在运行java项目: 第二个是eclipse,因为eclipse的运行依赖于java. 现在的问 ...

  4. JAVA应用程序占用CPU、内存过高分析过程

    1.查看cpu占有率 top -P 2.查看进程cpu占用率 ps -mp 3749 -o THREAD,tid,time|sort -rn|head -n 20 查看占用cpu高,且占用时间长的线程 ...

  5. windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

    我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...

  6. 如何提高多线程程序的cpu利用率

    正如大家所知道的那样,多核多cpu越来越普遍了,而且编写多线程程序也是件很简单的事情.在Windows下面,调用CreateThread函数一次就能够以你想要的函数地址新建一个子线程运行.然后,事情确 ...

  7. windows下揪出java程序占用cpu很高的线程

    背景 天天搞java,这些监控也都知道,用过,但也没往细里追究.因为也没碰见这种问题,这次还是静下来走一遍流程吧.与网上基本一致,不过我区分了下linux和windows的不一样.我感觉基本是程序写成 ...

  8. 小白的CTF学习之路1——程序与CPU

    刚刚注册了这个博客园,尽量保持每日一更(*/ω\*) 今天看了po学院的教学视频,了解了程序是什么,如何在CPU当中工作的等各种之前未曾想过的问题,特此记录,以防忘记 首先我们学习程序与CPU之前需要 ...

  9. 线上Java程序占用 CPU 过高,请说一下排查方法?

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

随机推荐

  1. ElasticSearch01--安装ElasticSearch服务(Linux)

    在linux系统上安装ElasticSearch服务 Linux系统要求: 1.centos6或centos7 2.jdk1.8及以上 1. 新建用户 新建一个用户 useradd yuank 修改用 ...

  2. Sequencial Minimal Optimization-a Fast Alg for Training SVM(译文)

  3. 为什么选择 Spring 作为 Java 框架

    1. 概述 在本文中,我们将讨论 Spring 作为最流行的 Java 框架之一的主要价值体现. 最重要的是,我们将尝试理解 Spring 成为我们选择框架的原因.Spring 的详细信息及其组成部分 ...

  4. 【区分】Typescript 中 interface 和 type

    在接触 ts 相关代码的过程中,总能看到 interface 和 type 的身影.只记得,曾经遇到 type 时不懂查阅过,记得他们很像,相同的功能用哪一个都可以实现.但最近总看到他们,就想深入的了 ...

  5. Visual Studio 调试系列1 Debug 与 Release 模式

    系列目录     [已更新最新开发文章,点击查看详细] Debug 模式 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. 在Debug模式下调试,可以在断点处看到 ...

  6. vue教程(三)-slot\keep-alive的使用

    一.slot其实就是填坑操作,父组件传递dom结构,是vue提供的一种内置组件(组件知识请查看上篇博客内容) 写法:<slot></slot> 例子: var child = ...

  7. Go组件学习——cron定时器

    1 前言 转到Go已经将近三个月,写业务代码又找到了属于Go的条件反射了. 后置声明和多参数返回这些Go风格代码写起来也不会那么蹩脚,甚至还有点小适应~ 反而,前几天在写Java的时候,发现Java怎 ...

  8. jsp的简介(1)

    一.什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%&g ...

  9. CSS和html如何结合起来——选择符及优先级

       1.选择符     兼容性 统配选择符 *         元素选择符 body   类选择符 .class   id选择符 #id         包含原则符 p strong     (所有 ...

  10. 关于java飞机躲炮弹的一些对象说明(带源码)

    1.飞机躲炮弹的各种实体类都需要一个画笔将他们画出来 (GameObject) import java.awt.*; public void drawSelf(Graphics g){ g.drawI ...