##
Final assembly and jump optimizer

    cpik -a [-d<value>] [-o output_hex_file] -p device
                                      [-A gpasm_executable_path] input_asm_file

The `gpasm` assembler can be invoked directly from `cpik`. This stage builds the final `.hex` file, from the `.asm` file generated by the linker. During this step, long jumps are replaced by short jumps whenever possible. Therefore, the resulting code is shorter and faster than the code directly generated by `gpasm`.

`-A gpasm_executable` : specify the absolute path to the `gpasm` tool. This option is generally not needed but, when used, the specified name must contain the name of the executable itself (eg: `/a/b/gpasm` instead of `/a/b/`)

`-p device` : specifies the target pic device name. `device` must be a valid pic 18 name like `p18xxxx`. An invalid device will cause the final assembly to fail. By default, the selected device is `p18f1220`. This specification is not optional because it allows `cpik` to check the program against an eventual memory overflow.

`-o output_hex_file` : specify the `.hex` file name. The default name is `<input_asm_file>.hex`.

`-d<value>` : ask optimizer to print debug informations when `value=2` or statistics on how many words are saved when `value=1`.