Files
simulation_core/scripts/single-node/mips32_diagnostic_test.resc
2026-03-13 13:54:49 +08:00

88 lines
1.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MIPS32 诊断测试脚本
# 用于排查 ADD 指令不工作的问题
echo "========================================"
echo " MIPS32 ADD 指令诊断测试"
echo "========================================"
echo ""
# 创建机器并加载平台
echo "【步骤 1】创建机器和加载平台"
mach create "MIPS-Diagnostic"
machine LoadPlatformDescription @platforms/cpus/mips32_simple.repl
# 显示CPU类型
echo "【步骤 2】验证 CPU 类型"
sysbus.cpu
# 设置初始状态
echo ""
echo "【步骤 3】设置初始状态"
cpu PC 0x80000000
cpu A0 5
cpu A1 3
cpu V0 0
# 显示设置后的寄存器
echo ""
echo "【步骤 4】验证初始寄存器值"
echo " PC ="
cpu PC
echo " A0 ="
cpu A0
echo " A1 ="
cpu A1
echo " V0 ="
cpu V0
# 写入 ADD 指令add $v0, $a0, $a1
echo ""
echo "【步骤 5】写入 ADD 指令到内存"
echo " 地址: 0x80000000"
echo " 指令: 0x00851020 (add v0, a0, a1)"
sysbus WriteDoubleWord 0x80000000 0x00851020
# 验证指令已写入
echo ""
echo "【步骤 6】验证指令已写入内存"
echo " 读取 0x80000000 ="
sysbus ReadDoubleWord 0x80000000
# 执行一条指令
echo ""
echo "【步骤 7】执行一条指令"
cpu Step 1
# 显示执行后的状态
echo ""
echo "【步骤 8】检查执行后的寄存器"
echo " PC ="
cpu PC
echo " (预期: 0x80000004)"
echo ""
echo " A0 ="
cpu A0
echo " (预期: 0x5)"
echo ""
echo " A1 ="
cpu A1
echo " (预期: 0x3)"
echo ""
echo " V0 ="
cpu V0
echo " (预期: 0x8 = 5 + 3)"
echo ""
echo "========================================"
echo " 诊断结果分析"
echo "========================================"
echo "如果 V0 = 0x8 且 PC = 0x80000004:"
echo " ✓ ADD 指令工作正常"
echo ""
echo "如果 V0 = 0x0:"
echo " ✗ ADD 指令未执行或寄存器未更新"
echo ""
echo "如果 PC = 0x80000000:"
echo " ✗ CPU 没有前进(指令未执行)"
echo "========================================"