相关疑难解决方法(0)

调整mips-gcc输出以与MARS一起使用

mips-gcc生成的MIPS汇编代码几乎(但不是完全)运行在Mars MIPS模拟器上。例如:

  • 编译器生成“ j $ 31”而不是“ jr $ 31”
  • 编译器将.align指令放置在Mars不允许的文本段中。

此外,生成的程序集还没有完全设置好,因此无法正确启动和停止(即,末尾没有sycall 10)。

这些问题似乎都可以通过简单的脚本轻松解决。但是,在我重新发明轮子之前,我想知道:(1)是否有任何gcc标志将使其中的一些问题消失?(2)是否有人知道可以修复mips-gcc输出以使其在火星上运行的现有程序?

(FWIW,我在gcc 3.3.6和4.6.1上看到相同的行为。)

mips spim mars-simulator

5
推荐指数
1
解决办法
347
查看次数

如何证明C语句-x,~x + 1和〜(x-1)产生相同的结果?

我想知道这个陈述背后的逻辑,证据.对于任何x,C表达式-x,~x + 1和〜(x-1)都产生相同的结果.我可以证明这对于具体的例子是正确的.我认为证明这一点的方法与两个补码的属性有关.有任何想法吗?

c proof twos-complement

4
推荐指数
2
解决办法
996
查看次数

标签 统计

c ×1

mars-simulator ×1

mips ×1

proof ×1

spim ×1

twos-complement ×1