我正在尝试编写一个简单的 MIPS 程序来添加十六进制数,但我一直收到错误

I am trying to write a simple MIPS program that will add hexadecimal numbers, but I keep getting an error

我正在编写一个简单的 MIPS 代码来添加两个十六进制值并将结果存储在寄存器中。我是 MIPS 的新手,所以我无法找到对我收到的错误消息的修复。任何帮助将不胜感激。

.text
    .globl main
main:   add $t2,$t0,$t1 # add contents of $t0 and $t1, and store result in $t2

    li $v0,10       # terminate execution
    syscall

错误信息:

Error in C:\Users\smpan\OneDrive\Desktop\Computer\Computer Lab 2\Exercise4_3.asm line 4: Runtime exception at 0x00400000: arithmetic overflow

我的程序目标是尝试验证我的十六进制加法是否正确。我正在添加 0x7FAA32780x6024CD12。程序应该存储结果 0xDFCEFF8A 是注册的 $t2。 第 14 行是包含 main:

的行

该加法的结果太大,无法放入带符号的 32 位值中,CPU 正告诉您这一点。

如果您希望得到一个无符号的结果,或者对两个正数相加的负结果感到满意,可以使用 'add unsigned' 指令。

看这里:

Difference between add and addu