文章目录

  • 第1章 “计算机的三大原则”。
  • 第二章《微机原理》
  • 第三章《汇编语言》
  • 第四章 程序流程
  • 第五章 算法
  • 第六章 《数据结构》
  • 第七章 面向对象

计算机是如何工作的?探索主内存,以DDR5为例
一直是关注软件方面比较多,抱着从硬件角度梳理一下思路的愿望翻阅此书,结果被前言的“今天,计算机正在以惊人的速度发展变化着,变得越来越复杂,而这期间产生了许多技术,但是人们并没有过多的时间去深入学习每一门技术,这就是问题的根源。稍微看了看技术手册,只学到了表层的使用方法,觉得自己“反正已经达到目的了”,这就是现状”直接拉进坑现在这么多《21天精通xx》,到头来还是给我国人对于效率追逐下的急功近利。
虽然此书写于2003年,作为日新月异的IT业,很多描述确实过时了,但是我赞同作者的一点就是:做学问有三点知识范围基础中的基础知识目标。层出叠现的新兴技术是学问的“应用层”,而经过这么多年还没有改变的才是“基础层”,这才是根基,而我觉得这本书讲的如是也,而这也是此书称为经典的缘由。
下面是个人笔记精华和章节核心要点的梳理:

第1章 “计算机的三大原则”。

原则1:计算机只能够做输入、运算、输出三种操作
原则2:程序是指令和数据的集合
原则3:计算机有自己的处理方法(对计算机来说什么都是数字)
硬件由大量IC(集成电路)组成;函数(方法、语句、子例程(无返回值)、子程序(有返回值));•Net(xmlsoap);面向组件编程的方法是通过将组件(程序的零件)组装到一起完成程序;面向对象编程的方法是先如实地对现实世界的业务建模,之后再把模型搬到程序中;

第二章《微机原理》

cpu、内存、i/o、电源、电路、时钟发生器/信号clk、
数据/地址总线、控制引脚、外部设备(DMA直接存储器访问控制)

第三章《汇编语言》

机器语言 汇编语言
cpu寄存器(a累加器f标志寄存器 bc de hl ix iy sp栈顶指针 pc程序指针 程序就是依靠不断变化的PC寄存器Program Counter的值运行起来的)
i/o寄存器 (「0」端口a数据寄存器、「1」端口b数据寄存器、「2」端口a控制寄存器、「3」端口b控制寄存器)207、255、0
在内存中,每个地址的功能都一样,既可用于存储指令又可用于存储数据。
而I/O则不同,地址编号不同(即寄存器的类型不同),功能也就不同
指令的分类,按功能这些指令可以分成运算、与内存的输入输出和与I/O的输入输出三类
机器语言=地址+汇编语言
根据CPU种类的不同,有的CPU使用大端序,有的CPU使用小端序(将数据由高位到低位顺序地存储到内存的存储顺序则叫作“大端序”(Big Endian))
JP LOOP 跳转指令

第四章 程序流程

三种:顺序、条件分支、循环
特殊:中断处理(特殊条件分支)、事务驱动
流程图、
在这些高级语言中,程序员使用“程序块”表示循环而不是跳转指令
根据比较操作的结果,跳转到之前处理过的步骤就是循环;跳转到之后尚未处理的步骤就是条件分支
所谓结构化程序设计就是“为了把程序编写得具备结构性,仅使用顺序执行、条件分支和循环表示程序的流程即可,而不再使用跳转指令”
作为计算机硬件上的行为,无论是条件分支还是循环都必须使用跳转指令实现
中断处理:以硬件形式连接到CPU上的I/O模块会发出中断请求信号,CPU根据该信号执行相应的中断处理程序。在诸位使用的个人计算机上,中断请求信号是由连接到周边设备上的I/O模块发出的
事务驱动:用事件驱动的方式编写那些工作在GUI(Graphical User Inteface,图形用户界面)环境中的应用程序,事件驱动是一种适用于GUI环境的编程风格,在这种环境中用户可以通过鼠标和键盘来操作应用程序
顺序:CPU中的PC寄存器的值会自动更新
条件分支和循环:在高级语言中用程序块表示,在机器语言和汇编语言中用跳转指令表示,在硬件上是通过把PC寄存器的值设为要跳转到的目的地的内存地址来实现

第五章 算法

辗转相除法(最大公约数)、哨兵(一种含有特殊值的数据,可用于标识数据的结尾等)、最大公倍数:两数乘积除以最大公倍数
典型算法
算法:步骤明确有限、机械非直觉、终止结果明确
编程优化、计算机处理速度、数字规律、先在纸上写算法

第六章 《数据结构》

内存、变量、数组(ds基础)、典型ds:栈、队列、结构体、链表、二叉树
变量:是数据的容器,实质是按照变量所存储数据的大小被分配到的一块内存空间。
数组:可以高效地处理大量的数据。数组的实质是连续分配的一块特定大小的内存空间。
在内存中存储数据的空间是连续分布的
数组是数据结构的基础,只要使用数组就能通过程序实现各种各样的算法以处理大量的数据。通常把像变量i这样的用于记录循环次数的变量称为循环计数器(Loop Counter)。数组之所以方便,就是因为可以把循环计数器的值与数组的索引对应起来使用。
二叉树多用于实现那些用于搜索数据的算法,比如“二分查找法”。比起只使用链表,使用二叉树能够更快地找到数据

