哈佛架构与冯·诺伊曼架构计算机对比及自修改病毒分析
1. 哈佛架构与冯·诺伊曼架构的差异
在计算机领域,哈佛架构和冯·诺伊曼架构有相似之处,比如它们最终都能计算出 10 + 20 = 30 。但二者存在至少两个微妙且关键的差异。
1.1 超越直线式程序
哈佛架构设计下,指令需按顺序写在磁带上并依次执行,没有机制能“跳过”给定指令或根据计算结果“跳转”执行。这限制了可编写程序的类型。而冯·诺伊曼架构的升级允许程序改变程序计数器(PC)的值,而非仅由计算机改变。通过设置 PC 的值,可将执行导向任意指令,无需编写直线式程序。
例如,将示例程序中的 HALT 指令替换为改变 PC 值的指令:
A ← MEM4 → 220004
A ← A + MEM5 → 300005
MEM6 ← A → 210006
PC ← 0 → 400000
执行最后一条指令时,PC 值被设为 0,程序从头开始再次执行,形成无限循环。执行步骤如下:
1. 加载磁带至内存,设置 PC = 0 并启动计算机。
2. 从 PC = 0 处获取下一条指令 IR = 220004。
3. 将 IR = 220004 解码为 A ← MEM4,设置 PC 为 PC + 1 = 1。
4. 执行指令 A ← MEM4,即设置 A 为 MEM4 = 10。
5. 从 PC = 1 处获取下一条指令 IR = 300005。
6. 将 IR = 300005 解码为 A ← A + MEM5,设置 PC 为 P
超级会员免费看
订阅专栏 解锁全文
16

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



