作者podd233f (航)
看板ASM
标题[问题] arm-算数移位的问题
时间Wed Dec 15 23:01:42 2010
请问各位,
我用 arm编译器 编译出 c语言的a/4,
我有加 最佳化的参数去跑。
结果如下:
add r3, r0, #3 @ tmp105, a,
cmp r0, #0 @ a,
movlt r0, r3 @ a, tmp105
mov r0, r0, asr #2 @ <result>, a,
如果 a 是正数 的话我懂,
但如果 a是负数,为什麽还要加三再右移呢??
想很久还是搞不懂..
烦请高手们解惑,谢谢!!!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.148.160
※ 编辑: podd233f 来自: 59.115.148.160 (12/15 23:03)
1F:推 ksmrt0123:举个例, -9/4有两种算法:(1)商2余-1 (2)商3余3 12/16 15:40
2F:→ ksmrt0123:(1)叫 rounding toward zero, 你这段程式是这种 12/16 15:42
3F:→ ksmrt0123:(2)为 rounding toward -∞, 直接算数右移是这种 12/16 15:44
4F:→ ksmrt0123:订正: 第一行 (1)商-2余-1 (2)商-3余3 12/16 15:48
感谢解答!!!!
※ 编辑: podd233f 来自: 59.115.149.170 (12/16 17:00)