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

看板Programming作者 (甘願為妳~)時間17年前 (2008/05/03 23:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
: =================================================================== : //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); \ : } 508: Download64(pBuf); C:0x09E6 AE50 MOV R6,0x50 C:0x09E8 AF51 MOV R7,0x51 C:0x09EA E55A MOV A,d1(0x5A) C:0x09EC FB MOV R3,A C:0x09ED 7A00 MOV R2,#pEP3BUF(0x00) C:0x09EF E4 CLR A C:0x09F0 FD MOV R5,A C:0x09F1 FC MOV R4,A C:0x09F2 120000 LCALL C:0000 以上是第一次call getXRAM ------>這裡並沒有我的macro code 照我寫的macro 應該是要 mov DPTR, #pBuf movx d1(0x5A) ,@DPTR+0x00 compiler真的把code翻成 Function Call了 @@" C:0x09F5 AE50 MOV R6,0x50 C:0x09F7 AF51 MOV R7,0x51 C:0x09F9 E55B MOV A,d2(0x5B) C:0x09FB FB MOV R3,A C:0x09FC 7A00 MOV R2,#pEP3BUF(0x00) C:0x09FE 7D01 MOV R5,#0x01 C:0x0A00 7C00 MOV R4,#pEP3BUF(0x00) C:0x0A02 120000 LCALL C:0000 以上是第二次call getXRAM ------>這裡並沒有我的macro code 照我寫的macro 應該是要 mov DPTR, #pBuf movx d2(0x5B) ,@DPTR+0x01 C:0x0A05 75C702 MOV ICEDATA(0xC7),#0x02 C:0x0A08 C2B5 CLR ICEWR(0xB0.5) C:0x0A0A D2B5 SETB ICEWR(0xB0.5) -- ████████████████ █ █████████████ ██████████████ █ ██████████████ ██████████████ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.225.167 ※ 編輯: ast9869 來自: 123.110.225.167 (05/03 23:11)
文章代碼(AID): #1877xfXB (Programming)
文章代碼(AID): #1877xfXB (Programming)