Yes and No. Large parts of your OS can be very portable. Linux, WinNT3/4, Solaris8, even the now defunct BeOS have multiple versions for different processors that are largely built from the same codebase. There is a powderkeg of a flamewar that can be fought over this, but judging by your question, I'll assume that you favor C-like portability over ASM-like bare metal speed (so no one go off and flame me here) and use a less neutral tone....
Unfortunately for us advocates of portability, there are components of an OS that have to be coded with at least ASM wrappers and often full ASM functions. Also, you should be careful of design desisions that lock you into a specific processor (like using segmented memory on x86). I strongly suggest two documents to read. They can both be very challenging to work through even for experienced C programmers but they should illuminate this for you. They are:
http://www.drpaulcarter.com/pcasm/index.phpDr Carter's PC ASM tutorial (a TON of great info on how ASM works on a practical level with a specific focus on interfacing with C/C++)
...and...
Intel's 386 Programming Reference. No link because it can be found in MANY places, just search for it. It's _dry_ , but it's chocked full of critical information that you will HAVE to know if you want to build an OS on x86.
You should also bear in mind that your development environment under the two platforms will be wildly different on such basic things as 'How do I boot my kernel?' You should figure out what some of the logistical questions you must ask are first (like the boot question above), and then do some research. Once you get started understanding the problems and know _which_ questions to ask you'll be able to find a lot of the information you need on the web. You'll be surprised how much easy some things will turn out to be and how insanely hard some things will turn out to be.
Good luck and don't forget to share your experiences!