asm1825 is a lightweight standalone assembler for PIC microcontrollers, specifically the PIC16(L)F1825 and similar variants. It is a two pass command line based assembler producing ready to burn .hex output with support for macros, file inclusion, and arithmetic evaluation of operands. It follows the opcode definitions in the '1825 datasheet and makes no explicit attempt at full compatibility with other specific assemblers (such as mpasm), but hopefully does not break compatibility without good cause. Speed of assembly is one of its primary goals.
It is hoped that, as development continues, support for more PIC12 and PIC16 series microcontrollers will be added.
0.7.022 May 2018 02:56
Added 'pragma smallmem' directive to tell assembler that all calls/gotos can be near. Added processor directive to specify target chip (for memory map information); support for 16F1825 and 16F183XX series chips. Added more standard fcall and lgoto pseudo-opcodes. Several bugfixes (including (here) label handling, file/line numbering in output, and memory usage summary information).
0.6.110 Oct 2017 01:00
Adding DW and DS directives. Memory usage statistics are now generated, and messages are now output with current file name and line number. Bug fixes: psDefine now fully evaluates abs= parameter value; moviw/movwi opcodes also have full evaluation of index values.
0.6.028 Sep 2017 15:50
Program sections (psects) added, supporting both absolute and relocatable sections in program, EEPROM, and data memory. DB directive added to allocate/define memory spaces.
0.5.416 Sep 2017 18:58
ORG directives may now have full expression evaluation. Added support for unary +/- operators. Bug fixes in negative decimal number evaluation and short macro argument substitutions. Complete register definition include files for pic16f1825 and pic12f1840. Added example program. Bank selection optimizations and bug fixes. Expanded documentation.
0.5.112 Aug 2017 00:26
First full release. Most major features implemented, including macros and operand evaluation. Capable of assembling non-trivial programs.