教师参考答案

字节内存

收集四类证据:相关状态的预测;多种案例(包括边界)的行为;依据轨迹和状态的解释;对一次不一致作出有理由的修正。使用纸面或学校现有批准流程,将各项记录为初步、需支持或独立完成。挑战通过证明的是机器行为,不证明作者身份或完全掌握。接受等效正确程序;公开答案是示范,并非唯一答案。

公开教学材料。答案是示例;等效的正确程序也可能通过实际检查。

7. 内存:计算机的笔记本

覆盖 R0 后,实际取回已经保存的字节。

打开本课 →

1. 预测与跟踪

运行试做程序前,预测输出,并跟踪最先执行的三条指令。按需要记录相关寄存器、标志或内存,再逐步执行进行比较。

LOAD 42
STORE 0
LOAD 99
STORE 1
LOAD 0
LOAD [0]
PRINT
LOAD [1]
PRINT
HALT

加入输入队列: 无

初始化内存: 所有字节初始为零

试做预测答案

输出: 42, 99

指令执行前 PC执行后 PC执行前 R0执行后 R0相关状态输出
LOAD01042{"registers":[42,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}无
STORE124242{"registers":[42,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[0]}无
LOAD234299{"registers":[99,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}无

2. 构建与检查

读取一个字节值(0–255),保存到内存地址 10,清零 R0,再从内存取回并输出它。

必需的指令类型: INPUT, STORE, LOAD

挑战示例答案

INPUT
STORE 10
LOAD 0
LOAD [10]
PRINT
HALT

实际检查器测试数据

案例 1
输入
9
初始内存
所有字节初始为零
预期输出
9
预期最终内存
10: 9
必需的内存读取
10
案例 2
输入
42
初始内存
所有字节初始为零
预期输出
42
预期最终内存
10: 42
必需的内存读取
10
案例 3
输入
127
初始内存
所有字节初始为零
预期输出
127
预期最终内存
10: 127
必需的内存读取
10

3. 解释机器

哪段代码读取内存 10,哪段载入数字 10?

推理与教学说明

LOAD [10] 读取字节;LOAD 10 载入字面值。STORE 与随后取回可在 R0 被覆盖后保留字节。