User Tools

Site Tools


how_to_mix_c_and_asm

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

It's actually quite easy! As you can see in the example below, just enclose the ASM part with //_////_asm// and //_////_endasm;// You might have to declare some additional variables, but the concept is quite straightforward. <code c> unsigned char Scale_7bit(unsigned char evnt2, unsigned char min, unsigned char max) { // scaled value is (<8-bit random> * ) >> 8 PRODL = evnt2 << 1; // 8bit value PRODH = max-min+1; // range __asm movf _PRODL, W mulwf _PRODH, 0 __endasm; return min + PRODH; } </code> Also, as well as the above example of 'inline ASM', it is possible to include ASM code in .inc include files, and call that ASM code from within your C application. Please see the forum thread [[http://www.midibox.org/forum/index.php?topic=7698.0|using assembler in C - question about _ in front of macro names]] for more info.

how_to_mix_c_and_asm.1221067904.txt.gz · Last modified: 2008/09/29 12:27 (external edit)