看板 Programming 關於我們 聯絡資訊
最近讀組合語言遇到一個問題 如何不用MUL讓一個暫存器裡面的數字乘上135或是-13 我知道可以用LSL乘上2的次方倍 有沒有大神可以幫小弟解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.211.90 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1482377131.A.85A.html
louisshih: 我剛剛有想到135=128+4+2+1 再利用ADD 223.136.211.90 12/22 11:36
louisshih: 加起來 223.136.211.90 12/22 11:36
CindyLinz: 這樣的確是啊.. 不過用這麼多個好嗎^^| 112.121.78.5 12/22 11:44
louisshih: 不然樓上還有其他辦法嗎 223.136.211.90 12/22 11:53
louisshih: 該不會用Loop吧? 223.136.211.90 12/22 12:04
shadowjohn: 大學時寫的8051組語也作出四位元 140.134.48.253 12/22 13:18
shadowjohn: 的加減乘除,乘我記得就累加N次 140.134.48.253 12/22 13:18
shadowjohn: 是loop來作沒錯 140.134.48.253 12/22 13:18
MOONRAKER: 128+4+2+1最少就是這麼少 不會更少了 60.248.110.133 12/22 13:44
MOONRAKER: 也不過四次 用loop就變成135次 60.248.110.133 12/22 13:44
CindyLinz: 可以用 128 + 8 - 1, 少一個 XD 112.121.78.5 12/22 15:16
CindyLinz: 啊我不是說加四次不行啦.. 我只是想說 112.121.78.5 12/22 15:23
CindyLinz: 四個加起來, 再加上若干 shiftL 112.121.78.5 12/22 15:23
CindyLinz: 這樣還會不會比 MUL 快呢... @@" 112.121.78.5 12/22 15:23
CoNsTaR: 減法好像平均比加法慢5倍左右? 114.33.205.79 12/22 16:19
louisshih: ShiftL目前還沒學到 所以我不知道XD 223.136.211.90 12/22 16:41
LPH66: 我只聽說過除比乘慢, 還沒聽說減比加慢的 140.112.30.32 12/22 17:55
CindyLinz: 書上寫80386的加減要用 1/3 cycle 112.121.78.5 12/22 20:23
CindyLinz: 乘好像是 20 cycle 左右, 除 40 的樣子 112.121.78.5 12/22 20:23
CindyLinz: 可是乘除運算比較有進步空間.. 112.121.78.5 12/22 20:23
CindyLinz: 我想在現代的 CPU 裡面乘除與加減的差 112.121.78.5 12/22 20:24
CindyLinz: 距應該小很多了.. 但不知道還剩多少^^| 112.121.78.5 12/22 20:24