我正在尝试编译以下汇编源代码,首先是代码:
#include <xc.h>
.global main
.text
.set noreorder
.ent main
main:
nop /* "no operation"... replace this. */
nop /* "no operation"... replace this. */
nop /* "no operation"... replace this. */
addiu $s1, $zero, 22
addiu $s2, $zero, 59
sub $t2, $s1, $s2
.end main
这是我的问题:
如你所见, $s1 = 22
和$2 = 59
。所以,22 - 59 = -37
但是当我看$t2
变量时它有4294967259
(十进制)。不明白为什么……应该是-37
……
问题 1。
如何解决上述问题?
问题2。
如何计算负数?
例如,-22 - 33 = - 55
和源代码:
add $s1, $zero, -22
add $s2, $zero, -10
sub $t2, $s1, $s2
但它也不起作用。$s1
有4294967274
十进制的..和$s2
相同的..
如果你能帮我解决这个问题,非常感谢。(我运行名为 MPLAB X IDE 的编译器)