Hi Anand
I think you might be confusing two separate concepts - the program instructions (opcodes) in memory telling the processor what to do, and the data that the program operates on.
The Program Counter (PC) points to the next opcode to execute. Each time a new instruction is executed, it will increment by 2, 4 or 6 depending on the width of the instruction.
Separate from that, the processor can also read and write data. It can do this in byte, word or long-word transfers. There are many instructions capable of fetching 32-bit data from memory. Here are just a few:
move.l (a0),d0
move.l 4(a3),d0
move.l fred(a2,d1.l*8),d0
add.l mydata,d0
All of these fetch 32 bits of data (the width is specified as xxx.L in each instruction). However, the widths of the instruction opcodes vary, and so the PC will increment by a variable amount.
Hope this helps
Simon