总述

    最近一位朋友问我,我开发的代码是怎么运行起来的,我就开始给他介绍代码的预编译、汇编、编译、链接然后到一般的文件属性,再到代码运行。但是大佬问了我一句,CPU到底是怎么执行到每一个逻辑的,就讲了哈CPU的架构。这是时候真的有些迷了,虽然有模电数电的底子,但是自己都说迷糊了,汇编怎么对应到机器码再到怎么执行每一个逻辑。

所以我想了想,我可以写一篇文章,从我嵌入式开发的工作中去描述一下CPU的代码执行的过程。虽然网上也有很多人讲这个过程,我也想用自己的视角去介绍一下。所以我就花了三天时间把《CODE》这本书啃完,然后准备写篇文章。不过今天由于时间问题,我就不写了,明天我写具体看书以及自己的经验去描述CPU的代码运行情况。

作者:良知犹存

转载授权以及围观:欢迎添加微信公众号:Conscience_Remains

下面是准备介绍的大纲:

  1. CPU的基本的硬件组成结构由简单到复杂

  2. CPU集成的架构演变以及分别对应的职能

  3. CPU代码语言的发展过程以及汇编到机器码的具体执行

!!!今天时间关系无法写出全文,先简单介绍一哈文章状态,以及推荐大家一个汇编执行小游戏。

这是这几天配合看的基本书,有兴趣的朋友可以找我分享给你哈。

 今天没有写具体细节,但是想先给大家推荐一个这几天玩的一个小游戏,程序员升职记,里面的运行逻辑其实很接近汇编指令在CPU的运行情况,还是很好玩的。配合上文章简直稳的一匹。

先来介绍一哈游戏:程序员升职记(Human Resource Machine)

游戏里面是模拟一个程序员从入职到工作四十五年的开发过程。每一个环节有不同的挑战,下面就是我差不多20关的时候,遇到的一个问题,我自己写时间复杂度和空间复杂度上都没有满足要求。

不过还好我有攻略,经过攻略的调整我的代码好多了,哈哈哈哈。最后面附上攻略来源。

攻略:https://cowlevel.net/article/2045657

对滴,游戏攻略奉上,每一关都有介绍,这位做攻略的大哥有心了。

最后就这样哈,大家要玩有些的朋友可以关注我后台回复我 程序员升职记 我把我的下载链接分享给你哈,大家一起玩起来,寓教于乐。

更多分享,扫码关注我

CPU中的程序是怎么运行起来的(预告篇)的更多相关文章

  1. CPU中的程序是怎么运行起来的

    总述 最近一位朋友问我,开发的代码是怎么在芯片运行起来的,我就开始给他介绍代码的预编译.汇编.编译.链接然后到一般的文件属性,再到代码运行.但是大佬问了我一句,CPU到底是怎么执行到每一个逻辑的,就讲 ...

  2. C#中防止程序多次运行

    C#中如何防止程序多次运行?只要在程序入口点函数Main()中的开始部分添加如注释部分的代码,就能快捷实现.   示例代码如下: using System; using System.Collecti ...

  3. linux nohup命令实现退出终端后程序继续后台运行

    Unix/Linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行:但如果要想在退出终端后,程序依然还在后台运行,则要用nohup与&组合来实现. nohup ...

  4. linux nohup命令使程序在后台运行的方法

    在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行. 比如要运行 ...

  5. 在linux下,怎么去查看一个运行中的程序, 到底是占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物 ...

  6. 在linux下,查看一个运行中的程序, 占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物 ...

  7. VS2010中设置程序以管理员身份运行

    VS2010中设置程序以管理员身份运行 直接项目右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译 即可 这样程序直接运行就拥有管理员 ...

  8. 在windows中:双击运行Python程序、后台运行Python程序

    在windows中:双击运行Python程序.后台运行Python程序 安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退.怎样避免闪退呢? 我们用python的日志输出程 ...

  9. linux下,一个运行中的程序,究竟占用了多少内存

    linux下,一个运行中的程序,究竟占用了多少内存 1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用 ...

随机推荐

  1. 腾讯IOT之树莓派物联网设备

    目录 腾讯IOT之树莓派物联网设备 硬件配置 软件配置 Tecent IOT 开发平台的使用 新建项目 新建产品 添加自定义功能 设备开发 微信小程序配置 面板配置 新建设备 使用设备 在线调试 设备 ...

  2. Github美化 添加徽章

    Github美化 添加徽章 0. 前言 1. 准备 2. 开始 a. 打开shields.io b.制作静态徽章 c.制作动态徽章 d. 结果 3.额外 0. 前言 之前看见很多大项目都有很多勋章,比 ...

  3. 关于.NET中的控制反转(三)- 依赖注入之 Autofac

    一.Autofac简介 Autofac和其他容器的不同之处是它和C#语言的结合非常紧密,在使用过程中对你的应用的侵入性几乎为零,更容易与第三方的组件集成.Autofac的主要特性如下: 组件侵入性为零 ...

  4. 快速了解JavaScript的基础知识

    注释 单行注释: // 单行注释 多行注释: /* 多行 注释 */ 历史上 JavaScript 可以兼容 HTML 注释,因此 <!-- 和 --> 也可以是单行注释. x = 1; ...

  5. epoll的陷阱实践

    在使用epoll的时候,我们上篇文章epoll的陷阱大体介绍了epoll中会有哪些问题.这篇文章我们就针对必须要了解,也是绕不过去的陷阱进行实验,看看现象是什么,并且如何编写才能达到我们想要的效果. ...

  6. xtrabackup_binlog_info

    文件保存了备份结束时刻binlog的名称和位置

  7. XSS - Pikachu

    概述: Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型 ...

  8. ctfshow—web—web7

    打开靶机 发现是SQL注入,盲注 过滤了空格符,可以用/**/绕过,抓包 直接上脚本 import requestss=requests.session()url='https://46a0f98e- ...

  9. 通过logmnr找到被修改前的存储过程

    1.找到存储过程被修改时的归档日志 SELECT NAME FROM V$ARCHIVED_LOG WHERE FIRST_TIME BETWEEN TO_DATE('20191118080000', ...

  10. nodejs中使用worker_threads来创建新的线程

    目录 简介 worker_threads isMainThread MessageChannel parentPort和MessagePort markAsUntransferable SHARE_E ...