0

私は現在宿題でちょっと立ち往生しており、親切に助けを求めています。私たちの仕事は x^4 / 4 を実装することです! アームの組み立て中。x^4 と 4! の正しい値の計算に成功しましたが、結果として明らかに浮動小数点を持つ除算の計算方法に行き詰まっています。私はすでにいくつかの助けを借りて単純な除算アルゴリズムを実装しましたが、私の理解では、これは整数除算のみですよね?

 CMP             R2, #0
 BEQ divide_end


 MOV      R0,#0     ;clear R0 to accumulate result
 MOV      R3,#1     ;set bit 0 in R3, which will be
                    ;shifted left then right
.start
 CMP      R2,R1
 MOVLS    R2,R2,LSL#1
 MOVLS    R3,R3,LSL#1
 BLS      start
 ;shift R2 left until it is about to
 ;be bigger than R1
 ;shift R3 left in parallel in order
 ;to flag how far we have to go

.next
 CMP       R1,R2      ;carry set if R1>R2
 SUBCS     R1,R1,R2   ;subtract R2 from R1 if this would
                      ;give a positive answer
 ADDCS     R0,R0,R3   ;and add the current bit in R3 to
                      ;the accumulating answer in R0

 MOVS      R3,R3,LSR#1     ;Shift R3 right into carry flag
 MOVCC     R2,R2,LSR#1     ;and if bit 0 of R3 was zero, also
                           ;shift R2 right
 BCC       next            ;If carry not clear, R3 has shifted
                           ;back to where it started, and we
                           ;can end

.divide_end

多分私はここで本当にばかげているだけですが、どんな助けでも大歓迎ですどうもありがとう

4

1 に答える 1

0

私はただばかだった。FPU 命令を使用することが許可されました。だから私はVDIVを使うことができました!

于 2013-02-04T14:12:02.790 に答える