I think this output from MikroC could help. Am I right that this is the memory map of the program?
It is called "view listing" in the IDE. Is it correct that in this case my program must be located starting at address 0x9D000050 ?
; LST file generated by mikroListExporter - v.2.0
; Date/Time: 23/07/2016 20:50:46
;----------------------------------------------
;Address Opcode ASM
____SysVT:
0x9FC01180 0x0B400008 J ___GenExcept
0x9FC01184 0x70000000 NOP
; end of ____SysVT
____BootVT:
0xBFC00380 0x3C1E9D00 LUI R30, 40192
0xBFC00384 0x37DE0038 ORI R30, R30, 56
0xBFC00388 0x03C00008 JR R30
0xBFC0038C 0x70000000 NOP
; end of ____BootVT
_main:
;01_blinkLED.c, 1 :: void main() {
;01_blinkLED.c, 3 :: AD1PCFG = 0xFFFF;
0x9D000050 0x3402FFFF ORI R2, R0, 65535
0x9D000054 0x3C1EBF81 LUI R30, 49025
0x9D000058 0xAFC29060 SW R2, -28576(R30)
;01_blinkLED.c, 6 :: TRISG = 0;
0x9D00005C 0x3C1EBF88 LUI R30, 49032
0x9D000060 0xAFC06180 SW R0, 24960(R30)
;01_blinkLED.c, 7 :: TRISD = 0;
0x9D000064 0x3C1EBF88 LUI R30, 49032
0x9D000068 0xAFC060C0 SW R0, 24768(R30)
;01_blinkLED.c, 10 :: LATG = 0;
0x9D00006C 0x3C1EBF88 LUI R30, 49032
0x9D000070 0xAFC061A0 SW R0, 24992(R30)
;01_blinkLED.c, 11 :: LATD = 0;
0x9D000074 0x3C1EBF88 LUI R30, 49032
0x9D000078 0xAFC060E0 SW R0, 24800(R30)
;01_blinkLED.c, 13 :: while(1)
L_main0:
;01_blinkLED.c, 16 :: LATG = ~LATG;
0x9D00007C 0x3C1EBF88 LUI R30, 49032
0x9D000080 0x8FC261A0 LW R2, 24992(R30)
0x9D000084 0x00401027 NOR R2, R2, R0
0x9D000088 0x3C1EBF88 LUI R30, 49032
0x9D00008C 0xAFC261A0 SW R2, 24992(R30)
;01_blinkLED.c, 17 :: LATD = ~LATD;
0x9D000090 0x3C1EBF88 LUI R30, 49032
0x9D000094 0x8FC260E0 LW R2, 24800(R30)
0x9D000098 0x00401027 NOR R2, R2, R0
0x9D00009C 0x3C1EBF88 LUI R30, 49032
0x9D0000A0 0xAFC260E0 SW R2, 24800(R30)
;01_blinkLED.c, 19 :: Delay_ms(1000);
0x9D0000A4 0x3C180196 LUI R24, 406
0x9D0000A8 0x3718E6AA ORI R24, R24, 59050
L_main2:
0x9D0000AC 0x2718FFFF ADDIU R24, R24, -1
0x9D0000B0 0x1700FFFE BNE R24, R0, L_main2
0x9D0000B4 0x70000000 NOP
;01_blinkLED.c, 20 :: }
0x9D0000B8 0x0B40001F J L_main0
0x9D0000BC 0x70000000 NOP
;01_blinkLED.c, 21 :: }
L_end_main:
L__main_end_loop:
0x9D0000C0 0x0B400030 J L__main_end_loop
0x9D0000C4 0x70000000 NOP
; end of _main
___CC2DW:
;__Lib_System.c, 4 ::
0x9D000000 0x27BDFFFC ADDIU SP, SP, -4
;__Lib_System.c, 6 ::
L_loopDW:
;__Lib_System.c, 7 ::
0x9D000004 0x831E0000 LB R30, 0(R24)
;__Lib_System.c, 8 ::
0x9D000008 0xA2FE0000 SB R30, 0(R23)
;__Lib_System.c, 9 ::
0x9D00000C 0x26F70001 ADDIU R23, R23, 1
;__Lib_System.c, 10 ::
0x9D000010 0x16F6FFFC BNE R23, R22, L_loopDW
;__Lib_System.c, 11 ::
0x9D000014 0x27180001 ADDIU R24, R24, 1
;__Lib_System.c, 13 ::
L_end___CC2DW:
0x9D000018 0x03E00008 JR RA
0x9D00001C 0x27BD0004 ADDIU SP, SP, 4
; end of ___CC2DW
___BootStartUp:
;__Lib_System.c, 68 ::
0xBFC00000 0x27BDFFFC ADDIU SP, SP, -4
;__Lib_System.c, 72 ::
0xBFC00004 0x70000000 NOP
;__Lib_System.c, 73 ::
0xBFC00008 0x70000000 NOP
;__Lib_System.c, 74 ::
0xBFC0000C 0x70000000 NOP
;__Lib_System.c, 75 ::
0xBFC00010 0x70000000 NOP
;__Lib_System.c, 76 ::
0xBFC00014 0x70000000 NOP
;__Lib_System.c, 77 ::
0xBFC00018 0x70000000 NOP
;__Lib_System.c, 78 ::
0xBFC0001C 0x70000000 NOP
;__Lib_System.c, 79 ::
0xBFC00020 0x70000000 NOP
;__Lib_System.c, 80 ::
0xBFC00024 0x70000000 NOP
;__Lib_System.c, 81 ::
0xBFC00028 0x70000000 NOP
;__Lib_System.c, 82 ::
0xBFC0002C 0x70000000 NOP
;__Lib_System.c, 83 ::
0xBFC00030 0x70000000 NOP
;__Lib_System.c, 84 ::
0xBFC00034 0x70000000 NOP
;__Lib_System.c, 85 ::
0xBFC00038 0x70000000 NOP
;__Lib_System.c, 86 ::
0xBFC0003C 0x70000000 NOP
;__Lib_System.c, 87 ::
0xBFC00040 0x70000000 NOP
;__Lib_System.c, 88 ::
0xBFC00044 0x70000000 NOP
;__Lib_System.c, 89 ::
0xBFC00048 0x70000000 NOP
;__Lib_System.c, 90 ::
0xBFC0004C 0x70000000 NOP
;__Lib_System.c, 91 ::
0xBFC00050 0x70000000 NOP
;__Lib_System.c, 94 ::
0xBFC00054 0x3C1DA000 LUI SP, 40960
0xBFC00058 0x37BD3FFC ORI SP, SP, 16380
;__Lib_System.c, 95 ::
0xBFC0005C 0x3C01A000 LUI GP, 40960
0xBFC00060 0x34218000 ORI GP, GP, 32768
;__Lib_System.c, 99 ::
0xBFC00064 0x401E6002 MFC0 R30, 12, 2
;__Lib_System.c, 100 ::
0xBFC00068 0x03C0E00A MOVZ R28, R30, R0
;__Lib_System.c, 101 ::
0xBFC0006C 0x7FDB1E80 EXT R27, R30, 26, 4
;__Lib_System.c, 102 ::
0xBFC00070 0x7F7E4984 INS R30, R27, 6, 4
;__Lib_System.c, 103 ::
0xBFC00074 0x409E6002 MTC0 R30, 12, 2
;__Lib_System.c, 104 ::
0xBFC00078 0x41C10800 WRPGPR GP, GP
;__Lib_System.c, 105 ::
0xBFC0007C 0x409C6002 MTC0 R28, 12, 2
;__Lib_System.c, 111 ::
0xBFC00080 0x3C02A421 LUI R2, 42017
0xBFC00084 0x34420583 ORI R2, R2, 1411
0xBFC00088 0x0040F00A MOVZ R30, R2, R0
0xBFC0008C 0x409E8000 MTC0 R30, 16, 0
;__Lib_System.c, 114 ::
0xBFC00090 0x0000100A MOVZ R2, R0, R0
0xBFC00094 0x0040F00A MOVZ R30, R2, R0
0xBFC00098 0x409E4800 MTC0 R30, 9, 0
;__Lib_System.c, 117 ::
0xBFC0009C 0x3C02FFFF LUI R2, 65535
0xBFC000A0 0x3442FFFF ORI R2, R2, 65535
0xBFC000A4 0x0040F00A MOVZ R30, R2, R0
0xBFC000A8 0x409E5800 MTC0 R30, 11, 0
;__Lib_System.c, 119 ::
0xBFC000AC 0x3C029FC0 LUI R2, 40896
0xBFC000B0 0x34421000 ORI R2, R2, 4096
0xBFC000B4 0x0040F00A MOVZ R30, R2, R0
0xBFC000B8 0x409E7801 MTC0 R30, 15, 1
;__Lib_System.c, 121 ::
0xBFC000BC 0x34020020 ORI R2, R0, 32
0xBFC000C0 0x0040F00A MOVZ R30, R2, R0
0xBFC000C4 0x409E6001 MTC0 R30, 12, 1
;__Lib_System.c, 123 ::
0xBFC000C8 0x3C020400 LUI R2, 1024
0xBFC000CC 0x0040F00A MOVZ R30, R2, R0
0xBFC000D0 0x409E6002 MTC0 R30, 12, 2
;__Lib_System.c, 124 ::
0xBFC000D4 0x0000100A MOVZ R2, R0, R0
0xBFC000D8 0x0040F00A MOVZ R30, R2, R0
0xBFC000DC 0x409E6003 MTC0 R30, 12, 3
;__Lib_System.c, 129 ::
0xBFC000E0 0x3C020010 LUI R2, 16
0xBFC000E4 0x0040F00A MOVZ R30, R2, R0
0xBFC000E8 0x409E6000 MTC0 R30, 12, 0
;__Lib_System.c, 132 ::
0xBFC000EC 0x34020032 ORI R2, R0, 50
0xBFC000F0 0x3C1EBF88 LUI R30, 49032
0xBFC000F4 0xAFC24000 SW R2, 16384(R30)
;__Lib_System.c, 137 ::
0xBFC000F8 0x34021000 ORI R2, R0, 4096
0xBFC000FC 0x3C1EBF88 LUI R30, 49032
0xBFC00100 0xAFC21000 SW R2, 4096(R30)
;__Lib_System.c, 143 ::
0xBFC00104 0x3C020080 LUI R2, 128
0xBFC00108 0x0040F00A MOVZ R30, R2, R0
0xBFC0010C 0x409E6800 MTC0 R30, 13, 0
;__Lib_System.c, 149 ::
0xBFC00110 0x3C1E9D00 LUI R30, hi_addr(_main+0)
;__Lib_System.c, 150 ::
0xBFC00114 0x37DE0050 ORI R30, R30, lo_addr(_main+0)
;__Lib_System.c, 152 ::
0xBFC00118 0x03C00008 JR R30
;__Lib_System.c, 153 ::
0xBFC0011C 0x70000000 NOP
;__Lib_System.c, 155 ::
L_end___BootStartUp:
0xBFC00120 0x03E00008 JR RA
0xBFC00124 0x27BD0004 ADDIU SP, SP, 4
; end of ___BootStartUp
___BootGenExcept:
;__Lib_System.c, 56 ::
0x9D000038 0x27BDFFFC ADDIU SP, SP, -4
;__Lib_System.c, 57 ::
L___BootGenExcept6:
;__Lib_System.c, 58 ::
0x9D00003C 0x0B40000F J L___BootGenExcept6
0x9D000040 0x70000000 NOP
;__Lib_System.c, 59 ::
L_end___BootGenExcept:
0x9D000044 0x27BD0004 ADDIU SP, SP, 4
0x9D000048 0x42000018 ERET
0x9D00004C 0x70000000 NOP
; end of ___BootGenExcept
___GenExcept:
;__Lib_System.c, 61 ::
0x9D000020 0x27BDFFFC ADDIU SP, SP, -4
;__Lib_System.c, 62 ::
L___GenExcept8:
;__Lib_System.c, 63 ::
0x9D000024 0x0B400009 J L___GenExcept8
0x9D000028 0x70000000 NOP
;__Lib_System.c, 64 ::
L_end___GenExcept:
0x9D00002C 0x27BD0004 ADDIU SP, SP, 4
0x9D000030 0x42000018 ERET
0x9D000034 0x70000000 NOP
; end of ___GenExcept
Symbol List:
//** Routines locations **
//ADDRESS SIZE PROCEDURE
//----------------------------------------------
0x9D000000 [32] ___CC2DW
0x9D000020 [24] ___GenExcept
0x9D000038 [24] ___BootGenExcept
0x9D000050 [120] _main
0xBFC00000 [296] ___BootStartUp
//** Variables locations **
//ADDRESS SIZE VARIABLE
//----------------------------------------------