000000 940c 0030 jmp START
START: ;----- stack initialize--------
000030 0000 nop
1. ATmega328P has word-organized flash locations (Fig-1) and there are 16, 384 locations each of which holds 16-bit code/data. So, a 14-bit PC (Program Counter) is good enough to address all these word-organized locations. In fact, the size of the PC of ATmega328P is 14-bit.
2. In the quoted program segment, we observe that jmp START (direct addressing mode) instruction has been coded as: 940C 0030 which has occupied two flash locations (0x0000 and 0x0001).
3. The MCU takes 1-cycle time to fetch the 16-bit opcode (940C) and then takes another cycle time to read the 16-bit operand (0030). After that the MCU takes one more cycle time to arrive at the execution point (at address 0030) having stored 00 0000 0011 0000 into the Program Counter (PC).
(How is that 0030 loaded into PC? Just the figure/number 0030 is loaded or the current value of PC is reset to 0 and then keeps incrementing until matches with 0030? We may review the Direct Address Loading Mechanism of classic 8085.)