leixiongfeng 发表于 2008-7-12 20:49:06

菜鸟弱弱地问几个问题,能请高手注释下么

#ifdef__IAR_SYSTEMS_ICC__
#ifndef _SYSTEM_BUILD
#pragma system_include
#endif
#endif

ASMSFRB2 MACRO
        sfrb        \1 = \3
        sfrb        \2 = \3
        ENDM


/* Word sized SFRs, needs to be expanded into an assembler macro first. */
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
        ASMSFRW        _NAME, _ADDR



ASMSFRW        MACRO
        sfrb        \1L = (\2+0)
        sfrb        \1H = (\2+1)
        ENDM

ASMSFRWBN        MACRO
        sfrb        \3 = (\2+0)
        sfrb        \4 = (\2+1)
        ENDM


#define SFR_L_BITS(_NAME, _ADDR, \
                   _B0, _B1, _B2, _B3, _B4, _B5, _B6, _B7, \
                   _B8, _B9, _B10, _B11, _B12, _B13, _B14, _B15, \
                   _B16, _B17, _B18, _B19, _B20, _B21, _B22, _B23, \
                   _B24, _B25, _B26, _B27, _B28, _B29, _B30, _B31) \
        ASMSFRL        _NAME, _ADDR

ASMSFRL        MACRO
        sfrb        \10 = (\2+0)
        sfrb        \11 = (\2+1)
        sfrb        \12 = (\2+2)
        sfrb        \13 = (\2+3)
        ENDM

ASMSFRLBN MACRO
        sfrb        \3 = (\2+0)
        sfrb        \4 = (\2+1)
        sfrb        \5 = (\2+2)
        sfrb        \6 = (\2+3)
        ENDM


#endif /* __IAR_SYSTEMS_ASM__ */

#ifdef __ICCAVR__

#define __BYTEBITS(_NAME,_A,_B,_C,_D,_E,_F,_G,_H) \
unsigned char _NAME ## _ ## _A:1, \
            _NAME ## _ ## _B:1, \
            _NAME ## _ ## _C:1, \
            _NAME ## _ ## _D:1, \
            _NAME ## _ ## _E:1, \
            _NAME ## _ ## _F:1, \
            _NAME ## _ ## _G:1, \
            _NAME ## _ ## _H:1;


感激不尽啊

Gorgon_Meducer 发表于 2008-7-15 14:33:51

这应该是一个把IAR移植到ICC的头文件……
由于本人不太懂汇编,可能帮不上您的忙哈。
页: [1]
查看完整版本: 菜鸟弱弱地问几个问题,能请高手注释下么