03 | 汇编:编程语言的诞生
该思维导图由 AI 生成,仅供参考
编程的史前时代
- 深入了解
- 翻译
- 解释
- 总结
汇编语言的诞生标志着编程成为了一个纯软件行为,程序员这一分工也由此诞生。在汇编语言出现之前,人们只能通过理解CPU指令的二进制表示,将程序以二进制数据方式刻录到存储上,这导致编程效率极低。汇编语言的出现让编程成为一个纯软件行为,人们可以反复修改程序,然后通过汇编编译器将其翻译成机器语言,并写入到外置的存储设备。汇编语言通过使用文本符号表达机器指令、内存地址、函数地址和跳转目标地址,解放了人们从物理硬件地址中,以便专注于程序逻辑的表达。汇编语言的出现为计算机的存储能力打开了大门,使得软件程序不断被传承、演进发扬光大。在没有操作系统之前,最早期的计算机可能包含了外置存储设备的驱动程序、基础外部设备的驱动程序、汇编语言的编辑器、编译器以及把程序的源代码写入磁盘、从磁盘读入的能力。这一步非常重要,计算机的存储能力的重要性如同人类发明了纸。纸让人类存储了知识,一代代传递下去并不断演进,不断发扬光大。而同样有了存储能力的计算机,我们的软件程序就会不断被传承,不断演进发扬光大,并最终演进出今天越来越多姿多彩的信息科技的世界。 本文介绍了汇编语言的重要性和影响,以及它对计算机存储能力的贡献。汇编语言的出现标志着编程成为了一个纯软件行为,极大地提高了编程效率,使得软件程序得以不断传承、演进发扬光大。文章还提到了在没有操作系统之前,计算机存储能力的重要性,类比于人类发明纸的重要性。这篇文章深入浅出地阐述了汇编语言的重要性,对读者有很好的启发和思考意义。
《许式伟的架构课》,新⼈⾸单¥68
全部留言(99)
- 最新
- 精选
- LiuMei存储让数据跨越时间,(今天存储明天读取)传输让数据跨越空间,计算让数据改变形式。时空一体,那么存储和传输可能也是统一的
作者回复: 👍
2019-05-06275 - 晓凉系统要与外部世界交互,就应该有输入和输出的能力(黑洞是否只有输入没有输出);作为人造系统,主要的交互对象是人,所以针对人类的输入输出能力就更重要,显示器和键盘就是这个角色;存储和计算能力是系统智能的核心,决定了系统如何用输入输出与外部世界交互;系统需要有演化能力,初期只能人类帮助演化(编程语言、编辑器、编译器),足够智能后才能自我演化。
作者回复: 总结很赞
2019-04-2467 - 叶建盟(James)-西安交大我要做一个最小机器人系统,需要考虑需求的变化点和稳定点。 该怎么考虑呢?
作者回复: 挺典型的问题。这个问法是一种典型的需求陈述误区。描述需求需要有几个典型的要素:1、用户,面向什么人群;2、他们有什么要解决的问题;3、我解决这个问题的核心系统。只有满足这几个要素的需求才能进一步讨论变化点和稳定点。最小机器人可能符合上面的3,但是用户人群和要解决的问题没有描述,也就无法进一步去思考到底哪些因素是稳定的,哪些是易变的。
2019-04-25260 - 宁静致远许老师,自己现在已经工作快三年了,想往架构师这个方向走,但现在自己有些迷茫,接触到的技术也算挺多了,但不知道该如何入手架构师,之前您也提到过先广度然后深度,但我想问达到什么算广度够了,怎么进行深度学习
作者回复: 架构师核心是把知识串起来,构建一个完整的认知,不留疑惑。大部分知识是不需要深入细节的,只在你需要的时候深入,但深入的时候要很深
2019-04-25332 - 拒绝大佬,以前并没有架构方面的经验,以至于看您的文章,没有感觉了,就光看了一遍,脑子里没有引发共鸣,作为业界大佬的您,有什么好的指导与建议吗?
作者回复: 根据文章的脉络,看看能不能串起来,加深了对这个信息世界如何构建的理解,如果没有,欢迎把问题抛出来讨论
2019-04-237 - 辉汇编语言是机器思维与人思维桥梁。 存储让复杂任务成了可能,让机器经验像知识一样传承下去。
作者回复: 挺好的总结
2019-04-294 - 若飞对 CPU 指令来说,函数只有地址没有名字。请问老师,这句话怎么理解??
作者回复: cpu调用函数的指令是“call 函数地址”,而不是“call 函数名”。对cpu而言,函数没有函数名,这是高级语言为了逻辑表达方便而加的
2019-04-274 - Geek_88604f汇编语言如何提升编程效率:通过符合减轻了记忆的负担;通过符号解耦了逻辑程序与物理内存(系统自动分配内存,通过变量访问);通过文本表示一段指令的集合(函数),有了基本的结构化思想,可以复用;通过符号来初步表达控制流。 本质上来讲,键盘和显示器的驱动程序、外置存储驱动、汇编程序编辑器和编译器、执行保存在外存中的代码,都是程序或指令序列。因此稳定点是指令的执行能力。 变化点:键盘和显示器的驱动程序(可能还有语音、姿态等交互方式,需求可以收敛到对端口的访问)、外置存储驱动(软盘、光盘、U盘、磁盘,需求可以收敛到对端口的访问)、汇编程序编辑器和编译器(正常的功能演进,缺陷修复都会导致版本变化,厂商会以光盘或软盘的形式发布,因此需求需要收敛到文件系统)、执行保存在外存中的代码(代码也需要通过文件来管理)。
作者回复: 👍
2022-11-08归属地:新加坡1 - 木木感觉学习操作系统,编译原理等那些大头的东西,从需求的角度去学,会有更深的理解,也更容易理解。
作者回复: 是这样
2021-06-241 - 梦朝思夕java并不是纯面向对象编程语言,它有着基本类型不属于对象
作者回复: 您说的对
2019-05-141