# MMIO 验证程序:写 LED 寄存器(0x0000_1000)-> 读回 -> 字节写 -> 再读回。 # 期望 LED 输出顺序(共 4 次,见同目录 mmio_test.expected): # ① 12345678 sw 0x12345678 # ② 12345678 lw 读回后再 print # ③ ffffffff sw 0xffffffff # ④ ffff7fff sb 0x7f 覆盖 led[15:8] 后读回 # 用法:python tools/rv_asm.py testbench/programs/mmio_test.asm <仿真工作目录>/risc-v-benchmark_ccab.hex lui t0, 0x1 # t0 = LED_ADDR = 0x00001000 lui t1, 0x12345 addi t1, t1, 0x678 # t1 = 0x12345678 sw t1, 0(t0) # ① MMIO 写 LED lw a0, 0(t0) # MMIO 读回 print # ② 应为 12345678 addi t2, zero, -1 # t2 = 0xffffffff sw t2, 0(t0) # ③ 应为 ffffffff addi t3, zero, 0x7f sb t3, 1(t0) # 字节写:led[15:8] = 0x7f lw a0, 0(t0) # 读回 print # ④ 应为 ffff7fff halt