(added PIC tag) The instruction code is followed by parameters (address, literal, bit index and destination). I believe this is an optimal way to put more instruction with low ROM needed to store the program. For example GOTO needs 10 bit address to cover more program memory address, a literal only needs 8 bit, a register address is only 7 bits but then they need a bank selection, however, with the destination bit it takes 8 bits. Tamas ---------- Forwarded message ---------- From: Xiao Xu Date: Wed, May 26, 2010 at 8:14 PM Subject: Why are PIC'84 instruction sets 14 bits? To: "Microcontroller discussion list - Public." PIC 84 microprocessors have instruction sets that are 14 bits long, but there are only 35 instructions. So wouldn't it be more efficient to make each the instruction sets 6 bits, then you can represent 2^6=64 instructions, which is more than you need. What's the point of the 8 extra bits? - Xiao Xu -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist -- int main() { char *a,*s,*q; printf(s="int main() { char *a,*s,*q; printf(s=%s%s%s, q=%s%s%s%s,s,q,q,a=%s%s%s%s,q,q,q,a,a,q); }", q="\"",s,q,q,a="\\",q,q,q,a,a,q); } -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist