2017-04-19 56 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