作者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