作者MasterChang (我爱ASM)
看板ASM
标题Re: 请问macro如何被C 呼叫?
时间Sat May 3 19:27:47 2008
你用的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