會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





dePIC33E MAC指令
中級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1843
離線
各位前輩先進大家好:

小弟接觸MCU以來都是以C撰寫程式,

近來因執行的程式非常要求速度,

因此在摸索Assembly,

我在review code的時候發現dsPIC33E系列的 MAC指令有個不解的地方,

如附件圖所示,

MAC w4*w5, A

如果將w4 => 0x1000 乘上 w5 => 0x3000
我認為會是0x300 0000

再加上 0x 23 5000 2000

我認為會是 => 0x 23 5300 2000
但結果是 => 0x 23 5600 2000

等於0x300 0000又被左移了一個bit?????
這點讓我很不解,

想請教版上組語高手前輩先進提供指導,

謝謝!!

附加檔案:



jpg  MAC.JPG (43.46 KB)
44755_5c370768f3879.jpg 520X349 px

1月10日 16:50:56
轉換PDF檔 列印


Re: dePIC33E MAC指令
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14737
等級: 73; EXP: 42
HP : 1086 / 1810
MP : 4912 / 79744
離線
dsPIC 的乘法有兩種方式:
1. MCU 等級的乘法指令 (MUL.UU, MUL.SS, MUL.US, MUL.SU,MUL.B , MUL.W)
2. DSP 等級的乘法指令( ED, EDAC, MAC, MPY, MPY.N, MSC)


MAC 是 DSP 專用的指令,就看你是用何種方式的運算。

MAC 其結果是存入ACCA 或ACCB支援 有號數/無號數,小數/整數的格式,注意一下底下位元的設定:

IF 位元CORCON<0>,選擇整數或小數型態運算
US 位元CORCON<12>,選擇有號數或無號數型態運算

附圖為 DSP 指令 MPY 的乘法範例 (以 Fractional 為例)

附加檔案:



jpg  擷取.JPG (84.71 KB)
16_5c371a3745f96.jpg 682X512 px

1月10日 18:11:03
轉換PDF檔 列印


Re: dePIC33E MAC指令
中級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 52
等級: 6; EXP: 5
HP : 0 / 126
MP : 17 / 1843
離線
已理解, 謝謝!

1月11日 10:09:46
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project