本篇是对南大的计算机系统基础的第一篇的总结,也是对自己的学习成果的检验

之后会更新csapp的lab,只会提供做法思路不提供代码,若你在学习过程中有困惑可以私信我,欢迎一起交流,一起进步~

当计算机开始出现时,可谓是百家争鸣,每个人都有自己的想法,但是最终一直到今天为止还在起着巨大作用的是一位叫冯诺依曼的靓仔

他在上世纪五十年代提出的计算机由运算器,控制器,存储器,输入设备,输出设备组成,并且采用存储程序的工作方式到今天依然适用,你的电脑大概率就是采用的这种结构和工作方式

那肯定有同学不理解何为采用存储程序的工作方式,首先,你在一个.c文件下写下了经典的Hello,World代码,但是呢这个文件你可以打开而且你也明白这是hello world(即这个文件你是看得懂的,而不是一堆乱码),这叫做统一叫做文本文件,此时这文件是不能被执行的,因为你没有编译链接操作

当你按下run的时候,屏幕上输出了Hello World,那么这一过程发生了什么呢

建议先看完文字描述。。。。

你哒哒哒的在键盘敲下

gcc -o hello hello.c

然后你会得到一个名为hello的可执行文件,它就是hello.c 的编译链接后的文件,这个文件是保存在你的磁盘里的,不是主存哦!

gcc是GNU/Linux下的一个编译软件,-o代表级别,hello代表你对编译链接后的可执行文件命名(你也可以改为test,uiahfgofghw),hello.c就是你要编译的文件

PS:有人分不清主存和磁盘,比如你买电脑写着 16G+512G,代表你的主存16G,磁盘512G,磁盘读写速度很慢的,所以不能直接和磁盘进行IO,而应该把磁盘里的文件拷贝到主存里,和主存进行IO

那么当你敲下

./hello

你屏幕上会输出Hello World(记得输入enter键代表结束)

这一过程如何发生的呢?(建议结合图片观看)

当你敲下./hello,键盘(输入设备)会把输入的内容放到主存,然后在显示屏上显示,然后把可执行文件从磁盘中拷贝到主存中,因为可执行文件里都是01序列,机器可以直接识别执行,那么CPU就会在主存存放可执行文件的地方开始读取指令并执行,最后中得到Hello World

好了,Hello World程序告一段落,我们来看看指令的执行,这会更加的底层

指令会放在存储器里,然后由CPU进行读取执行操作

我们以一个小栗子来说明

我们有这么一个东西,主存里放的都是指令(01序列)

指令格式长这样

指令是定长的,8位

现在我们看第一条指令,此时PC值为0,PC存放的是将要执行的指令的地址

地址为0的地方放了 1110 0110 1110是op,代表M型即对主存操作,1110代表load

load含义是从主存中加载东西到寄存器里,这里默认寄存器是R0

但肯定没有这么简单,CPU里面的ALU等部件都还没说呢,先把指令放到IR(指令寄存器),然后进行指令译码,op显是1110,代表着load,然后1110 0110 前面是op,后面是地址码,把主存地址为:0110的内容先放到MDR(主存数据寄存器)中,然后再把PC+“1”,PC始终指向下一条执行指令所在的地址

最最最后,把MDR的内容放到了R0里,这里便是一条指令执行的详细过程

补充:指令执行的过程会产生一些控制信号,比如在执行取指令的时候,把主存地址为0的内容:1110 0110放到IR里,这其中就有一个Read的控制信号发送到主存,意为可读

上述肯定也有一些同学没有看懂,这边建议结合计算机系统基础教材来看,我会把书籍的电子版上传供大家免费下载

