asm Declaration

The mikroC PRO for PIC32 allows embedding assembly in the source code by means of the asm declaration. The declarations _asm and __asm are also allowed in the mikroC PRO for PIC32 and have the same meaning. Note that numerals cannnot be used as absolute addresses for SFR or GPR variables in assembly instructions. Symbolic names may be used instead (listing will display these names as well as addresses).

Assembly instructions can be grouped by the asm keyword (or _asm, or __asm):

asm {
  block of assembly instructions
}

The mikroC PRO for PIC32 comments (both single-line and multi-line) are allowed in embedded assembly code.

The only types whose name remains the same in asm as it is in the mikroC PRO for PIC32 are registers, e.g. INTCON, PORTB, WREG, GIE, etc.

Accessing variables

Depending on the place of declaration, accessing a variable can be done in several ways :

Asm code and SSA optimization

If asm code is mixed with the C code, keep in mind that the generated code can substantially differ when SSA optimization option is enabled or disabled.
This is due to the fact that SSA optimization uses certain working registers to store routine parameters (W10-W13), rather than storing them onto the function frame.

Because of this, user must be very careful when writing asm code as existing values in the working registers used by SSA optimization can be overwritten.
To avoid this, it is recommended that user includes desired asm code in a separate routine.

Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code