This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to fine tune a piece of C code into macro?

I have a piece of C code,


if(u3Varaible0 > u3Variable2)
{
#ifdef DEF_SOMETHING
.
.
#else
.
.
#endif
}
else
{
.
.
.
}


The variable length of u3Varaible0 is 3 bytes. I don't want to declare it as "unsigned long"(inorder to save onchip memory and reduce execution cycles), So I have to write this piece C code into asm code look like


CLR C
MOV Au3Varaible0_L
SUBB A,u3Variable2_L
MOV Au3Varaible0_M
SUBB A,u3Variable2_M
MOV Au3Varaible0_H
SUBB A,u3Variable2_H
JC C0049
.
.
.
.
C0049:
.
.
.


I want it be a macro(inorder to reduce execution cycles).
But now comes the problem:
1.
If I write this code as a asm macro in an asm source. I just can't use this macro from a C code.

2.
If I try to write is as C macro using #define, It is impossible to use inline assembly in the macro!!

3.
#ifdef DEF_SOMETHING
will also cause an error in #define macro


Does anyone know another good way to solve this fine tune problem?

Parents
  • If this is a real problem to you, then you should be writing in assembler anyway.

    I do not know what is happening, but recently there has been a swarm of posts "why can C not do what assembler can".

    Hey Guys, if you want the pleasure of C, do not complain about the pain.

    It is emminently possible and practical to mix C and assembler files but do not attempt to mix C and assembler statements

    Erik

Reply
  • If this is a real problem to you, then you should be writing in assembler anyway.

    I do not know what is happening, but recently there has been a swarm of posts "why can C not do what assembler can".

    Hey Guys, if you want the pleasure of C, do not complain about the pain.

    It is emminently possible and practical to mix C and assembler files but do not attempt to mix C and assembler statements

    Erik

Children
No data