bsodmike said:
Okay. This has me baffled!
Take the PIC 12C672 for example - data sheet states memory = 2048 x 14...
What size can the HEX be? Is it wrong to say that 1 word = 2bytes for pics?
14 bit core PIC's obviously use 14 bit memory (hence the name), 12 bit core PIC's (like the 12C508) use 12 bit memory.
It's totally irrelevent what you call it, a word is fine (and can apply to either 12 or 14 bit) - but as it's only program memory which is 14 bit you can't access it anyway - the data registers are only 8 bit.
On most processors instructions are different lengths, for example:
LDA $23
Would load the accumulator with the hex value 23 on a 6502 (as far as I can remember, it's been a long time!), it would take two bytes - one for LDA and one for $23. On the 6502 instructions can be various lengths, in this case 2 bytes, but they can be 1 or 3 bytes as well.
On the PIC a similar command would be:
MOVLW 0x23
This loads hex 23 in to the W register, it only takes one word, and the data (0x23) is actually part of the instruction. On the PIC, all instructions are one word long - which makes things much simpler. One reason for this is the RISC instruction set - a complex instrcution set can't do this because of the sheer number of instructions.