アームアセンブリ言語でモジュラスを行う方法を知りたい
このページMOD operator in arm の Web サイトでコードを試しました。
MOV R1,#12 MOD 7 ; R1 = 5
MOV R2,#99 MOD 10 ; R2 = 9
しかしまとまりません。
私はkeilアセンブラを使用しています。
アームアセンブリ言語でモジュラスを行う方法を知りたい
このページMOD operator in arm の Web サイトでコードを試しました。
MOV R1,#12 MOD 7 ; R1 = 5
MOV R2,#99 MOD 10 ; R2 = 9
しかしまとまりません。
私はkeilアセンブラを使用しています。
assemble-time の代わりにランタイム moduloを探している場合は、次の2 つの命令を使用して div と mod を実行できます。
;Precondition: R0 % R1 is the required computation
;Postcondition: R0 has the result of R0 % R1
: R2 has R0 / R1
; Example comments for 10 % 7
UDIV R2, R0, R1 ; 1 <- 10 / 7 ; R2 <- R0 / R1
MLS R0, R1, R2, R0 ; 3 <- 10 - (7 * 1) ; R0 <- R0 - (R1 * R2 )
このユースケースのために正確に設計されたMLSのドキュメント。
Keil/armasm はそれを綴ります:MOD:
。マニュアルを参照してください http://www.keil.com/support/man/docs/armasm/armasm_Cacechjd.htm
GNU アセンブラーを使用している場合(あなたは言いません)、mod (剰余) 演算子は%
C と同じです。
細かいマニュアルはこちら。