|  
 |  | | 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 |                                                                                                 |