6、指令跳转:原来if...else就是goto上一讲,我们讲解了一行代码是怎么变成计算机指令的。你平时写的程序中,肯定不只有int a = 1这样最最简单的代码或者指令。我们总是要用到if…else这样的条件判断语句、while和for这样的循环语句,还有函数或者过程调用。 对应的,C...2025-11-01深入浅出计算机组成原理
7、函数调用:为什么会发生stack overflow?在开发软件的过程中我们经常会遇到错误,如果你用Google搜过出错信息,那你多少应该都访问过Stack Overflow这个网站。作为全球最大的程序员问答网站,Stack Overflow的名字来自于一个常见的报错,就是栈溢出(stack overf...2025-11-01深入浅出计算机组成原理
8、ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?过去的三节,你和我一起通过一些简单的代码,看到了我们写的程序,是怎么变成一条条计算机指令的;if…else这样的条件跳转是怎么样执行的;for/while这样的循环是怎么执行的;函数间的相互调用是怎么发生的。 我记得以前,我自己在了解完这些...2025-11-01深入浅出计算机组成原理
9、程序装载:“640K内存”真的不够用么?计算机这个行业的历史上有过很多成功的预言,最著名的自然是“摩尔定律”。当然免不了的也有很多“失败”的预测,其中一个最著名的就是,比尔·盖茨在上世纪80年代说的“640K ought to be enough for anyone”,也就是“640K内...2025-11-01深入浅出计算机组成原理
10、动态链接:程序内部的“共享单车”我们之前讲过,程序的链接,是把对应的不同文件内的代码段,合并到一起,成为最后的可执行文件。这个链接的方式,让我们在写代码的时候做到了“复用”。同样的功能代码只要写一次,然后提供给很多不同的程序进行链接就行了。 这么说来,“链接”其实有点儿像我们日常生...2025-11-01深入浅出计算机组成原理
11、二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?上算法和数据结构课的时候,老师们都会和你说,程序 = 算法 + 数据结构。如果对应到组成原理或者说硬件层面,算法就是我们前面讲的各种计算机指令,数据结构就对应我们接下来要讲的二进制数据。 众所周知,现代计算机都是用0和1组成的二进制,来表示...2025-11-01深入浅出计算机组成原理