{{pfw:banner.png}} ====== Assembler for MSP430 ====== ===== The idea: ===== A compact universal MSP430 assembler ===== Implementation ===== The example asumes a 16-bit machine and compile actions. Also a Flash environment is assumed, for RAM only systems ''%%ROM!%%'' can be replaced by ''%%!%%'' and ''%%CHERE%%'' by ''%%HERE%%''. Examples of macros are in the source file. An implementation example for ''%%CODE%%'' and ''%%END-CODE%%'' is showed too. Missing words in Generic Forth are: CHERE ROM! ?ABORT : CHERE ( -- a ) Leave flash or FRAM address on the stack ; : {W ( -- ) enable write access to flash or FRAM ; : W} ( -- ) disable write access to flash or FRAM ; : ROM! ( x -- ) {W ! W} ; \ Store 'x' in flash or FRAM : ?ABORT ( f -- ) if abort then ; \ Replace noForth style compact error message **27 instructions (16b, .B = 8b)** ✦ 6 instructions with 1 operand RRA RRC SWPB SXT PUSH CALL ✦ 12 instructions with 2 operands MOV CMP ADD SUB ADDC SUBC DADD BIT BIS BIC BIA (AND) BIX (XOR) ✦ 8 jump instructions with relative inline addresses JNZ JZ JNC JC JN JGE JL JMP ✦ return from interrupt RETI Example of it's use: code LSHIFT ( x1 n -- x2 ) tos w mov sp )+ tos mov #0 w cmp <>? if, begin, tos tos add #1 w sub =? until, then, next end-code | File name | Commands | Purpose | on Github (external link) | | [[pfw:system_software:msp430-assembler-doc.pdf]] | DEMO2 | Documentation | [[https://github.com/project-forth-works/project-forth-works/blob/main/System-Software/Assemblers/MSP430-assembler/MSP430-assembler-doc.pdf|Assembler documentation]] | | [[pfw:system_software:msp430-asm-v0.2.f]] | DEMO3 | universal MSP430 assembler | [[https://github.com/project-forth-works/project-forth-works/blob/main/System-Software/Assemblers/MSP430-assembler/MSP430-asm-v0.2.f|MSP430 assembler]] | ==== Contributions ====

Alternative Implementations

[[en:pfw:welcome|Back to PFW page]]