1

我想知道如何在arm汇编语言中做模数

我已经在 arm 网站中尝试了此页面MOD 运算符中的代码:

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

但它不组装。

我正在使用keil汇编程序。

4

3 回答 3

8

如果您正在寻找runtime modulo 而不是 assemble-time,您可以使用 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的文档,专为此用例而设计。

于 2014-05-25T17:03:41.400 回答
4

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

于 2013-11-15T07:03:43.530 回答
1

如果您使用的是GNU 汇编器(您没有说),那么 mod(余数)运算符是%,与 C 相同。

精美的手册在这里

于 2013-11-14T12:53:03.197 回答