Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/05/08 07:09
Read: times


 
#159692 - My view point on ASM in C
Responding to: ???'s previous message
Neil Kurzman said:
ASM files get handled by the Assembler. C Files by the Compiler. Both make Object files that go to the linker. the Linker makes a Hex file. Done.

Start putting ASM code in the C files what happens? First the optimizer now has to dance around your ASM code. I may see a way to optimize but it is not allowed. It may decide not to optimize the entire function. Or may not be able to because your code is in the way.


Aggrreed, the optimiser may fail to optimise.
But can be done if you are ready to take it.

Neil Kurzman said:

Do a full ASM function with a C function definition. Now the compiler is pushing everything because it is not sure what you are using or jumping to.

Call a properly formatted ASM function from C. The Optimizer does not care. Only the minimum amount is pushed, since it is your job now.

OR, nothing because you ASM did not bother anything. The point is if you don not pick fights with the tools you can spend less time fighting with them.

Note that this will vary by chip, compiler, and Version.



Not Quite conviencing, as
1. When you are writing in asm you know which registors & memory locations you are going to use, you can only push & pop them.

2. As far as compiler pushing a lot of jerk when whole funcion is in asm in c body is concerned; There are compilers where you can intruct compiler not to do any push / pop for this funciton (of course it is programmers responisibility now).

Regards,
Mahesh

List of 48 messages in thread
TopicAuthorDate
Asm and C            01/01/70 00:00      
   Depends!            01/01/70 00:00      
      Also            01/01/70 00:00      
         No! Not Inline!!            01/01/70 00:00      
            why not inline?            01/01/70 00:00      
               I agree with Andy (at least for Keil), but ....            01/01/70 00:00      
                  Keil specifically            01/01/70 00:00      
                     Keil and reasoning            01/01/70 00:00      
                        Jan...Take it from experience...            01/01/70 00:00      
                           can you please explain?            01/01/70 00:00      
                              Example??            01/01/70 00:00      
                                 I am curious            01/01/70 00:00      
                              Use these references in lieu of examples:            01/01/70 00:00      
                              I explained it earlier; example here            01/01/70 00:00      
                                 I now see the point with Keil...            01/01/70 00:00      
                                    Often intrinsic use of inline assembler            01/01/70 00:00      
                                       Not a safe assumption?            01/01/70 00:00      
                                          No, extrapolation not allowed            01/01/70 00:00      
                                          but if it is a macro...            01/01/70 00:00      
                                             A limited example            01/01/70 00:00      
                                                an opinion            01/01/70 00:00      
                     Keil specifically - more            01/01/70 00:00      
               Why Not inline C            01/01/70 00:00      
               Inline assembler - Avoid! Avoid!!            01/01/70 00:00      
                  in order to keep things together            01/01/70 00:00      
                     I do            01/01/70 00:00      
                        from where I sit...            01/01/70 00:00      
                           you said it            01/01/70 00:00      
                              this has nothing to do with it            01/01/70 00:00      
                                 asm *functions* embedded in C-majority source file            01/01/70 00:00      
                                 Whay Not???            01/01/70 00:00      
                                    My view point on ASM in C            01/01/70 00:00      
                                       That is the point            01/01/70 00:00      
                                 here is one - at least re Keil            01/01/70 00:00      
                     Maybe not here, but...            01/01/70 00:00      
            I do not disagree            01/01/70 00:00      
   Compiler ?            01/01/70 00:00      
      Get the manual when/where you get the compiler            01/01/70 00:00      
   and C in asm ?            01/01/70 00:00      
      C first?            01/01/70 00:00      
         not used to call compiler generated asm so translate by hand            01/01/70 00:00      
      if a compiler can do it            01/01/70 00:00      
      depends on the compiler            01/01/70 00:00      
         SDCC...            01/01/70 00:00      
            What assembler?            01/01/70 00:00      
               SB-asm            01/01/70 00:00      
                  In principle this should work.            01/01/70 00:00      
                  OTOH, why not simply write in ASM?            01/01/70 00:00      

Back to Subject List