摘要:
汇编语言是直接在硬件之上工作的编程语言。要先了解硬件系统的结构,才能有效地应用汇编语言对其编程。因此,在正式学习汇编语言之前,先对其前置知识进行回顾,以期后续学习能有较好的基础。 1 机器语言 机器语言,就是机器指令的集合。机器指令,就是机器能够理解并执行的命令。机器指令就是一列二进制数,计算机能够 阅读全文
摘要:
安装 Ubuntu 虚拟机后,更换软件源后,在执行 sudo apt-get update 时提示如下错误: W: GPG error: http://extras.ubuntu.com precise Release: The following signatures couldn't be ve 阅读全文
摘要:
1. 修改配置 进入控制面板,进入“程序”子菜单: 单击“启用或关闭 Windows 功能”: 勾选“适用于 Linux 的 Windows 子系统”: 2. 下载 Ubuntu 进入 Microsoft Store,搜索 Ubuntu,这里会有多个搜索结果,注意下载标注出的版本: 安装完成后,即可 阅读全文
摘要:
在 20 世纪 60-70 年代,写程序还要用到打孔卡(Punched Card)。Coder 需要先把程序想好,在纸带上打孔,然后把打孔卡交给计算机去处理。 FORTRAN 程序打孔卡 不难看出,这张类似答题卡的纸带上,通过打孔或不打孔来代表“0”和“1”。 时至今日,CPU 本身也没有理解高级编 阅读全文
摘要:
在上一篇博客中,提到了下面这个公式: 程序的 CPU 执行时间 = 指令数 × CPI × Clock Cycle Time 由此可知,想提升计算机性能,可以从指令数、CPI、CPU 主频三个方向入手。搞定指令数需要优化编译器,搞定 CPI 则需要优化 CPU 架构,譬如采用流水线技术。所以研发 C 阅读全文
摘要:
我们日常使用电脑和编程时,都经常提到“性能”这个词。“性能”到底指什么,能否进行准确定义,从而量化比较呢? 在计算机组成原理乃至体系结构中,“性能”都是最重要的一个主题。学习和研究计算机组成原理,就是在理解计算机是如何运作的,为什么要这样运作。很多时候,“为什么这样做”的原因就是为了提升“性能”。 阅读全文
摘要:
在前面两篇博客中,我们了解了现代计算机的基本硬件组成和冯·诺依曼体系结构。在学习零散知识点之前,有必要先建立一个整体的了解。 1. 计算机组成原理知识地图 计算机组成原理的英文名为 Computer Organization。顾名思义,Organization 就是“组织机构”的意思。计算机就是由不 阅读全文
摘要:
1. 计算机的基本硬件组成 1.1 CPU(Central Processing Unit) CPU 是计算机最重要的核心配件,负责进行运算。 1.2 内存(Memory) 程序都要加载到内存中才能运行。此外,程序读取的数据、计算得到的结果,也都要放到内存里。内存越大,能加载的东西越多。 1.3 主 阅读全文
摘要:
从事软件开发的同学,基本都听到过“内功”、“招式”这样的说法。应用层的语言、框架类似招式,可以短期见效。而底层知识则类似内功,是在提升根骨和资质。 深厚的内功基础,绝对有益于招式的学习。越早建立计算机底层原理的知识体系,后续就有越长的时间可以从这些知识中获利。从投资的角度来说,这就是“复利”带来的收 阅读全文
摘要:
前文提到,理解面向对象编程和面向对象编程语言,关键是要理解四大特性(封装、抽象、继承、多态)。仅仅知道定义是不够的,我们要深刻理解它们的意义和目的,以及能解决什么问题。 本文结合代码来解析四大特性。有一点要注意,不同编程语言对于四大特性的语法机制不尽相同,但我们的分析不与特定编程语言挂钩,不要局限在 阅读全文