有誰知道使用非還原除法劃分無符號二進制整數的步驟嗎?非還原除法算法
在網上很難找到任何好的來源。
即如果A = 101110
和B = 010111
,我們怎樣才能在非恢復除法A divided by B
?每個步驟中的寄存器是什麼樣的?
謝謝!
有誰知道使用非還原除法劃分無符號二進制整數的步驟嗎?非還原除法算法
在網上很難找到任何好的來源。
即如果A = 101110
和B = 010111
,我們怎樣才能在非恢復除法A divided by B
?每個步驟中的寄存器是什麼樣的?
謝謝!
(我的回答是有點晚答覆,但我希望這將是有益的未來遊客。)
算法非恢復除法在下面的圖像中給出:
在這個問題中,股息(A)= 101110,即46和除數(B)= 010111,即23.
初始化:
Set Register A = Dividend = 000000
Set Register Q = Dividend = 101110
(So AQ = 000000 101110 , Q0 = LSB of Q = 0)
Set M = Divisor = 010111, M' = 2's complement of M = 101001
Set Count = 6, since 6 digits operation is being done here.
此之後,我們開始算法,我在下面的表格顯示:
在表中,SHL(AQ) denotes shift left AQ by one position leaving Q0 blank
。
類似地,一個正方形符號在Q0位置分別表示,it is to be calculated later
希望所有的步驟是從表中清楚!!!
1)設置爲0(N位寄存器A的值)
2)設置寄存器M的值作爲除數(N位)
3)設置寄存器Q的值作爲股息(N位) 5)重複以下「n」次(這裏n是除數中的位數): 如果A的符號位等於0,則移位A和Q組合,留下1位, 從A中減去M.否則移位A和Q合併,留下1位並將M加上A 現在如果A的符號位等於0,則將Q [0]設置爲1 ,否則將Q [0]設置爲0
6)最後,如果A的符號位等於1,則將M添加到A.
7)將A指定爲餘數,將Q指定爲商。
查看[本網頁]的源代碼(http://www.ecs.umass.edu/ece/koren/arith/simulator/NRDiv/)。 –