ALU 设计器

AluDesigner

交互式 Hack ALU 模拟器。通过 6 个控制位实现 18 种运算,理解计算机如何用简单操作组合出复杂算术。对应 Nand2Tetris 第 2 章。

Hack ALU 挑战: 0 / 6

挑战 1: 恒等函数

让输出 = x(不改变 x)

输入 x

100000000000001010

输入 y

50000000000000101

ALU 控制位 (6 bits)

控制编码: 000010

计算过程

1x = 0000000000001010 (10)
2y = 0000000000000101 (5)
3f=1: out ← x+y = 0000000000001111
4最终输出: 0000000000001111 (15)

输出 out

150000000000001111
无符号: 15 | 有符号: 15

Hack ALU 设计原理

Hack ALU 用 6 个控制位实现 18 种运算。它不直接实现减法或比较,而是通过组合"置零、取反、与/加、取反输出"四个基本操作来实现所有功能。 例如 x-y 可以分解为:x + !y + 1(利用补码),而 ALU 通过 zy=0, ny=1, f=1 实现 x + !y,再利用溢出实现 +1。 这就是 Nand2Tetris 第 2 章的核心思想:用简单的操作组合出复杂的功能。

使用说明

  • •调整参数观察行为变化,实时反馈
  • •状态自动编码到 URL,可直接分享给他人
  • •支持键盘操作(Tab 切换、方向键调整)