深入理解计算机系统【三】
机器级表示。今天断断续续看了2小时,粗读了这章一半的内容。
计算机底层是01;但可读性不好,所以有了汇编语言。但汇编语言可读性也很差,所以又有了编译器,形成了各种贴近人类语言的Java、C之类的。
还一直以为自己干的是把人语言翻译成计算机呢,原来也是个中间层。
为什么要理解汇编?我想到了平常工作时的需求理解。现场的需求先和现场实施说,实施再找我们这边的设计,最后才到我们开发这里。这样子的需求往往就失真了许多。做出来的效果往往就不是很好,我一般都会采用开发完后多次发现场验证的方式来解决。
汇编在计算机中的角色可能就相当于现场实施吧,编译器翻译我们的代码,但不一定是效率最高的写法,所以得看懂编译后的代码才能针对性优化代码性能。然而日常工作并没用到,工作中的系统似乎最大的性能问题还是SQL执行过慢。
历史故事是我最喜欢看的,Intel是做处理器的,性能是平均18个月性能就会提升一倍,已经持续50多年,这是计算机革命基础。
指令集,似乎也是一种抽象,用的最多的指令抽象成指令集?内存里面则是虚拟地址,抽象成一个巨大的字节数组。
数据存放在寄存器或内存,操作数的可能有三种:立即数、寄存器、内存引用。嗯,,可能就是平常写代码时头疼的引用对象出现的原因吧。
By:努力向前的菜B
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义