Re: 請問macro如何被C 呼叫?

看板ASM (組合語言)作者 (我愛ASM)時間16年前 (2008/05/03 19:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
你用的C語言是Keil C51嗎?(假設是的話) 你的寫法完全是錯的,基本上就是亂搞一通。 從上面看來,你的巨集是組合語言的構成。所以你在C使用時 就要用嵌入組語的方式使用巨集而不是用含式呼叫的方式。 若是想要用函式呼叫的部分使用組語寫成的檔案。那你應該要 參考Keil C51的使用者手冊第六章去把你組語檔的構成寫好。 或在編譯器中使用SRC命令幫你把組語構成的框架先作出來。 ※ 引述《ast9869 (甘願為妳~)》之銘言: : =================================================================== : //C51 的 code : //ice_func.c : #pragma asm : getXRAM MACRO _Address, _Shift, _Data : mov DPTR, #_Address : movx _Data ,@DPTR+_Shift : ENDM : #pragma endasm : =================================================================== : //ice_func.h : BYTE d1, d2; : extern getXRAM(_Address, _Shift, _Data); : #define Download64(pBuf) \ : { \ : getXRAM(pBuf, 0, d1);\ : getXRAM(pBuf, 1, d2);\ : DownTwoByte(0x02, d1, d2); \ : } : =================================================================== : 小弟不才… : 這樣好像不能用耶?請問各位先進要如何設定才能調用getXRAM呢? -- 不要問我從哪來,我只是一個浪跡天涯的工程師.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.242.203
文章代碼(AID): #1874mrax (ASM)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1874mrax (ASM)