第七章 面向对象

c++、java、c#(被命名为C++,是因为C++在C语言的基础上增加了面向对象的机制这一点。另外,将C++进一步改良的编程语言就是Java和C#语言)
面向对象编程通过把组件拼装到一起构建程序:可以说类就是程序的组件(Component)。面向对象编程的关键在于能否灵活地运用类
能够提升程序的开发效率和可维护性

计算机是怎么跑起来的相关推荐

  1. 计算机是怎样跑起来的

    一直对「程序如何在计算机中跑起来的」很感兴趣,也看过一些相关的书籍和文章,前段时间在多看阅读上看到一本相关的书,用了几天时间看完后,觉得很不错,用简单易懂的语言,围绕计算机是怎样跑起来的,把相关的知识 ...

  2. 《计算机是怎样跑起来的》学习笔记

    <计算机是怎样跑起来的>学习笔记 前言 1 计算机的三大原则 2 试着制造一台计算机吧 3 体验一次手工编程 4 程序像河水一样流动着 5 与算法成为好朋友的七个要点 5.1 算法中解决问 ...

  3. 计算机是如何跑起来的--读书笔记

    计算机是怎样跑起来的 1.首先要划出一个"知识的范围",精通一门学问必知必会的知识都在这个范围之内.其次是掌握该范围内每个知识点中"基础中的基础知识".最后是能 ...

  4. 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏

    今天在看失泽久雄先生著写的<计算机是怎样跑起来的>时,其中有一段使用VBScript编写的石头剪刀布游戏.由于自己是个小白,从来没听说过这种不是特别热门的脚本语言,一看用windows系统 ...

  5. 计算机是怎样跑起来的笔记摘要

    文章摘抄于矢泽久雄的<计算机是怎样跑起来的>,用于个人学习,内容有不当或错误的地方请见谅.让我们一起学习,共同进步. 文章目录 第一章 计算机三大原则 1.1三个根本性基础 1.2计算机网 ...

  6. 计算机是怎样跑起来的(读书笔记)

    计算机是怎样跑起来的 计算机的三大原则 计算机的三个根本性基础 输入.运算.输出是硬件的基础 软件是指令和数据的集合 计算机的处理方式和人们的思维习惯不同,对计算机来说什么都是数字 只要理解了三大原则 ...

  7. 读书笔记 -- 《计算机是怎样跑起来的》

    推荐语 这本书用通俗的语言讲解计算机相关组成,内容比较浅显易懂,适合初级程序员学习,中级程序员查漏补缺,不适合高级程序员. 给个四星级推荐(满分五星). 关注公众号<嵌入式小散修>,回复 ...

  8. rw_《计算机是怎样跑起来的》4-11 章

    2016.07.15 - 08.19 <计算机是怎样跑起来的>4-11 章. - 矢泽久雄 / 著 - 胡屹 / 译 个人学习笔记. [知识的范围(编程)] 4 程序像河水一样流淌着 问题 ...

  9. 计算机是怎样跑起来在线看,计算机是怎样跑起来的

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  10. 计算机音乐奔跑,跑起来!100首最适合跑步的音乐

    原标题:跑起来!100首最适合跑步的音乐 喜爱跑步.健身的人,都喜欢一边听音乐一边运动,而且会比没有音乐时燃烧脂肪速度要快,提高新陈代谢的能力!小乐君今天给大家盘点100首全球最受欢迎的跑步音乐,让大 ...

最新文章

  1. anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版
  2. 病症:arm启动后应用程序界面显示…
  3. macbook不能进系统 备份数据_外卖骑手,困在系统里;绩效考核与奖惩激励,不能困在数据里...
  4. 22-爬虫之scrapy框架分布式09
  5. WPF 类型“System.ComponentModel.ISupportInitialize”在未被引用的程序集中定义。
  6. 华为服务器如何用pe重装系统,教你华为u盘重装win10系统详细图文
  7. java流换行符方法_java换行符的使用方法
  8. 持续集成和持续部署CI/CD简介
  9. iOS 开发应用内跳转到App Store
  10. signature=3d7534face990de7e25e7438440abe49,Designing the User Interface 5e
  11. 能力素质有所欠缺_学有所思,思有所悟,悟有所行
  12. docker tomcat 的起动与访问
  13. 你不得不知道的上架app
  14. Python:for循环语句
  15. 柏林纪行(上):整体感受
  16. 免费复制百度文库字文本的方法, read模式
  17. 【笔记】boolean和Boolean的区别
  18. matlab 工具箱 GATBX 的安装,安装Sheffield Matlab遗传算法工具箱的建议
  19. mysql建库建表全过程20201215
  20. MySQL每天定时备份

热门文章

  1. Html如何引用公用的JS和CSS
  2. css实现文字的按单词换行
  3. 蓝桥杯java-排序(填空题2020省赛)
  4. linx 安装python
  5. 斗地主比大小 java_java实现简单斗地主(看牌排序)
  6. 2018上海国际专业灯光音响展盛大开幕
  7. 算法——树(10%)
  8. 《坚持,一种可以养成的习惯》读书笔记
  9. 百度搜索排名的提升,就靠这10个优化技巧!
  10. 若依权限系统分析(前后端分离版)