diff --git "a/week2/\345\210\206\346\236\220\346\234\272note.md" "b/week2/\345\210\206\346\236\220\346\234\272note.md" new file mode 100644 index 0000000..ed965d3 --- /dev/null +++ "b/week2/\345\210\206\346\236\220\346\234\272note.md" @@ -0,0 +1,28 @@ +### 概念 +- **可编程机械计算机**:具备存储器、运算器、控制系统、输入输出。 +- **哈佛结构**:指令存储与数据存储分离。 +- **图灵完备**:支持循环、条件分支,类似**汇编语言**。 + + +### 语法 +- **基本指令**: + - `N k n`:将值$n$ 存入变量 $v_k$。 + - `+-*÷`:设置为相应模式。 + - `L k`:加载变量 $v_k$ 的值到输入列。 + - `S k`:将输出列的值存储到变量 $v_k$。 + - `P k`:打印变量$v_k$的值。 + +- **控制指令**: + - `B n`:向后跳转 $n$ 张卡片。 + - `F n`:向前跳转 $n$ 张卡片。 + - `?B n`:如果 `runup` 杠杆被设置,则向后跳转 $n$ 张卡片。 + - `?F n`:如果 `runup` 杠杆被设置,则向前跳转 $n$ 张卡片。 + +- **运算规则**: + - **加法**:将两个数加载到输入列 $I_1$ 和 $I_2$,结果存储在输出列 $E$。 + - **乘法**:结果存储在 $E$(低位)和 $E'$(高位)两列中。 + - **除法**:被除数存储在$I_1$(低位)和$I'_1$(高位)两列中,商存储在 $E'$,余数存储在 $E$。 + +- **条件与循环**: + - 通过 `runup` 杠杆和条件跳转指令(`?B n`、`?F n`)实现条件分支。 + - 通过 `B n` 和 `F n` 实现循环操作。 \ No newline at end of file