首页 > 编程语言 >对程序员来说CPU是什么

对程序员来说CPU是什么

时间:2024-01-17 13:44:20浏览次数:34  
标签:编程语言 汇编语言 程序 程序员 机器语言 寄存器 来说 CPU

    CPU是英文Central Processing Unit(中央处理器)的缩写,相当于计算机的大脑,它的内部由数百万至数亿个晶体管构成,这些都是大家所熟知的。不过,对CPU的了解如果只限于此的话,对编程是没有任何帮助的。程序员还需要理解CPU是如何运行的,特别是要弄清楚负责保存指令和数据的寄存器的机制。了解了寄存器,也就自然而然地理解了程序的运行机制。可能有很多读者会认为CPU的运行机制比较难,其实它非常简单。
    CPU的四个构成部分中,程序员只需了解寄存器即可,其余三个都不用太过关注。那么,为什么必须要了解寄存器呢?这是因为程序是把寄存器作为对象来描述的。
    CPU的构成部分正如下图所示:

    首先我们来看一下代码清单1-1。这是用汇编语言(assembly)编写的程序的一部分。汇编语言采用助记符(memonic)来编写程序,每一个原本是电气信号的机器语言“指令都会有一个与其相应的助记符,助记符通常为指令功能的英语单词的简写。例如,mov和add分别是数据的存储(move)和相加(addition)的简写。汇编语言和机器语言基本上是一一对应的。这一点和C语言、Java语言等高级编程语言”有很大不同,这也是我们使用汇编语言来说明CPU运行的原因。通常我们将汇编语言编写的程序转化成机器语言的过程称为汇编;反之,机器语言程序转化成汇编语言程序的过程则称为反汇编。
     编程语言及汇编语言编写的程序示例:

①把汇编语言转化成机器语言的程序称为汇编器(assembler)。有时汇编语言也称为汇编。详情可参阅第10章。
②机器语言是指CPU能直接解释和执行的语言。
③高级编程语言是指能够使用类似于人类语言(主要是英语)的语法来记述
的编程语言的总称。BASIC、C、C++、Java、Pascal、FORTRAN、COBOL等语言都是高级编程语言。使用高级编程语言编写的程序,经过编译转换成机器语言后才能运行。与高级编程语言相对,机器语言和汇编语言称为低级编程语言。

     寄存器的种类及功能:


对程序员来说,CPU是什么呢?CPU是具有各种功能的寄存器的集合体。其中,程序计数器、累加寄存器、标志寄存器、指令寄存器和栈寄存器都只有一个,其他的寄存器一般有多个。程序计数器和标志寄存器比较特殊,这一点在后面的章节中会详细说明。另外,存储指令的指令寄存器等寄存器,由于不需要程序员做多关注,如图:

标签:编程语言,汇编语言,程序,程序员,机器语言,寄存器,来说,CPU
From: https://www.cnblogs.com/Li204217/p/17969834

相关文章

  • 成为一个合格程序员所必备的三种常见LeetCode排序算法
    排序算法是一种通过特定的算法因式将一组或多组数据按照既定模式进行重新排序的方法。通过排序,我们可以得到一个新的序列,该序列遵循一定的规则并展现出一定的规律。经过排序处理后的数据可以更方便地进行筛选和计算,从而大大提高了计算效率。因此,掌握排序算法是每个程序员的基本功......
  • 程序员的英语课-单词(二)
    Hello,大家好,我是李林。接着上一篇,继续来谈谈程序员学英语的技巧,今天主要聊聊如何记单词。常见学习方法推荐1.单词软件使用默默背单词、百词斩、不背单词、扇贝英语等常用软件,选择一本单词书,每天定时定量背诵单词,我在考研时就使用的这种方法,早上固定200词。这是绝大多数人使......
  • 程序员的英语课-口语(四)
    Hello,大家好,我是李林。接着上一篇工作中如何掌握语法,继续来谈谈程序员学英语的技巧,今天主要聊聊口语问题。方法推荐这个就比较直接,和官方文档无关了,只能靠练。这里推荐一些资料:B站:coachshane课程,主要讲解单词之间的各种连接规则,使口语更加流利,英语教学,但基础很差也能听懂......
  • 程序员的英语课-语法(三)
    Hello,大家好,我是李林。接着上一篇工作中如何背单词,继续来谈谈程序员学英语的技巧,今天主要聊聊阅读官方英文文档所需要的基础语法知识。知乎上之前经常有这种问题,学英语到底需不需要学语法?为何外国人从来不学语法英语一样很好?似乎不会语法对学英语没什么影响,个人的看法是,外国人......
  • 35岁程序员被裁员,这半年他的故事
    今年7月份,我被公司裁员了,正好35岁。那天下班后,我正准备回家,一个从无来往的人事突然叫住了我。你知道的,人事找你多半没好事,我本能的有了不祥的预感。果然。来的太突然,我有点懵,这是我没想到,也无法接受的。我对自己当时的处境很满意,待遇不错,工作很闲,我有富足的心智带宽去读书和思......
  • “其实我是一个假程序员”
    本故事纯属虚构,如有雷同,纯属巧合。“我是一个程序员。我很喜欢这份工作。”“但其实,我是一个假程序员,其实我一点技术都不懂。”“我之所以能做这份工作,其实都是因为魔法。”“我被施加了一个魔法,让我变得懂技术,让我可以从事程序员这个职业。为此,我感到非常庆幸,也非常感恩。......
  • (vcpu-0)Exception 0xc0000005 (access violation) has occurred
    VM安装window10报错如何解决?(vcpu-0)Exception0xc0000005(accessviolation)hasoccurred.(vcpu-1)Exception0xc0000005(accessviolation)hasoccurred.除了常规的虚拟化的一些原因外,如果网上的方式你都试过了,不能解决的话;那么请升级你的VMware到16.2.*版本即可;......
  • 程序员创业该做什么产品?
    大家好,我是闲者,因为今年的目标是做个自己的产品,但是却不知道要做什么产品!很纠结。原文发表在我的博客:闲着博客-程序员创业该做什么产品?考虑到孙子兵法提过先胜而战”,既然不知道要做什么产品,那就看看做什么产品会失败!顺便吐槽下……关于程序员如何创业,做产品,网上搜一下就是一堆......
  • cpu过高什么原因?怎么排查?
    运行大型程序或应用程序:当计算机运行大型程序或应用程序时,CPU需要处理更多的数据和指令,因此CPU占用率会相应地增加。病毒或恶意软件:某些病毒或恶意软件会占用计算机的CPU资源来执行恶意任务,例如加密文件或执行网络攻击。软件或驱动程序错误:某些软件或驱动程序可能存在缺陷,导致C......
  • 程序员的英语课-前言(一)
    Hello,大家好,我是李林。今天给大家分享一下关于程序员学英语的技巧。背景最近发现搞开发是越来越卷卷卷了,AI越来越成熟,结合AI开发效率提升不少,效率高了,焦虑也高了,公司甚至想低代码结合AI直接零代码了,前几天又裁员一批,程序员太难了啊!发现单纯的学技术,心理感受都不同了,会反......