计算机编程中的控制结构与基础指令集
1. 最小通用计算
在计算机编程的世界里,一个有趣的问题是:编写任何计算机程序究竟需要多强大的语言能力?换个说法,计算任何可计算结果所需的最小指令集是什么?
在计算机发展的早期,人们就展开了一场竞赛,试图找出这个最小值。理论上,所需的指令并不多。这个答案对我们很有帮助,它表明编写所有程序所需的指令可以少到什么程度,同时也凸显了控制的重要性。
通常,这些结果会用汇编语言来呈现。汇编语言是对计算机实际机器语言中 0 和 1 的一种类似英语的描述。也就是说,汇编语言是专门与它所运行的 CPU 相匹配的,用于为该 CPU 生成指令。基本指令包括操作内存(可以是实际的内存位置,也可以是处理器上的“累加器”寄存器)以及跳转到程序中的特定指令。(你可以把累加器想象成使用计算器时存储计算结果的地方。)在早期计算机中,由于硬件成本高昂,累加器很常见。
以下是一个最小指令集:
LOAD A ; 将 RAM 地址 A 处的内容加载到累加器
STORE A ; 将累加器的内容存储到 RAM 地址 A 处
CLR ; 清空累加器
INC ; 累加器的值加 1
BRZ X ; 如果累加器的值为零,则跳转到 RAM 地址 X 处的指令
所有的计算机程序都可以仅使用这五条指令来编写,这是一个非常重要的结果!虽然这样的程序可能几乎难以理解(即不可读),但理论上是可行的。
需要注意的是,“分支”指令是必要的指令之一。这种分支指令是最原始的控制类型,它与前面介绍的简单 if 语句密切相关。这个分支
超级会员免费看
订阅专栏 解锁全文
2897

被折叠的 条评论
为什么被折叠?



