2017-04-19 39 views
0

我需要在MIPS汇编中实现一些代码,特别是使用定点算法。我错过了什么,或者那里没有这样的事情?如果它不是MIPS的一部分,我如何使用整数实现定点,即add/sub/mul/div?MIPS中的定点算术

回答

2

要实现定点算法的代码,你只需要在处理器支持整数运算。当然一些处理器可能有一些优化定点代码的指令,但它不是强制性的。

对于任何定点代码,首先需要确定需要表示数字的整数和小数部分的位数,然后使用执行加法,减法,乘法和除法的普通指令执行您的定点操作。

在这篇关于Q format的维基百科文章中,您将找到Q符号的概念以及如何基于这个概念来完成基本的定点操作。本文中的代码示例用C语言编写,但您也可以使用MIPS basic arithmetic instructions

1

MIPS是32位,你可以安排with和数字的小数部分如何你想fixed<w,b>。可以隐式调整二进制点。 addsub使用简单的数学运算,因为mul/div可以使用指令sllsrl

这是一个很好的解释的链接。

http://www-inst.eecs.berkeley.edu/~cs61c/sp06/handout/fixedpt.html

+2

@ArekBulski with mul/div。 Mul创建更多的小数位(只是计算数学),所以你可能想在之后向右移动(同时从高位一半移位),div“用尽”小数位,所以你可能想要向左移位(也许进入一个新的高位一半)。但并非总是如此,随时随地可以随意更改格式,而在mul/div对中,格式更改通常会取消。 – harold