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

问题描述

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

sudo apt install unity-gtk3-module

错误信息:

C:\Users\smpan\OneDrive\Desktop\Computer\Computer Lab 2\Exercise4_3.asm 第 4 行中的错误:0x00400000 处的运行时异常:算术溢出

我对该程序的目标是尝试验证我的十六进制加法是否正确。我正在添加 .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 0x7FAA3278。程序应该存储结果 0x6024CD12注册0xDFCEFF8A。 第 14 行是包含 $t2

的行

解决方法

该加法的结果太大,无法放入一个有符号的 32 位值,而 CPU 会准确地告诉您这一点。

如果您期望得到一个无符号结果,或者对两个正数相加的负结果感到满意,则可以使用“添加无符号”指令。

看这里:

Difference between add and addu