13. 循环:重复执行
配对 LOOP 与 RETURN,正确处理零次重复。
打开本课 →
1. 预测与跟踪
运行试做程序前,预测输出,并跟踪最先执行的三条指令。按需要记录相关寄存器、标志或内存,再逐步执行进行比较。
LOAD 8
LOOP 4
PRINT
RETURN
HALT
加入输入队列: 无
初始化内存: 所有字节初始为零
2. 构建与检查
读取 0 到 5 的重复次数。恰好输出相应次数的 8,然后停止。
必需的指令类型: INPUT, LOOP, PRINT, RETURN
起始程序
INPUT
COPY R0 R1
LOAD 8
LOOP R1
#
RETURN
HALT
你的程序与笔记
3. 解释机器
LOOP 0 的循环体执行几次?
14. 编写计数器
输出 1 到 10,并推广到可变计数。
打开本课 →
1. 预测与跟踪
运行试做程序前,预测输出,并跟踪最先执行的三条指令。按需要记录相关寄存器、标志或内存,再逐步执行进行比较。
LOAD 5
again: PRINT
SUB 1
JUMP_IF_ZERO done
JUMP again
done: HALT
加入输入队列: 无
初始化内存: 所有字节初始为零
2. 构建与检查
读取 0 到 10 的 N,依次输出 1 到 N 的每个整数。N = 0 时不输出。
必需的指令类型: INPUT, LOOP, ADD, PRINT
起始程序
INPUT
COPY R0 R2
LOAD 1 R1
LOOP R2
#
RETURN
HALT
你的程序与笔记
3. 解释机器
计数器值与重复次数有何不同?
15. 从一加到 N
将累加总和与循环计数器分开保存。
打开本课 →
1. 预测与跟踪
运行试做程序前,预测输出,并跟踪最先执行的三条指令。按需要记录相关寄存器、标志或内存,再逐步执行进行比较。
LOAD 1 R1
LOAD 0 R2
LOOP 4
LOAD R2
ADD R1
COPY R0 R2
LOAD R1
ADD 1
COPY R0 R1
RETURN
LOAD R2
PRINT
HALT
加入输入队列: 无
初始化内存: 所有字节初始为零
2. 构建与检查
读取 0 到 10 的 N。使用循环输出 1 + 2 + … + N。N = 0 时输出 0。
必需的指令类型: INPUT, LOOP, ADD
起始程序
INPUT
COPY R0 R3
LOAD 1 R1
LOAD 0 R2
LOOP R3
#
RETURN
LOAD R2
PRINT
HALT
你的程序与笔记
3. 解释机器
k 轮后,总和表示什么?