86 lines
1.9 KiB
Plaintext
86 lines
1.9 KiB
Plaintext
:name: MIPS32 Instruction Verification
|
|
:description: 验证 MIPS32 指令翻译是否正常工作
|
|
|
|
$name?="MIPS32-InsnTest"
|
|
|
|
using sysbus
|
|
mach create $name
|
|
|
|
machine LoadPlatformDescription @platforms/cpus/mips32_simple.repl
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "MIPS32 指令验证测试"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 测试 1: ADD
|
|
echo "【测试 1】ADD 指令: add v0, a0, a1"
|
|
cpu PC 0x80000000
|
|
cpu A0 0x00000005
|
|
cpu A1 0x00000003
|
|
cpu V0 0x00000000
|
|
sysbus WriteDoubleWord 0x80000000 0x00851020
|
|
cpu Step 1
|
|
echo " 执行后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 8)"
|
|
echo ""
|
|
|
|
# 测试 2: ADDI
|
|
echo "【测试 2】ADDI 指令: addi v0, a0, 100"
|
|
cpu PC 0x80000000
|
|
cpu A0 0x00000050
|
|
cpu V0 0x00000000
|
|
sysbus WriteDoubleWord 0x80000000 0x20820064
|
|
cpu Step 1
|
|
echo " 执行后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 180)"
|
|
echo ""
|
|
|
|
# 测试 3: AND
|
|
echo "【测试 3】AND 指令: and v0, a0, a1"
|
|
cpu PC 0x80000000
|
|
cpu A0 0xFF00FF00
|
|
cpu A1 0xF0F0F0F0
|
|
cpu V0 0x00000000
|
|
sysbus WriteDoubleWord 0x80000000 0x00851024
|
|
cpu Step 1
|
|
echo " 执行后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 0xF000F000 = 4026593024)"
|
|
echo ""
|
|
|
|
# 测试 4: LUI
|
|
echo "【测试 4】LUI 指令: lui v0, 0x1234"
|
|
cpu PC 0x80000000
|
|
cpu V0 0x00000000
|
|
sysbus WriteDoubleWord 0x80000000 0x3C021234
|
|
cpu Step 1
|
|
echo " 执行后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 0x12340000 = 305397760)"
|
|
echo ""
|
|
|
|
# 测试 5: LUI + ORI
|
|
echo "【测试 5】LUI + ORI 组合: 加载 0x12345678"
|
|
cpu PC 0x80000000
|
|
cpu V0 0x00000000
|
|
sysbus WriteDoubleWord 0x80000000 0x3C021234
|
|
sysbus WriteDoubleWord 0x80000004 0x34425678
|
|
cpu Step 1
|
|
echo " LUI 后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 0x12340000)"
|
|
cpu Step 1
|
|
echo " ORI 后 V0 ="
|
|
cpu V0
|
|
echo " (预期: 0x12345678 = 305419896)"
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo "测试完成!"
|
|
echo "如果所有结果与预期一致,说明指令翻译正常工作"
|
|
echo "=========================================="
|