作者louisshih (老牧师4ni)
看板Programming
标题[问题] 组合语言ARM 不用MUL的乘法的问题
时间Thu Dec 22 11:25:28 2016
最近读组合语言遇到一个问题
如何不用MUL让一个暂存器里面的数字乘上135或是-13
我知道可以用LSL乘上2的次方倍
有没有大神可以帮小弟解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.136.211.90
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1482377131.A.85A.html
1F:→ louisshih: 我刚刚有想到135=128+4+2+1 再利用ADD 223.136.211.90 12/22 11:36
2F:→ louisshih: 加起来 223.136.211.90 12/22 11:36
3F:推 CindyLinz: 这样的确是啊.. 不过用这麽多个好吗^^| 112.121.78.5 12/22 11:44
4F:→ louisshih: 不然楼上还有其他办法吗 223.136.211.90 12/22 11:53
5F:→ louisshih: 该不会用Loop吧? 223.136.211.90 12/22 12:04
6F:推 shadowjohn: 大学时写的8051组语也作出四位元 140.134.48.253 12/22 13:18
7F:→ shadowjohn: 的加减乘除,乘我记得就累加N次 140.134.48.253 12/22 13:18
8F:→ shadowjohn: 是loop来作没错 140.134.48.253 12/22 13:18
9F:→ MOONRAKER: 128+4+2+1最少就是这麽少 不会更少了 60.248.110.133 12/22 13:44
10F:→ MOONRAKER: 也不过四次 用loop就变成135次 60.248.110.133 12/22 13:44
11F:推 CindyLinz: 可以用 128 + 8 - 1, 少一个 XD 112.121.78.5 12/22 15:16
12F:→ CindyLinz: 啊我不是说加四次不行啦.. 我只是想说 112.121.78.5 12/22 15:23
13F:→ CindyLinz: 四个加起来, 再加上若干 shiftL 112.121.78.5 12/22 15:23
14F:→ CindyLinz: 这样还会不会比 MUL 快呢... @@" 112.121.78.5 12/22 15:23
15F:→ CoNsTaR: 减法好像平均比加法慢5倍左右? 114.33.205.79 12/22 16:19
16F:→ louisshih: ShiftL目前还没学到 所以我不知道XD 223.136.211.90 12/22 16:41
17F:→ LPH66: 我只听说过除比乘慢, 还没听说减比加慢的 140.112.30.32 12/22 17:55
18F:→ CindyLinz: 书上写80386的加减要用 1/3 cycle 112.121.78.5 12/22 20:23
19F:→ CindyLinz: 乘好像是 20 cycle 左右, 除 40 的样子 112.121.78.5 12/22 20:23
20F:→ CindyLinz: 可是乘除运算比较有进步空间.. 112.121.78.5 12/22 20:23
21F:→ CindyLinz: 我想在现代的 CPU 里面乘除与加减的差 112.121.78.5 12/22 20:24
22F:→ CindyLinz: 距应该小很多了.. 但不知道还剩多少^^| 112.121.78.5 12/22 20:24