【发布时间】:2017-04-19 07:43:23
【问题描述】:
我需要在 MIPS 汇编中实现一些代码,特别是使用定点算法。我错过了什么还是那里没有这样的东西?如果它不是 MIPS 的一部分,我如何使用整数实现定点,即 add/sub/mul/div?
【问题讨论】:
标签: assembly mips fixed-point integer-arithmetic
我需要在 MIPS 汇编中实现一些代码,特别是使用定点算法。我错过了什么还是那里没有这样的东西?如果它不是 MIPS 的一部分,我如何使用整数实现定点,即 add/sub/mul/div?
【问题讨论】:
标签: assembly mips fixed-point integer-arithmetic
要实现定点算术代码,您只需要处理器支持整数算术。当然有些处理器可能有一些优化定点代码的指令,但这不是强制性的。
对于任何定点代码,您首先需要确定表示数字的整数和小数部分所需的位数,然后您将使用执行加法、减法、乘法和除法的普通指令执行您的定点操作。
在这篇关于Q format 的维基百科文章中,您将找到 Q 表示法的概念以及如何基于此概念进行基本的不动点运算。本文中的代码示例是用 C 编写的,但您可以使用 MIPS basic arithmetic instructions 进行相同的操作。
【讨论】:
MIPS 是 32 位,您可以按照自己的意愿排列 with 和数字的小数部分 fixed<w,b> 。可以隐式调整二进制点。 add 和 sub 使用简单的数学运算,对于 mul/div 可以使用指令 sll 和 srl。
这是一个很好解释的链接。
http://www-inst.eecs.berkeley.edu/~cs61c/sp06/handout/fixedpt.html
【讨论】: