|
| | PicPuter 2.0 : Chapter 10 : Assembler |
There is a complete Pic assembler and disassembler inside PicPuter. You can choose to program in basic, assembler, or a combination of both. This is a feature that is only available in PicPuter, and it works alongside its basic interpreter.
To disassemble use the command like 'DISASM 0 10' to display the assembly. The output of the disassembler is the exact format that assembler requires. To write an assembly statement use a hexadecimal line number e.g. '$1000 MOVLW 44'.
There are several limitation when programming pic assembly language. These are not limitations of picputer, but of the microcontroller.
The CALL and GOTO statements can only use a 12 bit jump value. Basically you can only directly jump from $0000 - $0FFF or to from $1000 - $1FFF. When executing the upper bits are taken from the value in PCLATH . When disassembling picputer uses the upper bits from its flash address.
Most assembler opcodes only use a 7 bit sram address. This creates 4 banks of sram registers $00-$7F , $80-$FF , $100-$17F , $180-$1FF. The upper bits are taken from the STATUS register. PicPuter will always list the string value in $00-$7F for disassembly. When assembling any bank can be used, but is truncated to $00-$7F. This makes the strings TRISA ($??) and PORTA ($??) the same.
Assembler Opcodes
Assembler Opcodes
|
10.01 | ADDLW 8 bit constant | 10.02 | ADDWF variable direction | 10.03 | ANDLW 8 bit constant | 10.04 |
ANDWF 8 bit constant | |