如何在ARM汇编语言中对常量进行汇编时模数

时间:2013-11-14 12:35:51

标签: assembly arm

我想知道如何使用arm汇编语言进行模数

我已尝试使用此网页中的代码MOD operator在arm网站:

MOV     R1,#12 MOD 7   ; R1 = 5
MOV     R2,#99 MOD 10  ; R2 = 9

但它没有组装。

我正在使用keil汇编程序。

3 个答案:

答案 0 :(得分:7)

如果您正在寻找运行时模数而不是汇编时间,您可以使用两条指令执行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的文档,专为此用例设计。

答案 1 :(得分:4)

Keil / armasm拼写它:MOD:。请参阅手册http://www.keil.com/support/man/docs/armasm/armasm_Cacechjd.htm

答案 2 :(得分:1)

如果您正在使用 GNU汇编程序(您没有说),则mod(余数)运算符为%,与C相同。

fine manual is here