作者ast9869 (甘愿为你~)
看板Programming
标题请问macro如何被C 呼叫?
时间Sat May 3 17:47:25 2008
※ [本文转录自 ASM 看板]
作者: ast9869 (甘愿为你~) 看板: ASM
标题: 请问macro如何被C 呼叫?
时间: Sat May 3 17:35:14 2008
===================================================================
//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呢?
※ 编辑: ast9869 来自: 123.110.225.167 (05/03 17:49)
1F:推 sunneo:那...把macro包装成proc 220.142.230.65 05/03 19:24
2F:→ sunneo:大概都是一样的吧?属於compile/assembly tm 220.142.230.65 05/03 19:24
3F:→ ast9869:其实我是要用macro,不是call function...123.110.225.167 05/03 21:58
4F:→ ast9869:只是ice_func.h表示会让人误导罢了!!123.110.225.167 05/03 21:59
5F:→ ast9869:要如何改造,变成用macro的方式?123.110.225.167 05/03 22:00
6F:→ atst:应该是extern出问题吧...macro只是做文字代换 61.229.27.54 05/03 22:06
7F:→ atst:如果你在不同的档案里引用这个macro,应该只会 61.229.27.54 05/03 22:07
8F:→ atst:把引用的地方代换成...getXXX,但不会帮你宣告 61.229.27.54 05/03 22:07
9F:→ atst:extern getXXX 61.229.27.54 05/03 22:08
10F:→ atst:是不是因此出问题呢? 61.229.27.54 05/03 22:09
11F:推 atst:刚又看了一下, 看来不是我讲的原因... 61.229.27.54 05/03 22:11
12F:→ atst:能不能po一下错误讯息? 61.229.27.54 05/03 22:11
13F:→ ast9869:没有错误讯息!只是跑的不是我要的!123.110.225.167 05/03 22:49