If you have a 32 bit processor, does that mean it is useless to have more than 4 GB of RAM, since you wouldn't be able to address those additional locations? So with a 64 bit processor, technically you could buy as much RAM that fills 4 EB (exabytes)? Why does it jump from 32 bits to 64 bits? Why not 32 to 33, or 32 to 40? What's the purpose of having 32 bits as opposed to 16 bits? I read that most CPUs have only 150 opcodes (machine instructions such as add, jump, compare, read, write), so you only need [tex]log_2(150)=7.22 [/tex] or 8 bits to do what most CPUs do. Are these bits used to enhance the logic-arithmetic unit with more opcodes, like one that calculates functions like sin(x), instead of having to building sin(x) from a bunch of lines of assembly with lots of addition, multiplying and swapping out registers, you can do it all at once in one CPU cycle with built-in CPU sin(x) unit? Also, in a computer's ROM is stored the BIOS, but is there also an assembly compiler from op code to machine code stored in the ROM? Thanks.