Re: 請問macro如何被C 呼叫?
你用的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
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章