南大计算机系统基础CMU‘s CSAPP——第一章相关推荐

  1. ics计算机基础,南大计算机系统基础实验 ics2020,pa0

    了解到这个南大的这个实验不错,记录一下自己的进度,也给后来者一些参考. 1.相关资料 PA项目官方地址:https://nju-projectn.github.io/ics-pa-gitbook/ic ...

  2. 《基于Python的大数据分析基础及实战》第一章

    第一章

  3. 南大计算机系统基础实验 ics2020,pa0

    文章目录 **1.相关资料** **2.遇到的问题解决办法** (1)环境问题: (2)官方文档 **3.总结** 1.相关资料 PA项目官方地址:https://nju-projectn.githu ...

  4. 华南理工网络计算机基础知识,2019年华南理工大学网络教育计算机基础随堂练习第一章...

    2019年华南理工大学网络教育计算机基础随堂练习第一章 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 第一章 计算机基础知识·第 ...

  5. 【知识产权基础之专利权】第一章 专利权的客体

    目录 知识产权之专利权总共十章的word和pdf文档下载.zip 第一章 专利权的客体 第一节<专利法>保护的对象 一.作为技术方案的发明和实用新型 (一)发明 (二)实用新型 (三)实用 ...

  6. 大学“电路分析基础”试题合集第一章

    "电路分析基础"试题合集第一章         答案见文末 一.单项选择题(在每个小题的4个备选答案中,选出一个正确答案,并将正确答案的号码填入提干的括号内.每小题2分,共40分) ...

  7. SQL基础教程MICK版 第一章总结

    SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...

  8. 计算机基础知识上教案,第一章 计算机基础知识教案

    <计算机文化基础>教案 第一章计算机基础知识 一.课程的性质和任务 "计算机文化基础"是大学非计算机各专业学生必修的公共基础课.课程内容着重计算机的基础知识.基本概念和 ...

  9. 医用计算机基础 刘燕,1第一章 计算机基础知识1.ppt

    1第一章 计算机基础知识1.ppt CT断层扫描成像设备 眼底成像仪 获取病例数据 数据处理(三维重构) 利用计算机软硬件技术.网络通讯技术等现代化手段,对医院及其所属各部门对人流.物流.财流进行综合 ...

  10. 自考第一章计算机基础知识,2018年自考计算机网络技术基础复习资料:第一章...

    第一章 计算机基础知识 电子计算机的发展阶段分为: 1 第一代电子计算机.用电子管.以构成计算机的电子器件来1946年第一台电子计算机. 2 第二代电子计算机的特点是用晶体管. 3 第三代电子计算机的 ...

最新文章

  1. 大二暑假周进度报告(三)
  2. 初识Hibernate之关联映射(一)
  3. 【技术系列】浅谈GPU虚拟化技术(第一章)
  4. jvm性能调优实战 - 28年轻代存活的对象太多老年代放不下触发Full GC日志怎么看
  5. C++ 函数传参的三种方式
  6. ionic3学习之总结
  7. C#多线程与并行编程方面的电子书,中英文版本
  8. Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
  9. MySql中 DELIMITER
  10. 基于私有云的数据库高可用架构实践
  11. 纯新手搭建VS2017+QT5.9.9+QGIS过程中的问题
  12. atitit.hbnt orm db 新新增更新最佳实践o7
  13. 如何用Keil uVision3和ISIS 7 Professional中C51单片机做出 LED流水灯
  14. 关于FL Studio ASIO驱动不工作的一个解决方案
  15. 数据库中的主键、超键、候选键、外键
  16. 民生银行罗勇:金融科技下的直销银行如何创新发展
  17. 百词斩*****笔试题目
  18. linux 端如何修改移动硬盘的名称
  19. androidapp打开微信小程序
  20. 网络通信协议基础(ISIS)——架构

热门文章

  1. python操作autocad_利用python控制Autocad:pyautocad方式
  2. 6月8日苹果正式发布iOS 15,亮度多多
  3. matlab 此上下文中不允许出现函数定义
  4. idea java配色方案_IDEA 主题配色方案+字体
  5. 2022Java后端之美团笔试题
  6. Android 应用瘦身
  7. 仿链家地图找房_仿链家地图找房的简单实现
  8. 跟进分析不一样的MTI商城
  9. 李南江老师的视频资源
  10. 好用又好玩的微信小程序大全