From opcode size, they just wanted to convey the no of words required in memory to store that particular instruction.
Depending upon the size of the operands, each opcode demands its own amount of memory while storing the instruction in memory.
Since here first instruction needs 3 words so it is allocated accordingly, 3*4 bytes=12 bytes
Similarly, all the way down to "Halt" we need a total of (3+3+1+1+1+4+1)14 words in memory to accommodate this piece of code.
And so the memory addresses will get along and add up more 14*4=56 bytes in initial memory address i.e 1500.Since program counter stores memory address of next instruction to be executed, we'll have next instruction at 1500+56=1556.