[問題] 組合語言ARM 不用MUL的乘法的問題

看板Programming作者 (老牧師4ni)時間8年前 (2016/12/22 11:25), 編輯推噓3(3019)
留言22則, 6人參與, 最新討論串1/2 (看更多)
最近讀組合語言遇到一個問題 如何不用MUL讓一個暫存器裡面的數字乘上135或是-13 我知道可以用LSL乘上2的次方倍 有沒有大神可以幫小弟解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.211.90 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1482377131.A.85A.html

12/22 11:36, , 1F
我剛剛有想到135=128+4+2+1 再利用ADD
12/22 11:36, 1F

12/22 11:36, , 2F
加起來
12/22 11:36, 2F

12/22 11:44, , 3F
這樣的確是啊.. 不過用這麼多個好嗎^^|
12/22 11:44, 3F

12/22 11:53, , 4F
不然樓上還有其他辦法嗎
12/22 11:53, 4F

12/22 12:04, , 5F
該不會用Loop吧?
12/22 12:04, 5F

12/22 13:18, , 6F
大學時寫的8051組語也作出四位元
12/22 13:18, 6F

12/22 13:18, , 7F
的加減乘除,乘我記得就累加N次
12/22 13:18, 7F

12/22 13:18, , 8F
是loop來作沒錯
12/22 13:18, 8F

12/22 13:44, , 9F
128+4+2+1最少就是這麼少 不會更少了
12/22 13:44, 9F

12/22 13:44, , 10F
也不過四次 用loop就變成135次
12/22 13:44, 10F

12/22 15:16, , 11F
可以用 128 + 8 - 1, 少一個 XD
12/22 15:16, 11F

12/22 15:23, , 12F
啊我不是說加四次不行啦.. 我只是想說
12/22 15:23, 12F

12/22 15:23, , 13F
四個加起來, 再加上若干 shiftL
12/22 15:23, 13F

12/22 15:23, , 14F
這樣還會不會比 MUL 快呢... @@"
12/22 15:23, 14F

12/22 16:19, , 15F
減法好像平均比加法慢5倍左右?
12/22 16:19, 15F

12/22 16:41, , 16F
ShiftL目前還沒學到 所以我不知道XD
12/22 16:41, 16F

12/22 17:55, , 17F
我只聽說過除比乘慢, 還沒聽說減比加慢的
12/22 17:55, 17F

12/22 20:23, , 18F
書上寫80386的加減要用 1/3 cycle
12/22 20:23, 18F

12/22 20:23, , 19F
乘好像是 20 cycle 左右, 除 40 的樣子
12/22 20:23, 19F

12/22 20:23, , 20F
可是乘除運算比較有進步空間..
12/22 20:23, 20F

12/22 20:24, , 21F
我想在現代的 CPU 裡面乘除與加減的差
12/22 20:24, 21F

12/22 20:24, , 22F
距應該小很多了.. 但不知道還剩多少^^|
12/22 20:24, 22F
文章代碼(AID): #1OMqUhXQ (Programming)
文章代碼(AID): #1OMqUhXQ (Programming)