1. 概念初步

  • 程序:计算机的程序,和做饭、运动会的程序一样,指的是“做事的先后次序”;
  • 程序的组成:程序是指令(及物动词)和数据(宾语)的组合体;
    • C 语言 printf("hello\n");,这个简单的程序,printf是指定,hello是数据;
  • 机器语言:CPU 能够直接识别和执行的只有机器语言。
    • 使用C、C++、Java 等高级语言编写的程序最后都会转化为机器语言;
  • 正在运行的程序存储在什么位置?
    • 硬盘和磁盘等媒介上保存的程序被复制到内存(内存中是其副本)后才能运行;
  • 内存地址:标记和指定命令和数据的场所;
    • 地址由整数值表示;
  • CPU 的作用:
    • 根据程序的指令来进行数据运算,并控制整个计算机的设备;

2. CPU 是什么?

CPU 负责的就是解释和运行最终转换成机器语言的程序内容;

CPU 和 内存(memory)是由许多晶体管组成的电子部件,通常称为 IC(Integrated Circuit,集成电路);

CPU 的组成(各部分之间的电信号相互流通):

  • 寄存器;

    暂存指令,数据等处理对象;可将寄存器看做内存的一种;根据种类的不同,一个 CPU 内部会有 20~100 个寄存器;

  • 控制器;

    控制器负责把内存上的指令、数据等读入寄存器,并根据执行的结果来控制整个计算机。

  • 运算器:运算器负责运算从内存读入寄存器的数据。

  • 时钟:负责发出 CPU 开始计时的时钟信号;

    • Pentium 2GHz 就表示时钟信号的频率为 2GHz

3. C++程序的运行

生成一个 C++ 程序共有三个步骤:

  • ①预处理:代码在预处理器中运行,预处理器会处理代码中的元信息(meta-information)

    • 预处理指令以 # 字符开始,#include <iostream> 就是如此,本例中,include 指令是告诉预处理器,提取 iostream 头文件中的所有文件内容并提供给当前文件,
    • 当然头文件最常见的用途是声明在其他地方定义的函数;
  • ②编译:代码被编译为计算机可以识别的目标文件;
  • ③链接:独立的目标文件链接在一起形成一个应用程序;

程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行的更多相关文章

  1. 每个程序员都应该了解的 CPU 高速缓存

    每个程序员都应该了解的 CPU 高速缓存 英文原文:Memory part 2: CPU caches 来源:oschina [编者按:这是Ulrich Drepper写“程序员都该知道存储器”的第二 ...

  2. Go 程序是怎样跑起来的

    目录 引入 编译链接概述 编译过程 词法分析 语法分析 语义分析 中间代码生成 目标代码生成与优化 链接过程 Go 程序启动 GoRoot 和 GoPath Go 命令详解 go build go i ...

  3. 使用CPU探查器优化XAML程序

    如果您正在开发一个使用 XAML (是否是 c + +. C# 或 VB) 的 Windows 商店应用程序,还有一个好的机会来提高应用程序的性能.为了帮助完成这一点,我们所有在售的能够应用开发 Wi ...

  4. 微信小程序里实现跑马灯效果

    在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS wxml: <!-- 复制的跑马灯效果 --> <view class=&quo ...

  5. Error:“应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”

    我的电脑是 win7 64bit,用 VS2012 跑网上下载的程序,Realease | x64 模式下出现该错误. 问题出在 freeglut.dll 是 32bit 下的 dll,需要换成 64 ...

  6. 微信小程序全面实战,架构设计 && 躲坑攻略(小程序入门捷径教程)

    最近集中开发了两款微信小程序,分别是好奇心日历(每天一条辞典+一个小投票)和好奇心日报(轻量版),直接上图: Paste_Image.png 本文将结合具体的实战经验,主要介绍微信小程序的基础知识.开 ...

  7. oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序

    15511477451 原文 oracle 11g在安装过程中出现监听程序未启动或数据库服务未注册到该监听程序? 环境:win7 64位系统.oracle11g数据库 问题描述:在win7 64位系统 ...

  8. 【解决】应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。

    换了SSD硬盘,装了Windows 7 SP1 x64的系统.用了一段时间,突然一天有些软件打不开了.弹出下面的提示 应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序.第一时间 ...

  9. [MarsZ]程序猿谈大学之为什么不推荐就业时做程序猿

    这篇文章适合一切有志做一个程序猿的人,而不仅仅只是即将进入就业市场的大学生. “又到了毕业找工作的时候了,好多朋友打电话向我咨询要不要让孩子做程序员.作为一个业内资深人士,我觉得这不能一概而论!要辩证 ...

随机推荐

  1. C# Cache的类方法

    public class DataCache    {        /// <summary>        /// 获取当前应用程序指定CacheKey的Cache值        / ...

  2. OpenCV中InputArray和OutputArray使用方法

    原文链接:http://blog.csdn.net/yang_xian521/article/details/7755101 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArr ...

  3. installp 操作

    installp  软件安装和升级工具     1.查看某个已应用更可被提交或拒绝的文件集) installp -s   2. 应用更新TCP/IP软件( /usr/sys/inst.images ) ...

  4. angular-cli6使用ng serve --o 控制台报错Invalid Host Header

    angular-cli6使用ng serve --o 运行创建的项目,能正常访问,但是控制台一直在报错,点击报错能看到是因为webpack的webpack-dev-server里报的错, 看到网上介绍 ...

  5. iOS基本UI控件总结

    包括以下几类: //继承自NSObject:(暂列为控件) UIColor *_color;    //颜色 UIImage *_image;    //图像 //继承自UIView:只能相应手势UI ...

  6. CCF模拟题 最大的矩形

    最大的矩形 时间限制: 1.0s 内存限制: 256.0MB     问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方 ...

  7. 洛谷 P2080 增进感情

    P2080 增进感情 题目背景 小明和小红的感情,是慢慢发展起来的. 题目描述 他们对对方分别有一个好感值.定义两人的亲密程度为两人的好感值之和. 如果他们的亲密程度达到V,则他们将走到一起.他们以后 ...

  8. [Python] Create Unique Unordered Collections in Python with Set

    A set is an unordered collection with no duplicate items in Python. In this lesson, you will learn h ...

  9. MyReport.Form表单引擎

    MyReport.Form表单引擎.主要提供表单模板的设计以及表单模板的预览填报等功能集合. 支持文本框.选择框.数字框.日期框.图片框.组合框.弹出框等经常使用控件. watermark/2/tex ...

  10. java好文章链接

    ❀Java内存分配全面浅析:http://blog.csdn.net/yangyuankp/article/details/7651251 ❀自定义控件进阶篇1:http://mp.weixin.qq ...