作者tea1116 (大鈞)
看板ASM
標題[問題] 8051乘法以及除法問題
時間Mon Oct 22 22:54:32 2007
由於現在我做的案子有用到8051
目前卡到因為我需要做一些乘除法的運算
才可以把從串列阜接收的資料化成我要的數值
但是看了看有關的書籍,總覺得8051的乘除法指令蠻不方便的
問題來了
1.假如我要算25*30
基本寫法應該是
mov a,#25h
mov b,#30h
mul ab
end
這樣寫出來的結果會是b=07,a=50
那我如果想要直接有750這個值該怎麼寫呢?
因為如果我用這方法的話我要先把a跟b轉成2進制
然後放到16bit的DPTR裡,然後再轉成10進制(還沒有測試過)
請問有方法可以直接讓他有750的結果嗎?
2.除法問題
假如我要算350/10
用基本寫法應該是
mov a,#350(這應該只能到255,不過假設一下)
mov b,#10
div ab
end
可是這樣他就只會做一次的除法動作,並將商跟餘數存於暫存器中
請問有辦法讓結果是35嗎?
也就是可以讓它直接做兩次除的動作
感謝大家的幫忙摟
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.123.96
1F:→ ruemann:1,2 沒辨法,就我的認而言。 10/22 23:10
2F:→ ruemann:ps.51的除法在8bits的mcu中算好用的 10/22 23:10
3F:→ MasterChang:請參考本版221 10/23 00:10
4F:→ tea1116:221大致上跟我成法部分問題一樣 10/23 00:23
5F:→ tea1116:可是回文中還是沒有兩個高低位元化成一個十進碼的方法吧? 10/23 00:24
6F:推 MasterChang:如果值控制在255內,low byte就是答案。不想做就用C吧 10/23 00:39
7F:→ MasterChang:直接參考Keil C產生的asm code不是更直接? 10/23 00:40