3 All mnemonics need to be on separate lines now. So this is no longer allowed
4 #define NOP2 __asm nop nop __endasm;
9 #if defined __SDCC_mcs51 || defined __SDCC_ds390
11 #define TEST_MACRO_20() { \
12 /*this macro has 20 instructions in it*/ \
37 volatile unsigned char testvar
= 0;
39 void bug1406219 (void)
43 /* this code generates an error :
44 ?ASxxxx-Error-<a> in line 493 of err.asm
45 <a> machine specific addressing or addressing mode error
48 (the generated jnc cannot branch the entire distance of the if statement.)
65 // macro with __asm/__endasm pair
66 #define NOP1 do { __asm nop __endasm; } while (0)
68 // multi-line macro with __asm/__endasm pair and operands
69 #define NOP2 do { __asm cpl a \
73 #define NOP4 do { __asm inc a \
78 #define NOP8 do { NOP4; NOP4; } while (0)
79 #define NOP16 do { NOP8; NOP8; } while (0)
80 #define NOP32 do { NOP16; NOP16; } while (0)
81 #define NOP64 do { NOP32; NOP32; } while (0)
86 void bug1505956 (void)
88 volatile unsigned char i
;
90 for( i
=0; i
<100; i
++ )
105 // macro without __asm/__endasm pair
110 void bug_DS400_ROM (void)
117 // macro with other macro
118 #define ADDRESS _count
119 #define RECURSIVE __asm inc ADDRESS \
123 void bug3407198 (void)
134 __data
char count
= 0;
136 // __asm ... __endasm must stay one C statement
137 char bug3407279 (char x
)
146 ASSERT(bug3407279(0) == 0);